diff --git a/iwdification/dw/copyover/BARD_SONG_BALLAD/#BARD1.SPL b/iwdification/dw/copyover/BARD_SONG_BALLAD/#BARD1.SPL deleted file mode 100644 index 7034a49..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_BALLAD/#BARD1.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1.BAM b/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1.BAM deleted file mode 100644 index 8138093..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1B.BAM b/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1B.BAM deleted file mode 100644 index 8138093..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_BALLAD/BARD1B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_BALLAD/OHVRPO.PRO b/iwdification/dw/copyover/BARD_SONG_BALLAD/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_BALLAD/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_BALLAD/SPCL120.SPL b/iwdification/dw/copyover/BARD_SONG_BALLAD/SPCL120.SPL deleted file mode 100644 index 060de70..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_BALLAD/SPCL120.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_CURRAN/#BARD2.SPL b/iwdification/dw/copyover/BARD_SONG_CURRAN/#BARD2.SPL deleted file mode 100644 index 9d2c774..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_CURRAN/#BARD2.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2.BAM b/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2.BAM deleted file mode 100644 index 7b22b1b..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2B.BAM b/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2B.BAM deleted file mode 100644 index 7b22b1b..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_CURRAN/BARD2B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_CURRAN/OHVRPO.PRO b/iwdification/dw/copyover/BARD_SONG_CURRAN/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_CURRAN/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_CURRAN/SPCL115.SPL b/iwdification/dw/copyover/BARD_SONG_CURRAN/SPCL115.SPL deleted file mode 100644 index bc8bf17..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_CURRAN/SPCL115.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_KAUDIES/#BARD4.SPL b/iwdification/dw/copyover/BARD_SONG_KAUDIES/#BARD4.SPL deleted file mode 100644 index 1d0ed24..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_KAUDIES/#BARD4.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4.BAM b/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4.BAM deleted file mode 100644 index d00ded4..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4B.BAM b/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4B.BAM deleted file mode 100644 index d00ded4..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_KAUDIES/BARD4B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_KAUDIES/OHVRPO.PRO b/iwdification/dw/copyover/BARD_SONG_KAUDIES/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_KAUDIES/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_KAUDIES/SPCL117.SPL b/iwdification/dw/copyover/BARD_SONG_KAUDIES/SPCL117.SPL deleted file mode 100644 index 0bf469a..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_KAUDIES/SPCL117.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/#BARD5.SPL b/iwdification/dw/copyover/BARD_SONG_SIREN/#BARD5.SPL deleted file mode 100644 index c7f455c..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/#BARD5.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/#CUREENT.SPL b/iwdification/dw/copyover/BARD_SONG_SIREN/#CUREENT.SPL deleted file mode 100644 index f25ec73..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/#CUREENT.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5.BAM b/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5.BAM deleted file mode 100644 index b26fccb..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5B.BAM b/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5B.BAM deleted file mode 100644 index b26fccb..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/BARD5B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/OHVRNP.PRO b/iwdification/dw/copyover/BARD_SONG_SIREN/OHVRNP.PRO deleted file mode 100644 index 9e42386..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/OHVRNP.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/SPCL118.SPL b/iwdification/dw/copyover/BARD_SONG_SIREN/SPCL118.SPL deleted file mode 100644 index b6f4d17..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/SPCL118.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.BAM b/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.BAM deleted file mode 100644 index 66bccb7..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.VVC b/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.VVC deleted file mode 100644 index b251e6b..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SIREN/SPMINDAT.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SITH/#BARD6.SPL b/iwdification/dw/copyover/BARD_SONG_SITH/#BARD6.SPL deleted file mode 100644 index 74ceaba..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SITH/#BARD6.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SITH/BARD6.BAM b/iwdification/dw/copyover/BARD_SONG_SITH/BARD6.BAM deleted file mode 100644 index f79e7de..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SITH/BARD6.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SITH/BARD6B.BAM b/iwdification/dw/copyover/BARD_SONG_SITH/BARD6B.BAM deleted file mode 100644 index f79e7de..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SITH/BARD6B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SITH/OHVRPO.PRO b/iwdification/dw/copyover/BARD_SONG_SITH/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SITH/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_SITH/SPCL119.SPL b/iwdification/dw/copyover/BARD_SONG_SITH/SPCL119.SPL deleted file mode 100644 index a75ad8a..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_SITH/SPCL119.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_TYMORA/#BARD3.SPL b/iwdification/dw/copyover/BARD_SONG_TYMORA/#BARD3.SPL deleted file mode 100644 index 18c002a..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_TYMORA/#BARD3.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3.BAM b/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3.BAM deleted file mode 100644 index d2e016c..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3B.BAM b/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3B.BAM deleted file mode 100644 index d2e016c..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_TYMORA/BARD3B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_TYMORA/OHVRPO.PRO b/iwdification/dw/copyover/BARD_SONG_TYMORA/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_TYMORA/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/BARD_SONG_TYMORA/SPCL116.SPL b/iwdification/dw/copyover/BARD_SONG_TYMORA/SPCL116.SPL deleted file mode 100644 index b1c22ae..0000000 Binary files a/iwdification/dw/copyover/BARD_SONG_TYMORA/SPCL116.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#EFF_E08.WAV b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#EFF_E08.WAV deleted file mode 100644 index ae324f6..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#EFF_E08.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#TRA_57.WAV b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#TRA_57.WAV deleted file mode 100644 index 0758243..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/#TRA_57.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/ALANCET.BAM b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/ALANCET.BAM deleted file mode 100644 index ed5584a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/ALANCET.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/IDPRO298.PRO b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/IDPRO298.PRO deleted file mode 100644 index e8efbc7..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/IDPRO298.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218.spl b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218.spl deleted file mode 100644 index fdd303f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218B.BAM b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218B.BAM deleted file mode 100644 index a10313e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218C.BAM b/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218C.BAM deleted file mode 100644 index 21cd3e3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ALICORN_LANCE/SPPR218C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522.spl b/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522.spl deleted file mode 100644 index 30f3368..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.BAM b/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.BAM deleted file mode 100644 index c38c472..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.SPL b/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.SPL deleted file mode 100644 index 1ce28f4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522C.BAM b/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522C.BAM deleted file mode 100644 index 605f6c9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ANIMAL_RAGE/SPPR522C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/#EFF_P07.WAV b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/#EFF_P07.WAV deleted file mode 100644 index f0a6bdd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/#EFF_P07.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.BAM b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.BAM deleted file mode 100644 index 56902ce..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.VVC b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.VVC deleted file mode 100644 index 3af5aa9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/ALTERH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/BCLAW.ITM b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/BCLAW.ITM deleted file mode 100644 index 1a2e3ae..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/BCLAW.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/IBCLAW.BAM b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/IBCLAW.BAM deleted file mode 100644 index 24beba3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/IBCLAW.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219.spl b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219.spl deleted file mode 100644 index fbc16e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219B.BAM b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219B.BAM deleted file mode 100644 index c81fd59..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219C.BAM b/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219C.BAM deleted file mode 100644 index de0d06b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BEAST_CLAW/SPPR219C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422.spl b/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422.spl deleted file mode 100644 index 4caa38a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422B.BAM b/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422B.BAM deleted file mode 100644 index e6856f5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422C.BAM b/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422C.BAM deleted file mode 100644 index e85bd31..0000000 Binary files a/iwdification/dw/copyover/CLERIC_BLOOD_RAGE/SPPR422C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.BAM deleted file mode 100644 index d7b0b4d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.VVC deleted file mode 100644 index 181ef22..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/CCDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510.spl b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510.spl deleted file mode 100644 index 5d2d850..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510B.BAM deleted file mode 100644 index 6c2455a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510C.BAM deleted file mode 100644 index 3738f0f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_CRITICAL_WOUNDS/SPPR510C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/#FF_P108.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/#FF_P108.WAV deleted file mode 100644 index 0ea0f56..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/#FF_P108.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.BAM deleted file mode 100644 index 978483f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.VVC deleted file mode 100644 index ad09f23..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/CDISEAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320.spl b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320.spl deleted file mode 100644 index f35d61c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320B.BAM deleted file mode 100644 index 2b2d2e1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320C.BAM deleted file mode 100644 index 0d6f313..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_DISEASE/SPPR320C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM deleted file mode 100644 index 1f64aad..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC deleted file mode 100644 index f6cac20..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114.spl b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114.spl deleted file mode 100644 index 23ec671..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114B.BAM deleted file mode 100644 index 3e33011..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114C.BAM deleted file mode 100644 index 31fd16d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_LIGHT_WOUNDS/SPPR114C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.BAM deleted file mode 100644 index 4955a2c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.VVC deleted file mode 100644 index 37dfd8f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/CMDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330.spl b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330.spl deleted file mode 100644 index a4ae36e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330B.BAM deleted file mode 100644 index a4da235..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330C.BAM deleted file mode 100644 index 2dc1363..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MEDIUM_WOUNDS/SPPR330C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.BAM deleted file mode 100644 index 4955a2c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.VVC deleted file mode 100644 index 37dfd8f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/CMDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220.spl b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220.spl deleted file mode 100644 index b6f4594..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220B.BAM deleted file mode 100644 index 51aa996..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220C.BAM deleted file mode 100644 index 1ef577c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_MODERATE_WOUNDS/SPPR220C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.BAM deleted file mode 100644 index fc00866..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.VVC b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.VVC deleted file mode 100644 index d26c759..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/CSDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414.spl b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414.spl deleted file mode 100644 index a79604c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414B.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414B.BAM deleted file mode 100644 index 3c329ec..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414C.BAM b/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414C.BAM deleted file mode 100644 index 5f9cad0..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CAUSE_SERIOUS_WOUNDS/SPPR414C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/#EFF_P31.WAV b/iwdification/dw/copyover/CLERIC_CHANT/#EFF_P31.WAV deleted file mode 100644 index 6eb2067..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/#EFF_P31.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.BAM b/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.BAM deleted file mode 100644 index 856f261..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.VVC b/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.VVC deleted file mode 100644 index 144cf17..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/BLESSH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.BAM b/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.BAM deleted file mode 100644 index 20dcdf2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.VVC b/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.VVC deleted file mode 100644 index 9b7e59b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/CURSEH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/OHVRNP.PRO b/iwdification/dw/copyover/CLERIC_CHANT/OHVRNP.PRO deleted file mode 100644 index 9e42386..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/OHVRNP.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/OHVRPO.PRO b/iwdification/dw/copyover/CLERIC_CHANT/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203.spl b/iwdification/dw/copyover/CLERIC_CHANT/SPPR203.spl deleted file mode 100644 index 508f7b5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203B.BAM b/iwdification/dw/copyover/CLERIC_CHANT/SPPR203B.BAM deleted file mode 100644 index 7cf69a5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203C.BAM b/iwdification/dw/copyover/CLERIC_CHANT/SPPR203C.BAM deleted file mode 100644 index 051e1e1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203D.SPL b/iwdification/dw/copyover/CLERIC_CHANT/SPPR203D.SPL deleted file mode 100644 index 5d4a8f1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203D.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203E.SPL b/iwdification/dw/copyover/CLERIC_CHANT/SPPR203E.SPL deleted file mode 100644 index 2cfad7b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CHANT/SPPR203E.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#AFT_P22.WAV b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#AFT_P22.WAV deleted file mode 100644 index 05156b4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#AFT_P22.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#ARE_P21.WAV b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#ARE_P21.WAV deleted file mode 100644 index 8354b41..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/#ARE_P21.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.BAM b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.BAM deleted file mode 100644 index 349c33b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.VVC b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.VVC deleted file mode 100644 index 5561794..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH1.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.BAM b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.BAM deleted file mode 100644 index d28bc8b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.VVC b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.VVC deleted file mode 100644 index 48e9fa1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/COBONH2.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SMLLARNC.PRO b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SMLLARNC.PRO deleted file mode 100644 index b5cb906..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SMLLARNC.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323.spl b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323.spl deleted file mode 100644 index 0526a0a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323B.BAM b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323B.BAM deleted file mode 100644 index ad2ec15..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323C.BAM b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323C.BAM deleted file mode 100644 index c49634c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323D.SPL b/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323D.SPL deleted file mode 100644 index 2c6e24c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CIRCLE_OF_BONES/SPPR323D.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/ARE_P24.WAV b/iwdification/dw/copyover/CLERIC_CLOUDBURST/ARE_P24.WAV deleted file mode 100644 index 6de29af..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/ARE_P24.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBA.BAM b/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBA.BAM deleted file mode 100644 index 6cffeb9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.BAM b/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.BAM deleted file mode 100644 index e6e8fc8..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.VVC b/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.VVC deleted file mode 100644 index 2992f25..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/CLOUDBH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/IDPRO301.PRO b/iwdification/dw/copyover/CLERIC_CLOUDBURST/IDPRO301.PRO deleted file mode 100644 index 2e10595..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/IDPRO301.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325.spl b/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325.spl deleted file mode 100644 index ef55666..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325B.BAM b/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325B.BAM deleted file mode 100644 index 88ff7ae..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325C.BAM b/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325C.BAM deleted file mode 100644 index 3c57b3a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUDBURST/SPPR325C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/ARE_P25.WAV b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/ARE_P25.WAV deleted file mode 100644 index e13beea..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/ARE_P25.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/COPESTA.BAM b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/COPESTA.BAM deleted file mode 100644 index e48ab42..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/COPESTA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/IDPRO309.PRO b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/IDPRO309.PRO deleted file mode 100644 index 7c0e4d1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/IDPRO309.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423.spl b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423.spl deleted file mode 100644 index 427f62b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423B.BAM b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423B.BAM deleted file mode 100644 index 95f549c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423C.BAM b/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423C.BAM deleted file mode 100644 index 8619af5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CLOUD_OF_PESTILENCE/SPPR423C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/#EFF_P26.WAV b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/#EFF_P26.WAV deleted file mode 100644 index 5e87cdf..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/#EFF_P26.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.BAM b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.BAM deleted file mode 100644 index ed6315a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.VVC b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.VVC deleted file mode 100644 index b3699f9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/CMWOUNH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217.spl b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217.spl deleted file mode 100644 index b02f834..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217B.BAM b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217B.BAM deleted file mode 100644 index 72f194e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217C.BAM b/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217C.BAM deleted file mode 100644 index b658ea1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURE_MODERATE_WOUNDS/SPPR217C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/#BLESS.VVC b/iwdification/dw/copyover/CLERIC_CURSE/#BLESS.VVC deleted file mode 100644 index a029906..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/#BLESS.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_E04.WAV b/iwdification/dw/copyover/CLERIC_CURSE/#EFF_E04.WAV deleted file mode 100644 index 72bd0e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_E04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P32.WAV b/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P32.WAV deleted file mode 100644 index 8118da4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P32.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P99.WAV b/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P99.WAV deleted file mode 100644 index ed9f20a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/#EFF_P99.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/AREA1X.BAM b/iwdification/dw/copyover/CLERIC_CURSE/AREA1X.BAM deleted file mode 100644 index db4e045..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/AREA1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.BAM b/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.BAM deleted file mode 100644 index 20dcdf2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.VVC b/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.VVC deleted file mode 100644 index 9b7e59b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/CURSEH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/IDPRO237.PRO b/iwdification/dw/copyover/CLERIC_CURSE/IDPRO237.PRO deleted file mode 100644 index 7031504..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/IDPRO237.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112.spl b/iwdification/dw/copyover/CLERIC_CURSE/SPPR112.spl deleted file mode 100644 index 7d7bbf3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112B.BAM b/iwdification/dw/copyover/CLERIC_CURSE/SPPR112B.BAM deleted file mode 100644 index 95cead3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112C.BAM b/iwdification/dw/copyover/CLERIC_CURSE/SPPR112C.BAM deleted file mode 100644 index 50ddd3e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_CURSE/SPPR112C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/#FF_P113.WAV b/iwdification/dw/copyover/CLERIC_DESTRUCTION/#FF_P113.WAV deleted file mode 100644 index 7dbd951..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/#FF_P113.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.BAM b/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.BAM deleted file mode 100644 index 437a44f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.VVC b/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.VVC deleted file mode 100644 index 131fe62..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/DESTRUH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734.spl b/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734.spl deleted file mode 100644 index 46916f6..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734B.BAM b/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734B.BAM deleted file mode 100644 index 9ec75cd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734C.BAM b/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734C.BAM deleted file mode 100644 index f467e91..0000000 Binary files a/iwdification/dw/copyover/CLERIC_DESTRUCTION/SPPR734C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENERGY_DRAIN/SPPR739.spl b/iwdification/dw/copyover/CLERIC_ENERGY_DRAIN/SPPR739.spl deleted file mode 100644 index 9525205..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENERGY_DRAIN/SPPR739.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/#ENTROPY.VVC b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/#ENTROPY.VVC deleted file mode 100644 index e6c64bd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/#ENTROPY.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ABJURH.VVC b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ABJURH.VVC deleted file mode 100644 index a570456..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ABJURH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ESHIELC.BAM b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ESHIELC.BAM deleted file mode 100644 index a012da4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/ESHIELC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615.spl b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615.spl deleted file mode 100644 index de44f7d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615B.BAM b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615B.BAM deleted file mode 100644 index a253bde..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615C.BAM b/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615C.BAM deleted file mode 100644 index 58d911b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_ENTROPY_SHIELD/SPPR615C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/#FF_P106.WAV b/iwdification/dw/copyover/CLERIC_EXALTATION/#FF_P106.WAV deleted file mode 100644 index f9613ff..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/#FF_P106.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.BAM b/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.BAM deleted file mode 100644 index b57137c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.VVC b/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.VVC deleted file mode 100644 index 5055b68..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/EXALTAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321.spl b/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321.spl deleted file mode 100644 index e2dd67b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321B.BAM b/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321B.BAM deleted file mode 100644 index 6bec20b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321C.BAM b/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321C.BAM deleted file mode 100644 index b83ba56..0000000 Binary files a/iwdification/dw/copyover/CLERIC_EXALTATION/SPPR321C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#EFF_P26.WAV b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#EFF_P26.WAV deleted file mode 100644 index 5e87cdf..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#EFF_P26.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.BAM b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.BAM deleted file mode 100644 index 4955a2c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.VVC b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.VVC deleted file mode 100644 index 37dfd8f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.BAM b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.BAM deleted file mode 100644 index ed6315a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.VVC b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.VVC deleted file mode 100644 index b3699f9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/CMWOUNH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPARKLPU.PRO b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPARKLPU.PRO deleted file mode 100644 index ecc0912..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPARKLPU.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331.spl b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331.spl deleted file mode 100644 index 1496107..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331B.BAM b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331B.BAM deleted file mode 100644 index 9d43b6d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331C.BAM b/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331C.BAM deleted file mode 100644 index 0b03fd3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_FAVOR_OF_ILMATER/SPPR331C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/#ISC_01C.WAV b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.BAM b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.BAM deleted file mode 100644 index 0fd4142..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.VVC b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.VVC deleted file mode 100644 index 18746e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/ASUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/BBCLOUD.BAF b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/BBCLOUD.BAF deleted file mode 100644 index 541a9a7..0000000 --- a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/BBCLOUD.BAF +++ /dev/null @@ -1,21 +0,0 @@ -IF - !Global("BBCLOUD_inactive","LOCALS",1) - Global("Internal4","LOCALS",2) -THEN - RESPONSE #100 - SetGlobal("BBCLOUD_inactive","LOCALS",1) -END - -IF - !Global("BBCLOUD_inactive","LOCALS",1) - !GlobalTimerNotExpired("#localtimer","LOCALS") - See(NearestEnemyOf(Myself)) - Range(NearestEnemyOf(Myself),5) -THEN - RESPONSE #100 - IncrementGlobal("Internal4","LOCALS",1) - SetGlobalTimer("#localtimer","LOCALS",21) - ReallyForceSpell(Myself,INNATE_BOMBARDIER_BEETLE_CLOUD) - Wait(2) -END - diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/FARTRNG.ITM b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/FARTRNG.ITM deleted file mode 100644 index 1b6e702..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/FARTRNG.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GINSECT.2DA b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GINSECT.2DA deleted file mode 100644 index 66c9174..0000000 --- a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GINSECT.2DA +++ /dev/null @@ -1,5 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 GISbomb MSumm1H ASumm1X -2 GISborb MSumm1H ASumm1X diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBOMB.CRE b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBOMB.CRE deleted file mode 100644 index 0cd66d9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBOMB.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBORB.CRE b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBORB.CRE deleted file mode 100644 index cc527dd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GISBORB.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GNSUMMM.BAF b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.BAM b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.VVC b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418.spl b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418.spl deleted file mode 100644 index e294b0b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418B.BAM b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418B.BAM deleted file mode 100644 index 6798e9c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418C.BAM b/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418C.BAM deleted file mode 100644 index ef7d73d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GIANT_INSECT/SPPR418C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG1.VVC b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG1.VVC deleted file mode 100644 index 068a748..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG1.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG2.VVC b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG2.VVC deleted file mode 100644 index 2e2b9be..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/#LATSHG2.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC1.BAM b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC1.BAM deleted file mode 100644 index 7c16e12..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC1.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC2.BAM b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC2.BAM deleted file mode 100644 index 869ae5f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/GSOLAC2.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735.spl b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735.spl deleted file mode 100644 index 4f49490..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735B.BAM b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735B.BAM deleted file mode 100644 index abc49d5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735C.BAM b/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735C.BAM deleted file mode 100644 index 971537b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_GREATER_SHIELD_OF_LATHANDER/SPPR735C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_E03.WAV b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_E03.WAV deleted file mode 100644 index 98de178..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_E03.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_P01.WAV b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_P01.WAV deleted file mode 100644 index 59060a4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/#EFF_P01.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/ABJURH.VVC b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/ABJURH.VVC deleted file mode 100644 index a570456..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/ABJURH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733.spl b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733.spl deleted file mode 100644 index c3d2494..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733B.BAM b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733B.BAM deleted file mode 100644 index a378268..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733C.BAM b/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733C.BAM deleted file mode 100644 index 690a09f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_IMPERVIOUS_SANCTITY_OF_MIND/SPPR733C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV deleted file mode 100644 index 836ce70..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/#FF_P103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM deleted file mode 100644 index 1f64aad..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC deleted file mode 100644 index f6cac20..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/CLDAMAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARKLRE.PRO b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARKLRE.PRO deleted file mode 100644 index 9aa35b6..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARKLRE.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARRENP.PRO b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARRENP.PRO deleted file mode 100644 index 11936ce..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPARRENP.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523.spl b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523.spl deleted file mode 100644 index 8788b19..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523B.BAM b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523B.BAM deleted file mode 100644 index eef3d35..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523C.BAM b/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523C.BAM deleted file mode 100644 index 6211042..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MASS_CAUSE_LIGHT_WOUNDS/SPPR523C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/IDPRO307.PRO b/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/IDPRO307.PRO deleted file mode 100644 index 48119d1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/IDPRO307.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/MOELDAA.BAM b/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/MOELDAA.BAM deleted file mode 100644 index 8a96a61..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/MOELDAA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736.spl b/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736.spl deleted file mode 100644 index 4dd7126..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736B.BAM b/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736B.BAM deleted file mode 100644 index ec3cf91..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736C.BAM b/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736C.BAM deleted file mode 100644 index f0d36b6..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MIST_OF_ELDATH/SPPR736C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/#FF_P107.WAV b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/#FF_P107.WAV deleted file mode 100644 index 280b0ef..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/#FF_P107.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.BAM b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.BAM deleted file mode 100644 index 7be2230..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.VVC b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.VVC deleted file mode 100644 index 802d45d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/MTOUCHH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326.spl b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326.spl deleted file mode 100644 index fc8e25a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326B.BAM b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326B.BAM deleted file mode 100644 index 12c0847..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326C.BAM b/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326C.BAM deleted file mode 100644 index 646edf2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOLD_TOUCH/SPPR326C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/#EFF_M06.WAV b/iwdification/dw/copyover/CLERIC_MOONBLADE/#EFF_M06.WAV deleted file mode 100644 index 234a09b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/#EFF_M06.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/GSW1H01.BAM b/iwdification/dw/copyover/CLERIC_MOONBLADE/GSW1H01.BAM deleted file mode 100644 index 59b7abc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/GSW1H01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.BAM b/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.BAM deleted file mode 100644 index c3bf486..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.VVC b/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.VVC deleted file mode 100644 index 0030503..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/INVOCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.BAM b/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.BAM deleted file mode 100644 index 7a2488c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.ITM b/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.ITM deleted file mode 100644 index bbd3e9f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/MOONBLA.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322.spl b/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322.spl deleted file mode 100644 index 88e77b4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322B.BAM b/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322B.BAM deleted file mode 100644 index e5c6cae..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322C.BAM b/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322C.BAM deleted file mode 100644 index 533772c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_MOONBLADE/SPPR322C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/#EFF_P31.WAV b/iwdification/dw/copyover/CLERIC_PRAYER/#EFF_P31.WAV deleted file mode 100644 index 6eb2067..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/#EFF_P31.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERB.SPL b/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERB.SPL deleted file mode 100644 index 6bd4549..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERB.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERG.SPL b/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERG.SPL deleted file mode 100644 index 224643f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/#PRAYERG.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/OHVRNP.PRO b/iwdification/dw/copyover/CLERIC_PRAYER/OHVRNP.PRO deleted file mode 100644 index 9e42386..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/OHVRNP.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/OHVRPO.PRO b/iwdification/dw/copyover/CLERIC_PRAYER/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERG.VVC b/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERG.VVC deleted file mode 100644 index 7fa7bd5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERG.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.BAM b/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.BAM deleted file mode 100644 index 157e443..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.VVC b/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.VVC deleted file mode 100644 index ee1c7d0..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/PRAYERH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316.spl b/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316.spl deleted file mode 100644 index 84188b8..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316B.BAM b/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316B.BAM deleted file mode 100644 index bdc76cf..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316C.BAM b/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316C.BAM deleted file mode 100644 index e8cd638..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRAYER/SPPR316C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#ARE_P03.WAV b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#ARE_P03.WAV deleted file mode 100644 index cb77613..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#ARE_P03.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#EFF_P45.WAV b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#EFF_P45.WAV deleted file mode 100644 index 0656cc4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#EFF_P45.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#PRFIRE.VVC b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#PRFIRE.VVC deleted file mode 100644 index 2c3bdc7..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/#PRFIRE.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/IDPRO215.PRO b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/IDPRO215.PRO deleted file mode 100644 index 1ac145d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/IDPRO215.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREA.BAM b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREA.BAM deleted file mode 100644 index 523460b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREX.BAM b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREX.BAM deleted file mode 100644 index 161f7a5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/PFIREX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419.spl b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419.spl deleted file mode 100644 index 14c8d7b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419B.BAM b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419B.BAM deleted file mode 100644 index d42004f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419C.BAM b/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419C.BAM deleted file mode 100644 index 5b4fab8..0000000 Binary files a/iwdification/dw/copyover/CLERIC_PRODUCE_FIRE/SPPR419C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/#EFF_P44.WAV b/iwdification/dw/copyover/CLERIC_RECITATION/#EFF_P44.WAV deleted file mode 100644 index 8cead35..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/#EFF_P44.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEB.SPL b/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEB.SPL deleted file mode 100644 index 9a487f4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEB.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEG.SPL b/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEG.SPL deleted file mode 100644 index e0cfe54..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/#RECITEG.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/OHVRNP.PRO b/iwdification/dw/copyover/CLERIC_RECITATION/OHVRNP.PRO deleted file mode 100644 index 9e42386..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/OHVRNP.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/OHVRPO.PRO b/iwdification/dw/copyover/CLERIC_RECITATION/OHVRPO.PRO deleted file mode 100644 index 7610b16..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/OHVRPO.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAG.VVC b/iwdification/dw/copyover/CLERIC_RECITATION/RECITAG.VVC deleted file mode 100644 index 28ca4e0..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAG.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.BAM b/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.BAM deleted file mode 100644 index 0fea37f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.VVC b/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.VVC deleted file mode 100644 index 1ac0d1c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/RECITAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421.spl b/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421.spl deleted file mode 100644 index fe52880..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421B.BAM b/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421B.BAM deleted file mode 100644 index c43c3ee..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421C.BAM b/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421C.BAM deleted file mode 100644 index 8ad1f07..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RECITATION/SPPR421C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#ARE_M20.WAV b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#ARE_M20.WAV deleted file mode 100644 index d4cb450..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#ARE_M20.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_E01.WAV b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_E01.WAV deleted file mode 100644 index 30f8465..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_E01.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_P36.WAV b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_P36.WAV deleted file mode 100644 index abe7758..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#EFF_P36.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#GENABJU.VVC b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#GENABJU.VVC deleted file mode 100644 index 1ef5b17..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/#GENABJU.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/ABJURAX.BAM b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/ABJURAX.BAM deleted file mode 100644 index 01142a9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/ABJURAX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/IDPRO266.PRO b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/IDPRO266.PRO deleted file mode 100644 index 7c0cb0a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/IDPRO266.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAG.VVC b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAG.VVC deleted file mode 100644 index d9b139a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAG.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.BAM b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.BAM deleted file mode 100644 index 18436b0..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.VVC b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.VVC deleted file mode 100644 index aa7ba65..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/RWOTFAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518.spl b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518.spl deleted file mode 100644 index 31c93d4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518A.SPL b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518A.SPL deleted file mode 100644 index 0287035..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518A.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.BAM b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.BAM deleted file mode 100644 index 6036233..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.SPL b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.SPL deleted file mode 100644 index ed1c617..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518C.BAM b/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518C.BAM deleted file mode 100644 index 676f530..0000000 Binary files a/iwdification/dw/copyover/CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL/SPPR518C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL1.VVC b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL1.VVC deleted file mode 100644 index 7663302..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL1.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL2.VVC b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL2.VVC deleted file mode 100644 index 8b6b2db..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/#LATSHL2.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC1.BAM b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC1.BAM deleted file mode 100644 index adde699..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC1.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC2.BAM b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC2.BAM deleted file mode 100644 index 9f1f1a5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SOLATC2.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520.spl b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520.spl deleted file mode 100644 index db00660..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520B.BAM b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520B.BAM deleted file mode 100644 index a32666f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520C.BAM b/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520C.BAM deleted file mode 100644 index a82f32c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SHIELD_OF_LATHANDER/SPPR520C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/#FF_P110.WAV b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/#FF_P110.WAV deleted file mode 100644 index 35336fc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/#FF_P110.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426.spl b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426.spl deleted file mode 100644 index 0ec412c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426B.BAM b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426B.BAM deleted file mode 100644 index 42a915a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426C.BAM b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426C.BAM deleted file mode 100644 index 3892b61..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SPPR426C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVE.PRO b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVE.PRO deleted file mode 100644 index b660a44..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVE.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.BAM b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.BAM deleted file mode 100644 index 5bee927..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.VVC b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.VVC deleted file mode 100644 index f6613d3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEX.BAM b/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEX.BAM deleted file mode 100644 index 7516f67..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SMASHING_WAVE/SWAVEX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/IDPRO300.PRO b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/IDPRO300.PRO deleted file mode 100644 index 5890aad..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/IDPRO300.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTA.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTA.BAM deleted file mode 100644 index 7e9791b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTX.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTX.BAM deleted file mode 100644 index cf57607..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SGROWTX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324.spl b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324.spl deleted file mode 100644 index 603f27f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324B.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324B.BAM deleted file mode 100644 index 062560b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324C.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324C.BAM deleted file mode 100644 index 273ebcc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_GROWTH/SPPR324C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/#CRE_P03.WAV b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/#CRE_P03.WAV deleted file mode 100644 index 876dc69..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/#CRE_P03.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/ARE_P04.WAV b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/ARE_P04.WAV deleted file mode 100644 index 8254663..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/ARE_P04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/IDPRO213.PRO b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/IDPRO213.PRO deleted file mode 100644 index 31a485a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/IDPRO213.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519.spl b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519.spl deleted file mode 100644 index 7d12eef..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519B.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519B.BAM deleted file mode 100644 index 5497dda..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519C.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519C.BAM deleted file mode 100644 index d28112b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SPPR519C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.BAM b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.BAM deleted file mode 100644 index fd11e0e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.VVC b/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.VVC deleted file mode 100644 index 47f62c9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIKE_STONES/SSTONEA.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/#EFF_P05.WAV b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/#EFF_P05.WAV deleted file mode 100644 index 6007a5a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/#EFF_P05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO207.PRO b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO207.PRO deleted file mode 100644 index 5a12b0d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO207.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO312.PRO b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO312.PRO deleted file mode 100644 index 514e604..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/IDPRO312.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.BAM b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.BAM deleted file mode 100644 index c3bf486..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.VVC b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.VVC deleted file mode 100644 index 0030503..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/INVOCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/LIGHTNT.BAM b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/LIGHTNT.BAM deleted file mode 100644 index fc25e36..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/LIGHTNT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618.spl b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618.spl deleted file mode 100644 index 4de0731..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618B.BAM b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618B.BAM deleted file mode 100644 index 7adba37..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618C.BAM b/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618C.BAM deleted file mode 100644 index bd50cb3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SPIRITUAL_WRATH/SPPR618C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STALKER/SHMBLR.ITM b/iwdification/dw/copyover/CLERIC_STALKER/SHMBLR.ITM deleted file mode 100644 index 18a4cfd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STALKER/SHMBLR.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737.spl b/iwdification/dw/copyover/CLERIC_STALKER/SPPR737.spl deleted file mode 100644 index 2e3c545..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737B.BAM b/iwdification/dw/copyover/CLERIC_STALKER/SPPR737B.BAM deleted file mode 100644 index 2877af7..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737C.BAM b/iwdification/dw/copyover/CLERIC_STALKER/SPPR737C.BAM deleted file mode 100644 index 3f4d82f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STALKER/SPPR737C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STALKER/SSHAMB.CRE b/iwdification/dw/copyover/CLERIC_STALKER/SSHAMB.CRE deleted file mode 100644 index a8d66a9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STALKER/SSHAMB.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/#EFF_P02.WAV b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/#EFF_P02.WAV deleted file mode 100644 index ccda563..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/#EFF_P02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.BAM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.BAM deleted file mode 100644 index 6b61a5e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.VVC b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.VVC deleted file mode 100644 index 1a5c3dc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/CONJUH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/GBLUN01.BAM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/GBLUN01.BAM deleted file mode 100644 index 502e1dc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/GBLUN01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/ISMCUDGE.BAM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/ISMCUDGE.BAM deleted file mode 100644 index 723addb..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/ISMCUDGE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.EFF b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.EFF deleted file mode 100644 index bbf729e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.EFF and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.ITM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.ITM deleted file mode 100644 index cb822b0..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SMCUDGE.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425.spl b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425.spl deleted file mode 100644 index 3beb608..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425B.BAM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425B.BAM deleted file mode 100644 index 5393d6f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425C.BAM b/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425C.BAM deleted file mode 100644 index d173ea9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STAR_METAL_CUDGEL/SPPR425C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/IDSTATIC.PRO b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/IDSTATIC.PRO deleted file mode 100644 index 3a2ac3a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/IDSTATIC.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.BAM b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.BAM deleted file mode 100644 index b08b182..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.VVC b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.VVC deleted file mode 100644 index 8173594..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SCHARGH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420.spl b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420.spl deleted file mode 100644 index 64a5fe3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.BAM b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.BAM deleted file mode 100644 index 1a2759d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.SPL b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.SPL deleted file mode 100644 index abf95e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420C.BAM b/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420C.BAM deleted file mode 100644 index 2d4dcdf..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STATIC_CHARGE/SPPR420C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STORM_SHELL/#STORM.VVC b/iwdification/dw/copyover/CLERIC_STORM_SHELL/#STORM.VVC deleted file mode 100644 index a6b6d8f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STORM_SHELL/#STORM.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327.spl b/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327.spl deleted file mode 100644 index 8e02812..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327B.BAM b/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327B.BAM deleted file mode 100644 index 43df5b1..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327C.BAM b/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327C.BAM deleted file mode 100644 index 36729e6..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SPPR327C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SSHELLC.BAM b/iwdification/dw/copyover/CLERIC_STORM_SHELL/SSHELLC.BAM deleted file mode 100644 index 4698e8f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_STORM_SHELL/SSHELLC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/#EFF_P39.WAV b/iwdification/dw/copyover/CLERIC_SUNSCORCH/#EFF_P39.WAV deleted file mode 100644 index c3aaa05..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/#EFF_P39.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115.spl b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115.spl deleted file mode 100644 index 22d5633..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115B.BAM b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115B.BAM deleted file mode 100644 index 756b6f2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115C.BAM b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115C.BAM deleted file mode 100644 index a0bf564..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115D.SPL b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115D.SPL deleted file mode 100644 index 9f26add..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SPPR115D.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.BAM b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.BAM deleted file mode 100644 index ff04e50..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.PRO b/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.PRO deleted file mode 100644 index 07b6724..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SUNSCORCH/SUNSCOH.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_E04.WAV b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_E04.WAV deleted file mode 100644 index 72bd0e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_E04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_P02.WAV b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_P02.WAV deleted file mode 100644 index ccda563..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/#EFF_P02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/IDPRO277.PRO b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/IDPRO277.PRO deleted file mode 100644 index 4b44086..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/IDPRO277.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC3.PRO b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC3.PRO deleted file mode 100644 index b61e4dc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC3.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC4.PRO b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC4.PRO deleted file mode 100644 index 25ab94b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/INSEC4.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/PARALH.VVC b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/PARALH.VVC deleted file mode 100644 index 204ac0f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/PARALH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.BAM deleted file mode 100644 index afd63b5..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.VVC b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.VVC deleted file mode 100644 index 544a5f9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SOHOPEX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPINSECT.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPINSECT.BAM deleted file mode 100644 index 58f416f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPINSECT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716.spl b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716.spl deleted file mode 100644 index dc2e2a4..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716B.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716B.BAM deleted file mode 100644 index 079c017..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716C.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716C.BAM deleted file mode 100644 index 6389e30..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_HOPELESSNESS/SPPR716C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_E04.WAV b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_E04.WAV deleted file mode 100644 index 72bd0e2..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_E04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_P02.WAV b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_P02.WAV deleted file mode 100644 index ccda563..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/#EFF_P02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.BAM deleted file mode 100644 index 6b61a5e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.VVC b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.VVC deleted file mode 100644 index 1a5c3dc..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/CONJUH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714.spl b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714.spl deleted file mode 100644 index f5bb708..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714B.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714B.BAM deleted file mode 100644 index f6229b9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714C.BAM b/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714C.BAM deleted file mode 100644 index 2c32ebd..0000000 Binary files a/iwdification/dw/copyover/CLERIC_SYMBOL_OF_PAIN/SPPR714C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/#TRA_61.WAV b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/#TRA_61.WAV deleted file mode 100644 index 577c34a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/#TRA_61.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/IDPRO303.PRO b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/IDPRO303.PRO deleted file mode 100644 index 8529baf..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/IDPRO303.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427.spl b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427.spl deleted file mode 100644 index a31366f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427B.BAM b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427B.BAM deleted file mode 100644 index d52af23..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427C.BAM b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427C.BAM deleted file mode 100644 index 358f99f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/SPPR427C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/TSPRAYT.BAM b/iwdification/dw/copyover/CLERIC_THORN_SPRAY/TSPRAYT.BAM deleted file mode 100644 index 5111a0c..0000000 Binary files a/iwdification/dw/copyover/CLERIC_THORN_SPRAY/TSPRAYT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#AFT_P27.WAV b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#AFT_P27.WAV deleted file mode 100644 index d6e3d37..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#AFT_P27.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#ARE_P28.WAV b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#ARE_P28.WAV deleted file mode 100644 index efe6d6b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/#ARE_P28.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521.spl b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521.spl deleted file mode 100644 index 48251d3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521B.BAM b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521B.BAM deleted file mode 100644 index 6f06157..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521C.BAM b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521C.BAM deleted file mode 100644 index a039564..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/SPPR521C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARD.PRO b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARD.PRO deleted file mode 100644 index 3def927..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARD.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.BAM b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.BAM deleted file mode 100644 index b37eda9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.VVC b/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.VVC deleted file mode 100644 index f026f7b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNDEAD_WARD/UWARDX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/#FF_P112.WAV b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/#FF_P112.WAV deleted file mode 100644 index d4e06ee..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/#FF_P112.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.BAM b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.BAM deleted file mode 100644 index 1712f6d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.VVC b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.VVC deleted file mode 100644 index 26e9f2a..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/NECROH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424.spl b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424.spl deleted file mode 100644 index cf45c78..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424B.BAM b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424B.BAM deleted file mode 100644 index c25af31..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424C.BAM b/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424C.BAM deleted file mode 100644 index f80e8f9..0000000 Binary files a/iwdification/dw/copyover/CLERIC_UNFAILING_ENDURANCE/SPPR424C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/ARE_P22.WAV b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/ARE_P22.WAV deleted file mode 100644 index a11bafb..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/ARE_P22.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428.spl b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428.spl deleted file mode 100644 index f67de79..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428A.SPL b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428A.SPL deleted file mode 100644 index abee39b..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428A.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.BAM b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.BAM deleted file mode 100644 index 3e83130..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.SPL b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.SPL deleted file mode 100644 index 7428eac..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428C.BAM b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428C.BAM deleted file mode 100644 index b721af3..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/SPPR428C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOON.PRO b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOON.PRO deleted file mode 100644 index dfbdf62..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOON.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.BAM b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.BAM deleted file mode 100644 index bf6e72d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.VVC b/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.VVC deleted file mode 100644 index b1a326f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WALL_OF_MOONLIGHT/WOMOONX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617.spl b/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617.spl deleted file mode 100644 index a4dae7d..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617.spl and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617B.BAM b/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617B.BAM deleted file mode 100644 index 35df26e..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617C.BAM b/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617C.BAM deleted file mode 100644 index 277c196..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WHIRLWIND/SPPR617C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLW.PRO b/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLW.PRO deleted file mode 100644 index 4750fc8..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLW.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLWX.BAM b/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLWX.BAM deleted file mode 100644 index 7d1f64f..0000000 Binary files a/iwdification/dw/copyover/CLERIC_WHIRLWIND/WHIRLWX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112.spl b/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112.spl deleted file mode 100644 index 4a062d7..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112B.BAM b/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112B.BAM deleted file mode 100644 index 10d21d8..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_FORTITUDE/SPIN112B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109.spl b/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109.spl deleted file mode 100644 index 7b3586d..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109B.BAM b/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109B.BAM deleted file mode 100644 index a84d9b8..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_MAGE/SPIN109B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107.spl b/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107.spl deleted file mode 100644 index 6ff4141..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107B.BAM b/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107B.BAM deleted file mode 100644 index f28456c..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_MIND/SPIN107B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111.spl b/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111.spl deleted file mode 100644 index d1ab1e8..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111B.BAM b/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111B.BAM deleted file mode 100644 index ac462c8..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_SPIRIT/SPIN111B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113.spl b/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113.spl deleted file mode 100644 index 2b9a4c9..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113B.BAM b/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113B.BAM deleted file mode 100644 index ea8cd31..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_STONE/SPIN113B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108.spl b/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108.spl deleted file mode 100644 index 18dd6eb..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108B.BAM b/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108B.BAM deleted file mode 100644 index 71abbfb..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_SWORD/SPIN108B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110.spl b/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110.spl deleted file mode 100644 index 9bb2378..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110.spl and /dev/null differ diff --git a/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110B.BAM b/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110B.BAM deleted file mode 100644 index af06f6e..0000000 Binary files a/iwdification/dw/copyover/SEVEN_EYES_VENOM/SPIN110B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/#RE_M04.WAV b/iwdification/dw/copyover/WIZARD_ACID_STORM/#RE_M04.WAV deleted file mode 100644 index 53ec809..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/#RE_M04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMA.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMA.BAM deleted file mode 100644 index 5f83629..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMX.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMX.BAM deleted file mode 100644 index 7f1981a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/ASTORMX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/IDPRO211.PRO b/iwdification/dw/copyover/WIZARD_ACID_STORM/IDPRO211.PRO deleted file mode 100644 index 861ed1d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/IDPRO211.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/SCACID.itm b/iwdification/dw/copyover/WIZARD_ACID_STORM/SCACID.itm deleted file mode 100644 index 08c7909..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/SCACID.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724.SPL b/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724.SPL deleted file mode 100644 index 688d275..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724A.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724A.BAM deleted file mode 100644 index daa27b2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724B.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724B.BAM deleted file mode 100644 index 2786252..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724C.BAM b/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724C.BAM deleted file mode 100644 index 8beaf71..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ACID_STORM/SPWI724C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#ANTISHL.VVC b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#ANTISHL.VVC deleted file mode 100644 index b5540b4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#ANTISHL.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#EFF_E01.WAV b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#EFF_E01.WAV deleted file mode 100644 index 30f8465..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/#EFF_E01.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/AMSHELC.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/AMSHELC.BAM deleted file mode 100644 index 46573b6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/AMSHELC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/DESTSELF.EFF b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/DESTSELF.EFF deleted file mode 100644 index e6bac57..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/DESTSELF.EFF and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SCAMS.itm b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SCAMS.itm deleted file mode 100644 index 95ec9af..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SCAMS.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.BAM deleted file mode 100644 index 83fc73d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.VVC b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.VVC deleted file mode 100644 index 632cacb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPDISPMA.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610.SPL b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610.SPL deleted file mode 100644 index c63b078..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610A.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610A.BAM deleted file mode 100644 index 92a6eab..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610B.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610B.BAM deleted file mode 100644 index 11c685d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610C.BAM b/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610C.BAM deleted file mode 100644 index 5820fe4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ANTIMAGIC_SHELL/SPWI610C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#BELTYN.SPL b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#BELTYN.SPL deleted file mode 100644 index 07f2816..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#BELTYN.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#EFF_M07.WAV b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#EFF_M07.WAV deleted file mode 100644 index e4933ef..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/#EFF_M07.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.BAM b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.BAM deleted file mode 100644 index 1712f6d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.VVC b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.VVC deleted file mode 100644 index 26e9f2a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/NECROH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SCBLOO.itm b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SCBLOO.itm deleted file mode 100644 index 9b8f7aa..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SCBLOO.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422.SPL b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422.SPL deleted file mode 100644 index e729960..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422A.BAM b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422A.BAM deleted file mode 100644 index 35e7d7a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422B.BAM b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422B.BAM deleted file mode 100644 index 2614a84..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422C.BAM b/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422C.BAM deleted file mode 100644 index 5b08b10..0000000 Binary files a/iwdification/dw/copyover/WIZARD_BELTYNS_BURNING_BLOOD/SPWI422C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/#EFF_M08.WAV b/iwdification/dw/copyover/WIZARD_CATS_GRACE/#EFF_M08.WAV deleted file mode 100644 index bc26024..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/#EFF_M08.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_CATS_GRACE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI223A.itm b/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI223A.itm deleted file mode 100644 index 532baaf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI223A.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225.SPL b/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225.SPL deleted file mode 100644 index f103571..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225A.BAM b/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225A.BAM deleted file mode 100644 index f0952ed..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225B.BAM b/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225B.BAM deleted file mode 100644 index c8e5b85..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225C.BAM b/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225C.BAM deleted file mode 100644 index efc0a2c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CATS_GRACE/SPWI225C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/AELEM.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/AELEM.ITM deleted file mode 100644 index cc2f7a2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/AELEM.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/CAELEMW.2DA b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/CAELEMW.2DA deleted file mode 100644 index dbc5d6e..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/CAELEMW.2DA +++ /dev/null @@ -1,4 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 ES8air MSumm1H SPPORTAL diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/ES8AIR.CRE b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/ES8AIR.CRE deleted file mode 100644 index 58456cc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/ES8AIR.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SCCAE.itm b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SCCAE.itm deleted file mode 100644 index 6a2b36d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SCCAE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.BAM deleted file mode 100644 index aeca41f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.VVC deleted file mode 100644 index cf0142b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPPORTAL.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534.SPL b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534.SPL deleted file mode 100644 index d80f803..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534A.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534A.BAM deleted file mode 100644 index 49057d0..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534B.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534B.BAM deleted file mode 100644 index fefd841..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534C.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534C.BAM deleted file mode 100644 index 2ce4c45..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/SPWI534C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/TRANS4.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/TRANS4.ITM deleted file mode 100644 index 4db17ae..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_AIR_ELEMENTAL/TRANS4.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMW.2DA b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMW.2DA deleted file mode 100644 index 80cbcd9..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMW.2DA +++ /dev/null @@ -1,4 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 ES8erth MSumm1H CEElemX diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.BAM deleted file mode 100644 index d9581c9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.VVC deleted file mode 100644 index 2e6b831..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/CEELEMX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/EELEM.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/EELEM.ITM deleted file mode 100644 index cd7fc7a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/EELEM.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/ES8ERTH.CRE b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/ES8ERTH.CRE deleted file mode 100644 index f2b232e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/ES8ERTH.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/IEARTH.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/IEARTH.BAM deleted file mode 100644 index 723f472..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/IEARTH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SCCEE.itm b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SCCEE.itm deleted file mode 100644 index 89c8f18..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SCCEE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532.SPL b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532.SPL deleted file mode 100644 index 0210220..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532A.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532A.BAM deleted file mode 100644 index 3cfcd7b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532B.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532B.BAM deleted file mode 100644 index 1dc8f56..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532C.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532C.BAM deleted file mode 100644 index e161160..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL/SPWI532C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMW.2DA b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMW.2DA deleted file mode 100644 index afd8172..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMW.2DA +++ /dev/null @@ -1,4 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 ES8fire MSumm1H CFElemX diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.BAM deleted file mode 100644 index a291049..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.VVC deleted file mode 100644 index e2d05d2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/CFELEMX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/ES8FIRE.CRE b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/ES8FIRE.CRE deleted file mode 100644 index 504e00e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/ES8FIRE.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/FELE1-8.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/FELE1-8.ITM deleted file mode 100644 index d514525..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/FELE1-8.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SCCFE.itm b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SCCFE.itm deleted file mode 100644 index 241f704..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SCCFE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531.SPL b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531.SPL deleted file mode 100644 index bcf7f63..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531A.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531A.BAM deleted file mode 100644 index 5e5e646..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531B.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531B.BAM deleted file mode 100644 index d83598d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531C.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531C.BAM deleted file mode 100644 index 8ff5ee0..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL/SPWI531C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMW.2DA b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMW.2DA deleted file mode 100644 index 8e81d4b..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMW.2DA +++ /dev/null @@ -1,4 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 ES8watr MSumm1H CWElemX diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.BAM deleted file mode 100644 index 98f7a55..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.VVC deleted file mode 100644 index b9c65bf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/CWELEMX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/ES8WATR.CRE b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/ES8WATR.CRE deleted file mode 100644 index d733865..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/ES8WATR.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNELEWTF.BAF b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNELEWTF.BAF deleted file mode 100644 index 386bc85..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNELEWTF.BAF +++ /dev/null @@ -1,50 +0,0 @@ -IF - Global("CREATURE_STATE_VARBit6","LOCALS",1) - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - !Global("CREATURE_STATE_VARBit6","LOCALS",1) - HasItem("SHLDBCH",LastAttackerOf(Myself)) - AttackedBy([ANYTHING],DEFAULT) -THEN - RESPONSE #100 - SetGlobal("CREATURE_STATE_VARBit6","LOCALS",1) - Continue() -END - -IF - !HasItem("SHLDBCH",NearestEnemyOf(Myself)) - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - !HasItem("SHLDBCH",SecondNearestEnemyOf(Myself)) - See(SecondNearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - !HasItem("SHLDBCH",NearestEnemyOf(Myself)) - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - -IF - !HasItem("SHLDBCH",SecondNearestEnemyOf(Myself)) - AttackedBy(SecondNearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/IWATERE.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/IWATERE.BAM deleted file mode 100644 index 225c1b4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/IWATERE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SCCWE.itm b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SCCWE.itm deleted file mode 100644 index d9259f3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SCCWE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533.SPL b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533.SPL deleted file mode 100644 index 3cc4fbe..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533A.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533A.BAM deleted file mode 100644 index 02b7873..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533B.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533B.BAM deleted file mode 100644 index 405a1a8..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533C.BAM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533C.BAM deleted file mode 100644 index f2f0317..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/SPWI533C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/TRANS4.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/TRANS4.ITM deleted file mode 100644 index 4db17ae..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/TRANS4.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/WELEM.ITM b/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/WELEM.ITM deleted file mode 100644 index 72414ce..0000000 Binary files a/iwdification/dw/copyover/WIZARD_CONJURE_LESSER_WATER_ELEMENTAL/WELEM.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/#EFF_M07.WAV b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/#EFF_M07.WAV deleted file mode 100644 index e4933ef..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/#EFF_M07.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/DOBONE.ITM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/DOBONE.ITM deleted file mode 100644 index a06db59..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/DOBONE.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GDART01.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GDART01.BAM deleted file mode 100644 index d1f394b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GDART01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/IDOBONE.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/IDOBONE.BAM deleted file mode 100644 index 22eb4b7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/IDOBONE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.BAM deleted file mode 100644 index 1712f6d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.VVC b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.VVC deleted file mode 100644 index 26e9f2a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/NECROH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI618X.itm b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI618X.itm deleted file mode 100644 index 14e8ae1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI618X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630.SPL b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630.SPL deleted file mode 100644 index ca64ae2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630A.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630A.BAM deleted file mode 100644 index 476db49..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630B.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630B.BAM deleted file mode 100644 index 3f55fc4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630C.BAM b/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630C.BAM deleted file mode 100644 index 924621b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DARTS_OF_BONE/SPWI630C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_E02.WAV b/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_E02.WAV deleted file mode 100644 index 9157599..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_E02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_M06.WAV b/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_M06.WAV deleted file mode 100644 index 234a09b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/#EFF_M06.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.BAM deleted file mode 100644 index f6afbe3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.ITM b/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.ITM deleted file mode 100644 index 20b3a80..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/DECASTA.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/GBLUN01.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/GBLUN01.BAM deleted file mode 100644 index 502e1dc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/GBLUN01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.BAM deleted file mode 100644 index c3bf486..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.VVC b/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.VVC deleted file mode 100644 index 0030503..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/INVOCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/SCDECA.itm b/iwdification/dw/copyover/WIZARD_DECASTAVE/SCDECA.itm deleted file mode 100644 index bc11fb7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/SCDECA.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216.SPL b/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216.SPL deleted file mode 100644 index 00672d3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216A.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216A.BAM deleted file mode 100644 index 9e77a76..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216B.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216B.BAM deleted file mode 100644 index 5c49221..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216C.BAM b/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216C.BAM deleted file mode 100644 index e558a81..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DECASTAVE/SPWI216C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/DSMONST.2DA b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/DSMONST.2DA deleted file mode 100644 index c5eda9e..0000000 --- a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/DSMONST.2DA +++ /dev/null @@ -1,10 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 SS2gob1 MSumm1H MSumm1X -2 SS2gob2 MSumm1H MSumm1X -3 SS2gob3 MSumm1H MSumm1X -4 SS2gob3 MSumm1H MSumm1X -5 SS2liz5 MSumm1H MSumm1X -6 SS2liz6 MSumm1H MSumm1X -7 SS2liz7 MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SCDMS.itm b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SCDMS.itm deleted file mode 100644 index c4b7900..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SCDMS.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525.SPL b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525.SPL deleted file mode 100644 index b918810..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525A.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525A.BAM deleted file mode 100644 index 6d00bd8..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525B.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525B.BAM deleted file mode 100644 index f3dece1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525C.BAM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525C.BAM deleted file mode 100644 index efa3209..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SPWI525C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB1.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB1.CRE deleted file mode 100644 index 4a63a54..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB1.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB2.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB2.CRE deleted file mode 100644 index 7940bf4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB2.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB3.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB3.CRE deleted file mode 100644 index 17f53fb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2GOB3.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ5.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ5.CRE deleted file mode 100644 index 6fcf159..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ5.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ6.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ6.CRE deleted file mode 100644 index dc21c98..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ6.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ7.CRE b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ7.CRE deleted file mode 100644 index 47d4e25..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SS2LIZ7.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SUMRING.ITM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SUMRING.ITM deleted file mode 100644 index 1ab234d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/SUMRING.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/TRANS40.ITM b/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/TRANS40.ITM deleted file mode 100644 index 0b7080a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_DEMI_SHADOW_MONSTERS/TRANS40.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_E03.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_E03.WAV deleted file mode 100644 index 98de178..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_E03.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_M05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_M05.WAV deleted file mode 100644 index 0de94ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/#EFF_M05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.BAM deleted file mode 100644 index e4a62a9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.VVC deleted file mode 100644 index 611e089..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/ENCHAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/IDPRO407.PRO b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/IDPRO407.PRO deleted file mode 100644 index d4efc95..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/IDPRO407.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SCCOUR.itm b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SCCOUR.itm deleted file mode 100644 index 758bde7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SCCOUR.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427.SPL b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427.SPL deleted file mode 100644 index f7248fe..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427A.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427A.BAM deleted file mode 100644 index 90b1794..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427B.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427B.BAM deleted file mode 100644 index dab9bd6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427C.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427C.BAM deleted file mode 100644 index 1046cb6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_COURAGE/SPWI427C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#ARE_M21.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#ARE_M21.WAV deleted file mode 100644 index 8cbf28f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#ARE_M21.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_E05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_E05.WAV deleted file mode 100644 index 93ac482..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_E05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_M05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_M05.WAV deleted file mode 100644 index 0de94ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#EFF_M05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#GENENCH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#GENENCH.VVC deleted file mode 100644 index c6abf52..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/#GENENCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.BAM deleted file mode 100644 index e4a62a9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.VVC deleted file mode 100644 index 611e089..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHANX.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHANX.BAM deleted file mode 100644 index 2bbb747..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/ENCHANX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/IDPRO255.PRO b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/IDPRO255.PRO deleted file mode 100644 index dbe1aa7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/IDPRO255.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SCFEAR.itm b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SCFEAR.itm deleted file mode 100644 index 438c8f5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SCFEAR.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428.SPL b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428.SPL deleted file mode 100644 index 8fe8266..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428A.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428A.BAM deleted file mode 100644 index 3026d02..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428B.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428B.BAM deleted file mode 100644 index 7986d66..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428C.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428C.BAM deleted file mode 100644 index a4815d9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_FEAR/SPWI428C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_E03.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_E03.WAV deleted file mode 100644 index 98de178..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_E03.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_M05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_M05.WAV deleted file mode 100644 index 0de94ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/#EFF_M05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.BAM deleted file mode 100644 index e4a62a9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.VVC deleted file mode 100644 index 611e089..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/ENCHAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/IDPRO407.PRO b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/IDPRO407.PRO deleted file mode 100644 index d4efc95..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/IDPRO407.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SCEMOT.itm b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SCEMOT.itm deleted file mode 100644 index 4bea79b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SCEMOT.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429.SPL b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429.SPL deleted file mode 100644 index fb3220f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429A.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429A.BAM deleted file mode 100644 index ee5a54e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429B.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429B.BAM deleted file mode 100644 index 164fb35..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429C.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429C.BAM deleted file mode 100644 index 417107f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPE/SPWI429C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#ARE_M21.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#ARE_M21.WAV deleted file mode 100644 index 8cbf28f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#ARE_M21.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_E05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_E05.WAV deleted file mode 100644 index 93ac482..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_E05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_M05.WAV b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_M05.WAV deleted file mode 100644 index 0de94ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#EFF_M05.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#GENENCH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#GENENCH.VVC deleted file mode 100644 index c6abf52..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/#GENENCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/ENCHANX.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/ENCHANX.BAM deleted file mode 100644 index 2bbb747..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/ENCHANX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/IDPRO255.PRO b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/IDPRO255.PRO deleted file mode 100644 index dbe1aa7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/IDPRO255.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/PARALH.VVC b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/PARALH.VVC deleted file mode 100644 index 204ac0f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/PARALH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SCHOPE.itm b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SCHOPE.itm deleted file mode 100644 index bbae260..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SCHOPE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411.SPL b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411.SPL deleted file mode 100644 index 65192e5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411A.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411A.BAM deleted file mode 100644 index d582a31..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411B.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411B.BAM deleted file mode 100644 index 33f4206..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411C.BAM b/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411C.BAM deleted file mode 100644 index 6fd6f88..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EMOTION_HOPELESSNESS/SPWI411C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126.SPL b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126.SPL deleted file mode 100644 index c02b40b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126A.BAM b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126A.BAM deleted file mode 100644 index f76184d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126B.BAM b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126B.BAM deleted file mode 100644 index a5c4244..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126C.BAM b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126C.BAM deleted file mode 100644 index dcbe7d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126X.itm b/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126X.itm deleted file mode 100644 index f1858d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_EXPEDITIOUS_RETREAT/SPWI126X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#FF_M101.WAV b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#FF_M101.WAV deleted file mode 100644 index fde73e5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#FF_M101.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#TRA_08.WAV b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#TRA_08.WAV deleted file mode 100644 index 5da095b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/#TRA_08.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSHOUTT.BAM b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSHOUTT.BAM deleted file mode 100644 index 8a47a12..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/GSHOUTT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/IDPRO319.PRO b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/IDPRO319.PRO deleted file mode 100644 index 9e61cf5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/IDPRO319.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806.SPL b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806.SPL deleted file mode 100644 index d094da3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806A.BAM b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806A.BAM deleted file mode 100644 index db527d8..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806B.BAM b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806B.BAM deleted file mode 100644 index 2334033..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806C.BAM b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806C.BAM deleted file mode 100644 index 612c4f7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806X.itm b/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806X.itm deleted file mode 100644 index 2da172c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_GREAT_SHOUT/SPWI806X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/#TRA_19.WAV b/iwdification/dw/copyover/WIZARD_ICELANCE/#TRA_19.WAV deleted file mode 100644 index 35b040d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/#TRA_19.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_ICELANCE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/ICELANT.BAM b/iwdification/dw/copyover/WIZARD_ICELANCE/ICELANT.BAM deleted file mode 100644 index 400aabc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/ICELANT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/IDPRO251.PRO b/iwdification/dw/copyover/WIZARD_ICELANCE/IDPRO251.PRO deleted file mode 100644 index 653e298..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/IDPRO251.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/SCICE.itm b/iwdification/dw/copyover/WIZARD_ICELANCE/SCICE.itm deleted file mode 100644 index e24bb35..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/SCICE.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327.SPL b/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327.SPL deleted file mode 100644 index 22cd666..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327A.BAM b/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327A.BAM deleted file mode 100644 index a4e2756..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327B.BAM b/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327B.BAM deleted file mode 100644 index 7950094..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327C.BAM b/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327C.BAM deleted file mode 100644 index bcc33ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_ICELANCE/SPWI327C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/#FF_M102.WAV b/iwdification/dw/copyover/WIZARD_IRON_BODY/#FF_M102.WAV deleted file mode 100644 index 84efadf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/#FF_M102.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_IRON_BODY/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/IBODY.ITM b/iwdification/dw/copyover/WIZARD_IRON_BODY/IBODY.ITM deleted file mode 100644 index 406f128..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/IBODY.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/IIBODY.BAM b/iwdification/dw/copyover/WIZARD_IRON_BODY/IIBODY.BAM deleted file mode 100644 index 5445124..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/IIBODY.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI807X.itm b/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI807X.itm deleted file mode 100644 index dfbe4c7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI807X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814.SPL b/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814.SPL deleted file mode 100644 index fac8cee..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814A.BAM b/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814A.BAM deleted file mode 100644 index b065b89..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814B.BAM b/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814B.BAM deleted file mode 100644 index 20762c9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814C.BAM b/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814C.BAM deleted file mode 100644 index 368def7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_IRON_BODY/SPWI814C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#EFF_M06.WAV b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#EFF_M06.WAV deleted file mode 100644 index 234a09b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#EFF_M06.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#TRA_59.WAV b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#TRA_59.WAV deleted file mode 100644 index 6269c86..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/#TRA_59.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/IDPRO313.PRO b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/IDPRO313.PRO deleted file mode 100644 index e6fa5d0..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/IDPRO313.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.BAM deleted file mode 100644 index c3bf486..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.VVC b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.VVC deleted file mode 100644 index 0030503..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/INVOCH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/LODISRT.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/LODISRT.BAM deleted file mode 100644 index 4d23590..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/LODISRT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI319X.itm b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI319X.itm deleted file mode 100644 index 555b76c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI319X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328.SPL b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328.SPL deleted file mode 100644 index da68324..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328A.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328A.BAM deleted file mode 100644 index 229e78c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328B.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328B.BAM deleted file mode 100644 index f275ba7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328C.BAM b/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328C.BAM deleted file mode 100644 index f24238c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LANCE_OF_DISRUPTION/SPWI328C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_E04.WAV b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_E04.WAV deleted file mode 100644 index 72bd0e2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_E04.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_M07.WAV b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_M07.WAV deleted file mode 100644 index e4933ef..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/#EFF_M07.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/ILTOUCH.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/ILTOUCH.BAM deleted file mode 100644 index d8a3795..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/ILTOUCH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.ITM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.ITM deleted file mode 100644 index 1c78905..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.SPL b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.SPL deleted file mode 100644 index 7b6c35f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/LTOUCH.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.BAM deleted file mode 100644 index 1712f6d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.VVC b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.VVC deleted file mode 100644 index 26e9f2a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/NECROH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SCLICH.itm b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SCLICH.itm deleted file mode 100644 index 164a414..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SCLICH.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626.SPL b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626.SPL deleted file mode 100644 index 6285746..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626A.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626A.BAM deleted file mode 100644 index b0a6c0a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626B.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626B.BAM deleted file mode 100644 index 0e240fb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626C.BAM b/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626C.BAM deleted file mode 100644 index a1cfcfe..0000000 Binary files a/iwdification/dw/copyover/WIZARD_LICH_TOUCH/SPWI626C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/#MALRAGE.VVC b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/#MALRAGE.VVC deleted file mode 100644 index 5d8775f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/#MALRAGE.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/IDPRO209.PRO b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/IDPRO209.PRO deleted file mode 100644 index e7cef70..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/IDPRO209.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.BAM deleted file mode 100644 index 637be29..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.VVC b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.VVC deleted file mode 100644 index 4ef610d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEX.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEX.BAM deleted file mode 100644 index b6ceb57..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/MRAGEX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SCMALA.itm b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SCMALA.itm deleted file mode 100644 index 3d03a77..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SCMALA.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709.SPL b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709.SPL deleted file mode 100644 index 2960a4a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709A.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709A.BAM deleted file mode 100644 index 04fbf07..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709B.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709B.BAM deleted file mode 100644 index 41bfc37..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709C.BAM b/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709C.BAM deleted file mode 100644 index 40e8e18..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MALAVONS_RAGE/SPWI709C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/#EFF_M02.WAV b/iwdification/dw/copyover/WIZARD_MIND_BLANK/#EFF_M02.WAV deleted file mode 100644 index ee3009b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/#EFF_M02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/ABJURH.VVC b/iwdification/dw/copyover/WIZARD_MIND_BLANK/ABJURH.VVC deleted file mode 100644 index a570456..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/ABJURH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MIND_BLANK/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SCBLANK.itm b/iwdification/dw/copyover/WIZARD_MIND_BLANK/SCBLANK.itm deleted file mode 100644 index 7c629d8..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SCBLANK.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802.SPL b/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802.SPL deleted file mode 100644 index d85ca49..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802A.BAM b/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802A.BAM deleted file mode 100644 index 634f73b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802B.BAM b/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802B.BAM deleted file mode 100644 index 7ff8b08..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802C.BAM b/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802C.BAM deleted file mode 100644 index 2cc6a36..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MIND_BLANK/SPWI802C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMB.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMB.BAF deleted file mode 100644 index eb9791b..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMB.BAF +++ /dev/null @@ -1,25 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) - Range(LastSeenBy(Myself),4) -THEN - RESPONSE #100 - EquipMostDamagingMelee() - AttackReevaluate(LastSeenBy(Myself),45) -END - -IF - See(NearestEnemyOf(Myself)) - !Range(LastSeenBy(Myself),4) -THEN - RESPONSE #100 - EquipRanged() - AttackReevaluate(LastSeenBy(Myself),45) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBA.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBA.CRE deleted file mode 100644 index 85c80d2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBA.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBM.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBM.CRE deleted file mode 100644 index 9665a24..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MS1GOBM.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMMO1.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMMO1.2DA deleted file mode 100644 index 8a40314..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/MSUMMO1.2DA +++ /dev/null @@ -1,6 +0,0 @@ -2DA V1.0 -0 - RESREF Hit AreaHitAnimation -1 MS1fb MSumm1H MSumm1X -2 MS1goba MSumm1H MSumm1X -3 MS1gobm MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SCRL1L.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SCRL1L.itm deleted file mode 100644 index 30593a4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SCRL1L.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309.SPL deleted file mode 100644 index 0fff079..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309A.BAM deleted file mode 100644 index cc50fd5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309B.BAM deleted file mode 100644 index 5535cb1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309C.BAM deleted file mode 100644 index f34f939..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_1/SPWI309C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MS2LIZM.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MS2LIZM.CRE deleted file mode 100644 index ec1a4ea..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MS2LIZM.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMMO2.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMMO2.2DA deleted file mode 100644 index e7f605a..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/MSUMMO2.2DA +++ /dev/null @@ -1,7 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS2bbtl MSumm1H MSumm1X -2 MS2gobb MSumm1H MSumm1X -3 MS2gobe MSumm1H MSumm1X -4 MS2lizm MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SCRL2A.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SCRL2A.itm deleted file mode 100644 index 9521fcb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SCRL2A.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407.SPL deleted file mode 100644 index ff941ce..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407A.BAM deleted file mode 100644 index 211755c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407B.BAM deleted file mode 100644 index 97b0e84..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407C.BAM deleted file mode 100644 index 35bc428..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_2/SPWI407C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMMO3.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMMO3.2DA deleted file mode 100644 index e1c662d..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/MSUMMO3.2DA +++ /dev/null @@ -1,8 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS3borb MSumm1H MSumm1X -2 MS3ghl MSumm1H MSumm1X -3 MS3hspi MSumm1H MSumm1X -4 MS3orog MSumm1H MSumm1X -5 MS3tliz MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SCRL2G.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SCRL2G.itm deleted file mode 100644 index fca91aa..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SCRL2G.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504.SPL deleted file mode 100644 index 7862326..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504A.BAM deleted file mode 100644 index 9138da3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504B.BAM deleted file mode 100644 index 352e4a5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504C.BAM deleted file mode 100644 index 6dbb89e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_3/SPWI504C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMMO4.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMMO4.2DA deleted file mode 100644 index 3dbeb8c..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/MSUMMO4.2DA +++ /dev/null @@ -1,6 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS4ghst MSumm1H MSumm1X -2 MS4ogr MSumm1H MSumm1X -3 MS4yeti MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SCMSIV.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SCMSIV.itm deleted file mode 100644 index 46fb711..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SCMSIV.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627.SPL deleted file mode 100644 index d1de62b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627A.BAM deleted file mode 100644 index 6f08f1f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627B.BAM deleted file mode 100644 index b427adc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627C.BAM deleted file mode 100644 index 0389e15..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_4/SPWI627C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MS5MINO.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MS5MINO.CRE deleted file mode 100644 index f8008bd..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MS5MINO.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMMO5.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMMO5.2DA deleted file mode 100644 index 2c6ced9..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/MSUMMO5.2DA +++ /dev/null @@ -1,6 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS5gspi MSumm1H MSumm1X -2 MS5jzom MSumm1H MSumm1X -3 MS5mino MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/S1-8M1.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/S1-8M1.ITM deleted file mode 100644 index 6a28c3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/S1-8M1.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SCMSV.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SCMSV.itm deleted file mode 100644 index 3c76104..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SCMSV.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706.SPL deleted file mode 100644 index efb5fa5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706A.BAM deleted file mode 100644 index bc85259..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706B.BAM deleted file mode 100644 index c1fab6d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706C.BAM deleted file mode 100644 index e5899e7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_5/SPWI706C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FIREAU.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FIREAU.VVC deleted file mode 100644 index 387c5f9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FIREAU.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FROSTAU.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FROSTAU.VVC deleted file mode 100644 index ff20bd6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#FROSTAU.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#TEMP.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#TEMP.BAM deleted file mode 100644 index f65b5ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/#TEMP.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/CSALRING.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/CSALRING.ITM deleted file mode 100644 index 028902a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/CSALRING.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FIAURAC.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FIAURAC.BAM deleted file mode 100644 index 7dd1597..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FIAURAC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FRAURAC.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FRAURAC.BAM deleted file mode 100644 index e172dd3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FRAURAC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FSALRING.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FSALRING.ITM deleted file mode 100644 index 808944a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/FSALRING.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALC.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALC.CRE deleted file mode 100644 index 4446e30..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALC.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALF.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALF.CRE deleted file mode 100644 index fe45fcf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MS6SALF.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMMO6.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMMO6.2DA deleted file mode 100644 index 20ed31c..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/MSUMMO6.2DA +++ /dev/null @@ -1,7 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS6crwl MSumm1H MSumm1X -2 MS6pspi MSumm1H MSumm1X -3 MS6salc MSumm1H MSumm1X -4 MS6salf MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFIRE.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFIRE.ITM deleted file mode 100644 index 997ad19..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFIRE.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFROS.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFROS.ITM deleted file mode 100644 index 28b8e49..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SALFROS.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SCMSVI.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SCMSVI.itm deleted file mode 100644 index 2eda026..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SCMSVI.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801.SPL deleted file mode 100644 index 860b9bc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801A.BAM deleted file mode 100644 index 175ec67..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801B.BAM deleted file mode 100644 index 47a54d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801C.BAM deleted file mode 100644 index e5839c6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_6/SPWI801C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7BGRD.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7BGRD.CRE deleted file mode 100644 index a691535..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7BGRD.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7UMBH.CRE b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7UMBH.CRE deleted file mode 100644 index 8bf11f5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MS7UMBH.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMMO7.2DA b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMMO7.2DA deleted file mode 100644 index e57df48..0000000 --- a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/MSUMMO7.2DA +++ /dev/null @@ -1,5 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 MS7bgrd MSumm1H MSumm1X -2 MS7umbh MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SCMSVII.itm b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SCMSVII.itm deleted file mode 100644 index 264cd91..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SCMSVII.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901.SPL b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901.SPL deleted file mode 100644 index cfe15db..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901A.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901A.BAM deleted file mode 100644 index 57025e2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901B.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901B.BAM deleted file mode 100644 index c37f5f5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901C.BAM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901C.BAM deleted file mode 100644 index cdc0319..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/SPWI901C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/UMBERHLK.ITM b/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/UMBERHLK.ITM deleted file mode 100644 index 45775bf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MONSTER_SUMMONING_7/UMBERHLK.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#ARE_M02.WAV b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#ARE_M02.WAV deleted file mode 100644 index c640b5f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#ARE_M02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#FF_M103.WAV b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#FF_M103.WAV deleted file mode 100644 index c3e84ec..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/#FF_M103.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS.PRO b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS.PRO deleted file mode 100644 index 641f15e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS2.PRO b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS2.PRO deleted file mode 100644 index d1f2f2d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISS2.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISST.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISST.BAM deleted file mode 100644 index a5a8ef2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISST.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.BAM deleted file mode 100644 index 8f1d5fa..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.VVC b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.VVC deleted file mode 100644 index b968c9a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/MFMISSX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI422X.itm b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI422X.itm deleted file mode 100644 index 5fe15c3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI422X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430.SPL b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430.SPL deleted file mode 100644 index 89c4073..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430A.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430A.BAM deleted file mode 100644 index 0453440..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.BAM deleted file mode 100644 index be7b341..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.SPL b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.SPL deleted file mode 100644 index 0028cce..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430C.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430C.BAM deleted file mode 100644 index 0820588..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_FORCE_MISSILES/SPWI430C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_E01.WAV b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_E01.WAV deleted file mode 100644 index 30f8465..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_E01.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_M45.WAV b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_M45.WAV deleted file mode 100644 index f8731df..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/#EFF_M45.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.BAM deleted file mode 100644 index e4a62a9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.VVC b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.VVC deleted file mode 100644 index 611e089..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/ENCHAH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSW1H01.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSW1H01.BAM deleted file mode 100644 index 59b7abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/GSW1H01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/IMSWORD.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/IMSWORD.BAM deleted file mode 100644 index ac1d6dd..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/IMSWORD.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORD.ITM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORD.ITM deleted file mode 100644 index b665c30..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORD.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.BAM deleted file mode 100644 index 38546ce..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.VVC b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.VVC deleted file mode 100644 index 47a4152..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/MSWORDH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SCMORD.itm b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SCMORD.itm deleted file mode 100644 index 6eca3ee..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SCMORD.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716.SPL b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716.SPL deleted file mode 100644 index 93718bc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716A.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716A.BAM deleted file mode 100644 index 005b955..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716B.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716B.BAM deleted file mode 100644 index 005381d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716C.BAM b/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716C.BAM deleted file mode 100644 index b65bfe7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_MORDENKAINENS_SWORD_IWD/SPWI716C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/IDPRO269.PRO b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/IDPRO269.PRO deleted file mode 100644 index b83af79..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/IDPRO269.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/OFSPHET.BAM b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/OFSPHET.BAM deleted file mode 100644 index 0f8ec7d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/OFSPHET.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SCOFS.itm b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SCOFS.itm deleted file mode 100644 index 3a96e44..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SCOFS.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628.SPL b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628.SPL deleted file mode 100644 index cbc502c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628A.BAM b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628A.BAM deleted file mode 100644 index a062471..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628B.BAM b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628B.BAM deleted file mode 100644 index ea9e9e4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628C.BAM b/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628C.BAM deleted file mode 100644 index 28ca645..0000000 Binary files a/iwdification/dw/copyover/WIZARD_OTILUKES_FREEZING_SPHERE/SPWI628C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI710X.itm b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI710X.itm deleted file mode 100644 index dfe21d4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI710X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725.SPL b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725.SPL deleted file mode 100644 index c56cc54..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725A.BAM b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725A.BAM deleted file mode 100644 index 2652e4e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725B.BAM b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725B.BAM deleted file mode 100644 index 0b9b2cb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725C.BAM b/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725C.BAM deleted file mode 100644 index 80b37d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SEVEN_EYES/SPWI725C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_SHADES/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/CDIWDTR1.SPL b/iwdification/dw/copyover/WIZARD_SHADES/CDIWDTR1.SPL deleted file mode 100644 index b0c63c3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/CDIWDTR1.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/EFTROLG.BAF b/iwdification/dw/copyover/WIZARD_SHADES/EFTROLG.BAF deleted file mode 100644 index e69de29..0000000 diff --git a/iwdification/dw/copyover/WIZARD_SHADES/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_SHADES/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_SHADES/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_SHADES/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SHADES/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/M1D7SLSH.ITM b/iwdification/dw/copyover/WIZARD_SHADES/M1D7SLSH.ITM deleted file mode 100644 index 1c956e2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/M1D7SLSH.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/REG1HP2.ITM b/iwdification/dw/copyover/WIZARD_SHADES/REG1HP2.ITM deleted file mode 100644 index fec4e82..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/REG1HP2.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SCSHDS.itm b/iwdification/dw/copyover/WIZARD_SHADES/SCSHDS.itm deleted file mode 100644 index d46c61c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SCSHDS.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SHADES.2DA b/iwdification/dw/copyover/WIZARD_SHADES/SHADES.2DA deleted file mode 100644 index 0501ab2..0000000 --- a/iwdification/dw/copyover/WIZARD_SHADES/SHADES.2DA +++ /dev/null @@ -1,14 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 SS2gob2 MSumm1H MSumm1X -2 SS2gob2 MSumm1H MSumm1X -3 SS2gob3 MSumm1H MSumm1X -4 SS2gob3 MSumm1H MSumm1X -5 SS2liz5 MSumm1H MSumm1X -6 SS2liz6 MSumm1H MSumm1X -7 SS2liz7 MSumm1H MSumm1X -8 SS3trl7 MSumm1H MSumm1X -9 SS3trl8 MSumm1H MSumm1X -10 SS3umb8 MSumm1H MSumm1X -11 SS3umb9 MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629.SPL b/iwdification/dw/copyover/WIZARD_SHADES/SPWI629.SPL deleted file mode 100644 index 47cd77a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629A.BAM b/iwdification/dw/copyover/WIZARD_SHADES/SPWI629A.BAM deleted file mode 100644 index 06d07cb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629B.BAM b/iwdification/dw/copyover/WIZARD_SHADES/SPWI629B.BAM deleted file mode 100644 index 9695583..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629C.BAM b/iwdification/dw/copyover/WIZARD_SHADES/SPWI629C.BAM deleted file mode 100644 index db671d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SPWI629C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB2.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB2.CRE deleted file mode 100644 index 7940bf4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB2.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB3.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB3.CRE deleted file mode 100644 index 17f53fb..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS2GOB3.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ5.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ5.CRE deleted file mode 100644 index 6fcf159..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ5.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ6.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ6.CRE deleted file mode 100644 index dc21c98..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ6.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ7.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ7.CRE deleted file mode 100644 index 47d4e25..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS2LIZ7.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL7.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL7.CRE deleted file mode 100644 index 2c27a80..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL7.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL8.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL8.CRE deleted file mode 100644 index fb9c267..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS3TRL8.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB8.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB8.CRE deleted file mode 100644 index f0a1dad..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB8.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB9.CRE b/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB9.CRE deleted file mode 100644 index f682e1e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SS3UMB9.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SUMAMU.ITM b/iwdification/dw/copyover/WIZARD_SHADES/SUMAMU.ITM deleted file mode 100644 index ba12c96..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SUMAMU.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/SUMRING.ITM b/iwdification/dw/copyover/WIZARD_SHADES/SUMRING.ITM deleted file mode 100644 index 1ab234d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/SUMRING.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/TRANS40.ITM b/iwdification/dw/copyover/WIZARD_SHADES/TRANS40.ITM deleted file mode 100644 index 0b7080a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/TRANS40.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/TRANS60.ITM b/iwdification/dw/copyover/WIZARD_SHADES/TRANS60.ITM deleted file mode 100644 index 3dd3c45..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/TRANS60.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADES/UMBERHLK.ITM b/iwdification/dw/copyover/WIZARD_SHADES/UMBERHLK.ITM deleted file mode 100644 index 45775bf..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADES/UMBERHLK.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/M1D7SLSH.ITM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/M1D7SLSH.ITM deleted file mode 100644 index 1c956e2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/M1D7SLSH.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SCSHAD.itm b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SCSHAD.itm deleted file mode 100644 index ec3f610..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SCSHAD.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SMONSTE.2DA b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SMONSTE.2DA deleted file mode 100644 index 852667c..0000000 --- a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SMONSTE.2DA +++ /dev/null @@ -1,11 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 SS1gob1 MSumm1H MSumm1X -2 SS1gob2 MSumm1H MSumm1X -3 SS1gob3 MSumm1H MSumm1X -4 SS1liz3 MSumm1H MSumm1X -5 SS1liz4 MSumm1H MSumm1X -6 SS1trl6 MSumm1H MSumm1X -7 SS1trl7 MSumm1H MSumm1X -8 SS1trl8 MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426.SPL b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426.SPL deleted file mode 100644 index 5194688..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426A.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426A.BAM deleted file mode 100644 index 5df8fca..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426B.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426B.BAM deleted file mode 100644 index 884d760..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426C.BAM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426C.BAM deleted file mode 100644 index a290b2a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SPWI426C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB1.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB1.CRE deleted file mode 100644 index 482a270..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB1.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB2.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB2.CRE deleted file mode 100644 index eb7dcb6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB2.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB3.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB3.CRE deleted file mode 100644 index d9fa26b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1GOB3.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ3.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ3.CRE deleted file mode 100644 index 1757985..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ3.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ4.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ4.CRE deleted file mode 100644 index c5df2ba..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1LIZ4.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL6.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL6.CRE deleted file mode 100644 index 95e03be..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL6.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL7.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL7.CRE deleted file mode 100644 index 25931e1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL7.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL8.CRE b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL8.CRE deleted file mode 100644 index e3ab0e2..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SS1TRL8.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SUMRING.ITM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SUMRING.ITM deleted file mode 100644 index 1ab234d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/SUMRING.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/TRANS20.ITM b/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/TRANS20.ITM deleted file mode 100644 index f4d7bc1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHADOW_MONSTERS/TRANS20.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/#FF_M100.WAV b/iwdification/dw/copyover/WIZARD_SHOUT/#FF_M100.WAV deleted file mode 100644 index 8ab4c8c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/#FF_M100.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/#TRA_08.WAV b/iwdification/dw/copyover/WIZARD_SHOUT/#TRA_08.WAV deleted file mode 100644 index 5da095b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/#TRA_08.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SHOUT/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/IDPRO315.PRO b/iwdification/dw/copyover/WIZARD_SHOUT/IDPRO315.PRO deleted file mode 100644 index 35c030f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/IDPRO315.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SHOUTT.BAM b/iwdification/dw/copyover/WIZARD_SHOUT/SHOUTT.BAM deleted file mode 100644 index 3bbb159..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SHOUTT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI423X.itm b/iwdification/dw/copyover/WIZARD_SHOUT/SPWI423X.itm deleted file mode 100644 index 89713d6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI423X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431.SPL b/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431.SPL deleted file mode 100644 index 0cc7640..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431A.BAM b/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431A.BAM deleted file mode 100644 index c01edab..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431B.BAM b/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431B.BAM deleted file mode 100644 index 7e7912e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431C.BAM b/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431C.BAM deleted file mode 100644 index ca45816..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHOUT/SPWI431C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/IDSHROUD.PRO b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/IDSHROUD.PRO deleted file mode 100644 index 3f179e5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/IDSHROUD.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SCSHRO.itm b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SCSHRO.itm deleted file mode 100644 index 46eba55..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SCSHRO.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.BAM b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.BAM deleted file mode 100644 index 7c8ea6e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.VVC b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.VVC deleted file mode 100644 index b9efc6b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SOFLAMC.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524.SPL b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524.SPL deleted file mode 100644 index 81bd65c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524A.BAM b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524A.BAM deleted file mode 100644 index 4e08a3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.BAM b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.BAM deleted file mode 100644 index cbdc6e9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.SPL b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.SPL deleted file mode 100644 index 808a3d0..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524C.BAM b/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524C.BAM deleted file mode 100644 index bf77c51..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SHROUD_OF_FLAME/SPWI524C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/#SSSWARM.VVC b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/#SSSWARM.VVC deleted file mode 100644 index 3a41c7b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/#SSSWARM.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/IDPRO217.PRO b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/IDPRO217.PRO deleted file mode 100644 index 561911e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/IDPRO217.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/RNG_M02.WAV b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/RNG_M02.WAV deleted file mode 100644 index b891c0c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/RNG_M02.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SCSNILL.itm b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SCSNILL.itm deleted file mode 100644 index c742e58..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SCSNILL.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204.SPL b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204.SPL deleted file mode 100644 index 363febe..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204A.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204A.BAM deleted file mode 100644 index 4dbea36..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.BAM deleted file mode 100644 index d9559c8..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.SPL b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.SPL deleted file mode 100644 index a5dcf00..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.BAM deleted file mode 100644 index 4557f13..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.SPL b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.SPL deleted file mode 100644 index 936f173..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SPWI204C.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARR.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARR.BAM deleted file mode 100644 index 7758052..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARR.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWART.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWART.BAM deleted file mode 100644 index 43e69b5..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWART.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARX.BAM b/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARX.BAM deleted file mode 100644 index 5c14579..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SNILLOCS_SNOWBALL_SWARM/SSSWARX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/#FF_M104.WAV b/iwdification/dw/copyover/WIZARD_SOUL_EATER/#FF_M104.WAV deleted file mode 100644 index 2d470b9..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/#FF_M104.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/AD3SKLM.CRE b/iwdification/dw/copyover/WIZARD_SOUL_EATER/AD3SKLM.CRE deleted file mode 100644 index 2d1a312..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/AD3SKLM.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/ARE_M18.WAV b/iwdification/dw/copyover/WIZARD_SOUL_EATER/ARE_M18.WAV deleted file mode 100644 index 883858f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/ARE_M18.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_SOUL_EATER/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_SOUL_EATER/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/IDPRO299.PRO b/iwdification/dw/copyover/WIZARD_SOUL_EATER/IDPRO299.PRO deleted file mode 100644 index dd7fa91..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/IDPRO299.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/RNDTRE40.ITM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/RNDTRE40.ITM deleted file mode 100644 index 752255d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/RNDTRE40.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.BAM deleted file mode 100644 index a91fb30..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.VVC b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.VVC deleted file mode 100644 index caae5b3..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERA.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.BAM deleted file mode 100644 index 5dc42ec..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.VVC b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.VVC deleted file mode 100644 index b2454dd..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SEATERH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI619X.itm b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI619X.itm deleted file mode 100644 index d9c2038..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI619X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631.SPL b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631.SPL deleted file mode 100644 index 1490990..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631A.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631A.BAM deleted file mode 100644 index 350ebff..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.BAM deleted file mode 100644 index 003497b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.SPL b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.SPL deleted file mode 100644 index e81f6ca..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631B.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631C.BAM b/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631C.BAM deleted file mode 100644 index 2c14822..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SOUL_EATER/SPWI631C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SUFFOCATE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/IDPRO317.PRO b/iwdification/dw/copyover/WIZARD_SUFFOCATE/IDPRO317.PRO deleted file mode 100644 index 1d692ca..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/IDPRO317.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI711X.itm b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI711X.itm deleted file mode 100644 index 65389aa..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI711X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726.SPL b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726.SPL deleted file mode 100644 index 2f03d4f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726A.BAM b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726A.BAM deleted file mode 100644 index ed0f418..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726B.BAM b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726B.BAM deleted file mode 100644 index 582712a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726C.BAM b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726C.BAM deleted file mode 100644 index 6e7097c..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SPWI726C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.BAM b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.BAM deleted file mode 100644 index 4e4a13b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.VVC b/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.VVC deleted file mode 100644 index b17cf6b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUFFOCATE/SUFFOCA.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/#ISC_01C.WAV b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/#ISC_01C.WAV deleted file mode 100644 index c6d87c1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/#ISC_01C.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GNSUMMM.BAF b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GNSUMMM.BAF deleted file mode 100644 index 6723232..0000000 --- a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GNSUMMM.BAF +++ /dev/null @@ -1,14 +0,0 @@ -IF - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - AttackReevaluate(LastSeenBy(Myself),75) -END - -IF - AttackedBy(NearestEnemyOf(Myself),DEFAULT) -THEN - RESPONSE #100 - MoveToObject(LastAttackerOf(Myself)) -END - diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.BAM deleted file mode 100644 index db39f3d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.VVC b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.VVC deleted file mode 100644 index 8aabcd1..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1H.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.BAM deleted file mode 100644 index c59a41b..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.VVC b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.VVC deleted file mode 100644 index ac69f01..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/MSUMM1X.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.BAM deleted file mode 100644 index 1712f6d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.VVC b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.VVC deleted file mode 100644 index 26e9f2a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/NECROH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SCSSHA.itm b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SCSSHA.itm deleted file mode 100644 index 5ea6d6f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SCSSHA.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.ITM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.ITM deleted file mode 100644 index 12232c4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.SPL b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.SPL deleted file mode 100644 index 4c91ab4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SHADOW1.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526.SPL b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526.SPL deleted file mode 100644 index 1393e56..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526A.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526A.BAM deleted file mode 100644 index 103d501..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526B.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526B.BAM deleted file mode 100644 index 736a12e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526C.BAM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526C.BAM deleted file mode 100644 index 5121c2e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SPWI526C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SSHADOW.2DA b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SSHADOW.2DA deleted file mode 100644 index add4e69..0000000 --- a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SSHADOW.2DA +++ /dev/null @@ -1,4 +0,0 @@ -2DA V1.0 -0 - RESREF HitAnimation AreaHitAnimation -1 SUMShad MSumm1H MSumm1X diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SUMSHAD.CRE b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SUMSHAD.CRE deleted file mode 100644 index 430245e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/SUMSHAD.CRE and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/TRANS60.ITM b/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/TRANS60.ITM deleted file mode 100644 index 3dd3c45..0000000 Binary files a/iwdification/dw/copyover/WIZARD_SUMMON_SHADOW/TRANS60.ITM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/#TROLLIS.EFF b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/#TROLLIS.EFF deleted file mode 100644 index b902338..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/#TROLLIS.EFF and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI620X.itm b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI620X.itm deleted file mode 100644 index f625967..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI620X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632.SPL b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632.SPL deleted file mode 100644 index aae9220..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632A.BAM b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632A.BAM deleted file mode 100644 index 04a2388..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632B.BAM b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632B.BAM deleted file mode 100644 index c690fd7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632C.BAM b/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632C.BAM deleted file mode 100644 index c805841..0000000 Binary files a/iwdification/dw/copyover/WIZARD_TROLLISH_FORTITUDE/SPWI632C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#EFF_M34.WAV b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#EFF_M34.WAV deleted file mode 100644 index 09c7512..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#EFF_M34.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#TRA_60.WAV b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#TRA_60.WAV deleted file mode 100644 index 592070e..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/#TRA_60.WAV and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.BAM deleted file mode 100644 index c8fa84a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.VVC b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.VVC deleted file mode 100644 index e2733f0..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/ACIDH.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/GSCRL01.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/GSCRL01.BAM deleted file mode 100644 index 1547abc..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/GSCRL01.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/IDPRO316.PRO b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/IDPRO316.PRO deleted file mode 100644 index ef1dda4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/IDPRO316.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SMLLARNC.PRO b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SMLLARNC.PRO deleted file mode 100644 index b5cb906..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SMLLARNC.PRO and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI424X.itm b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI424X.itm deleted file mode 100644 index d5dce9d..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI424X.itm and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432.SPL b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432.SPL deleted file mode 100644 index 80caa0a..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432A.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432A.BAM deleted file mode 100644 index 4098cfd..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432A.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432B.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432B.BAM deleted file mode 100644 index 98c69e4..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432B.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432C.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432C.BAM deleted file mode 100644 index a5c6de7..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432C.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Y.SPL b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Y.SPL deleted file mode 100644 index cfdee2f..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Y.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Z.SPL b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Z.SPL deleted file mode 100644 index 0ca89a6..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/SPWI432Z.SPL and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERT.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERT.BAM deleted file mode 100644 index 6735129..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERT.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.BAM b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.BAM deleted file mode 100644 index 35c3260..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.VVC b/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.VVC deleted file mode 100644 index 2bf6f41..0000000 Binary files a/iwdification/dw/copyover/WIZARD_VITRIOLIC_SPHERE/VSPHERX.VVC and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMA1.BAM b/iwdification/dw/copyover/anim/bam/MBBMA1.BAM deleted file mode 100644 index 0de2c18..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMA1.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMA1E.BAM b/iwdification/dw/copyover/anim/bam/MBBMA1E.BAM deleted file mode 100644 index b501911..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMA1E.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMA4.BAM b/iwdification/dw/copyover/anim/bam/MBBMA4.BAM deleted file mode 100644 index c3d3588..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMA4.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMA4E.BAM b/iwdification/dw/copyover/anim/bam/MBBMA4E.BAM deleted file mode 100644 index 45d9fd7..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMA4E.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMCA.BAM b/iwdification/dw/copyover/anim/bam/MBBMCA.BAM deleted file mode 100644 index c3d3588..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMCA.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMCAE.BAM b/iwdification/dw/copyover/anim/bam/MBBMCAE.BAM deleted file mode 100644 index 45d9fd7..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMCAE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMDE.BAM b/iwdification/dw/copyover/anim/bam/MBBMDE.BAM deleted file mode 100644 index 8fcbcaa..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMDE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMDEE.BAM b/iwdification/dw/copyover/anim/bam/MBBMDEE.BAM deleted file mode 100644 index 98371a8..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMDEE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMGH.BAM b/iwdification/dw/copyover/anim/bam/MBBMGH.BAM deleted file mode 100644 index e992a52..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMGH.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMGHE.BAM b/iwdification/dw/copyover/anim/bam/MBBMGHE.BAM deleted file mode 100644 index 831734f..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMGHE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMGU.BAM b/iwdification/dw/copyover/anim/bam/MBBMGU.BAM deleted file mode 100644 index 0dc0f07..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMGU.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMGUE.BAM b/iwdification/dw/copyover/anim/bam/MBBMGUE.BAM deleted file mode 100644 index 70ac1c7..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMGUE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSC.BAM b/iwdification/dw/copyover/anim/bam/MBBMSC.BAM deleted file mode 100644 index 97ba1e8..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSC.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSCE.BAM b/iwdification/dw/copyover/anim/bam/MBBMSCE.BAM deleted file mode 100644 index 01bf4ba..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSCE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSD.BAM b/iwdification/dw/copyover/anim/bam/MBBMSD.BAM deleted file mode 100644 index 9881611..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSD.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSDE.BAM b/iwdification/dw/copyover/anim/bam/MBBMSDE.BAM deleted file mode 100644 index e72fb47..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSDE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSL.BAM b/iwdification/dw/copyover/anim/bam/MBBMSL.BAM deleted file mode 100644 index 6938a8b..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSL.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSLE.BAM b/iwdification/dw/copyover/anim/bam/MBBMSLE.BAM deleted file mode 100644 index f53ccef..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSLE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSP.BAM b/iwdification/dw/copyover/anim/bam/MBBMSP.BAM deleted file mode 100644 index 97ba1e8..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSP.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMSPE.BAM b/iwdification/dw/copyover/anim/bam/MBBMSPE.BAM deleted file mode 100644 index 01bf4ba..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMSPE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMTW.BAM b/iwdification/dw/copyover/anim/bam/MBBMTW.BAM deleted file mode 100644 index f452285..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMTW.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMTWE.BAM b/iwdification/dw/copyover/anim/bam/MBBMTWE.BAM deleted file mode 100644 index c4fe85b..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMTWE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMWK.BAM b/iwdification/dw/copyover/anim/bam/MBBMWK.BAM deleted file mode 100644 index fd9e3c1..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMWK.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/bam/MBBMWKE.BAM b/iwdification/dw/copyover/anim/bam/MBBMWKE.BAM deleted file mode 100644 index d14de32..0000000 Binary files a/iwdification/dw/copyover/anim/bam/MBBMWKE.BAM and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md01.wav b/iwdification/dw/copyover/anim/wav/bf_md01.wav deleted file mode 100644 index 64f5174..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md01.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md02.wav b/iwdification/dw/copyover/anim/wav/bf_md02.wav deleted file mode 100644 index 441c655..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md02.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md03.wav b/iwdification/dw/copyover/anim/wav/bf_md03.wav deleted file mode 100644 index 714b141..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md03.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md04.wav b/iwdification/dw/copyover/anim/wav/bf_md04.wav deleted file mode 100644 index a5678e5..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md04.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md05.wav b/iwdification/dw/copyover/anim/wav/bf_md05.wav deleted file mode 100644 index 7b81be7..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md05.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bf_md06.wav b/iwdification/dw/copyover/anim/wav/bf_md06.wav deleted file mode 100644 index cc04196..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bf_md06.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba01.wav b/iwdification/dw/copyover/anim/wav/bomba01.wav deleted file mode 100644 index 7d23f1a..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba01.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba02.wav b/iwdification/dw/copyover/anim/wav/bomba02.wav deleted file mode 100644 index 21b8f59..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba02.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba03a.wav b/iwdification/dw/copyover/anim/wav/bomba03a.wav deleted file mode 100644 index eb25e53..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba03a.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba03b.wav b/iwdification/dw/copyover/anim/wav/bomba03b.wav deleted file mode 100644 index 58e6268..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba03b.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba07.wav b/iwdification/dw/copyover/anim/wav/bomba07.wav deleted file mode 100644 index a1cd9c5..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba07.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba08.wav b/iwdification/dw/copyover/anim/wav/bomba08.wav deleted file mode 100644 index f4f65a8..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba08.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba09a.wav b/iwdification/dw/copyover/anim/wav/bomba09a.wav deleted file mode 100644 index 85be828..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba09a.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba09b.wav b/iwdification/dw/copyover/anim/wav/bomba09b.wav deleted file mode 100644 index b78367e..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba09b.wav and /dev/null differ diff --git a/iwdification/dw/copyover/anim/wav/bomba11.wav b/iwdification/dw/copyover/anim/wav/bomba11.wav deleted file mode 100644 index 0ddb706..0000000 Binary files a/iwdification/dw/copyover/anim/wav/bomba11.wav and /dev/null differ diff --git a/iwdification/dw/copyover/arcane_proj.txt b/iwdification/dw/copyover/arcane_proj.txt deleted file mode 100644 index 80f76bf..0000000 --- a/iwdification/dw/copyover/arcane_proj.txt +++ /dev/null @@ -1,20 +0,0 @@ - -idpro217 348 -idpro251 368 -idpro313 408 -idpro407 433 -idpro407 433 -idpro255 371 -idpro255 371 -mfmiss 436 -mfmiss2 446 -idpro315 409 -idpro316 410 -SMLLARNC 215 -IDSHROUD 62 -idpro269 381 -idpro299 401 -idpro211 343 -idpro317 411 -idpro319 413 -idpro209 342 diff --git a/iwdification/dw/copyover/arcane_resrefs.txt b/iwdification/dw/copyover/arcane_resrefs.txt deleted file mode 100644 index 865dae6..0000000 --- a/iwdification/dw/copyover/arcane_resrefs.txt +++ /dev/null @@ -1,52 +0,0 @@ - -WIZARD_SNILLOCS_SNOWBALL_SWARM SPWI204 -WIZARD_DECASTAVE SPWI216 -WIZARD_CATS_GRACE SPWI225 -WIZARD_ICELANCE SPWI327 -WIZARD_LANCE_OF_DISRUPTION SPWI328 -WIZARD_BELTYNS_BURNING_BLOOD SPWI422 -WIZARD_EMOTION_COURAGE SPWI427 -WIZARD_EMOTION_HOPE SPWI429 -WIZARD_EMOTION_FEAR SPWI428 -WIZARD_EMOTION_HOPELESSNESS SPWI411 -WIZARD_MORDENKAINENS_FORCE_MISSILES SPWI430 -WIZARD_SHOUT SPWI431 -WIZARD_VITRIOLIC_SPHERE SPWI432 -WIZARD_SHROUD_OF_FLAME SPWI524 -WIZARD_OTILUKES_FREEZING_SPHERE SPWI628 -WIZARD_DARTS_OF_BONE SPWI630 -WIZARD_SOUL_EATER SPWI631 -WIZARD_TROLLISH_FORTITUDE SPWI632 -WIZARD_ACID_STORM SPWI724 -WIZARD_SUFFOCATE SPWI726 -WIZARD_MIND_BLANK SPWI802 -WIZARD_GREAT_SHOUT SPWI806 -WIZARD_IRON_BODY SPWI814 -WIZARD_SUMMON_SHADOW SPWI526 -WIZARD_MONSTER_SUMMONING_4 SPWI627 -WIZARD_MONSTER_SUMMONING_7 SPWI901 -WIZARD_MONSTER_SUMMONING_6 SPWI801 -WIZARD_MONSTER_SUMMONING_5 SPWI706 -WIZARD_MONSTER_SUMMONING_1 SPWI309 -WIZARD_MONSTER_SUMMONING_2 SPWI407 -WIZARD_MONSTER_SUMMONING_3 SPWI504 -WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL SPWI532 -WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL SPWI531 -WIZARD_CONJURE_LESSER_AIR_ELEMENTAL SPWI534 -WIZARD_CONJURE_LESSER_WATER_ELEMENTAL SPWI533 -WIZARD_MORDENKAINENS_SWORD_IWD SPWI716 -WIZARD_EXPEDITIOUS_RETREAT SPWI126 -WIZARD_SHADOW_MONSTERS SPWI426 -WIZARD_DEMI_SHADOW_MONSTERS SPWI525 -WIZARD_ANTIMAGIC_SHELL SPWI610 -WIZARD_LICH_TOUCH SPWI626 -WIZARD_SHADES SPWI629 -WIZARD_MALAVONS_RAGE SPWI709 -WIZARD_SEVEN_EYES SPWI725 -SEVEN_EYES_MIND SPIN107 -SEVEN_EYES_MAGE SPIN109 -SEVEN_EYES_SWORD SPIN108 -SEVEN_EYES_VENOM SPIN110 -SEVEN_EYES_FORTITUDE SPIN112 -SEVEN_EYES_SPIRIT SPIN111 -SEVEN_EYES_STONE SPIN113 diff --git a/iwdification/dw/copyover/arcane_smtable.txt b/iwdification/dw/copyover/arcane_smtable.txt deleted file mode 100644 index 36708a3..0000000 --- a/iwdification/dw/copyover/arcane_smtable.txt +++ /dev/null @@ -1,16 +0,0 @@ - -17 SShadow -3 MSUMMO4 -6 MSUMMO7 -5 MSUMMO6 -4 MSUMMO5 -0 MSUMMO1 -1 MSUMMO2 -2 MSUMMO3 -20 CEElemW -19 CFElemW -29 CAELEMW -21 CWElemW -26 SMONSTE -27 DSMONST -28 SHADES diff --git a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_A.bam deleted file mode 100644 index c71ac62..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_B.bam deleted file mode 100644 index 32a37ec..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_C.bam deleted file mode 100644 index a7e95a2..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_AERIAL_SERVANT_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_A.bam deleted file mode 100644 index 179acc8..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_B.bam deleted file mode 100644 index 380ad09..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_C.bam deleted file mode 100644 index 50fe9de..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_1_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_A.bam deleted file mode 100644 index 44d168c..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_B.bam deleted file mode 100644 index 653c30d..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_C.bam deleted file mode 100644 index 2446b7f..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_2_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_A.bam deleted file mode 100644 index df862c5..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_B.bam deleted file mode 100644 index 760f97f..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_C.bam deleted file mode 100644 index 56f415c..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMAL_SUMMONING_3_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_A.bam deleted file mode 100644 index 14bc315..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_B.bam deleted file mode 100644 index 979e3cb..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_C.bam deleted file mode 100644 index d5b9018..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_ANIMATE_DEAD_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_A.bam deleted file mode 100644 index 70a19ae..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_B.bam deleted file mode 100644 index 2bc7f5e..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_C.bam deleted file mode 100644 index 64d5bee..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CALL_WOODLAND_BEINGS_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_A.bam deleted file mode 100644 index d819abd..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_B.bam deleted file mode 100644 index 64dbcce..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_C.bam deleted file mode 100644 index 663cedc..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_ANIMALS_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_A.bam deleted file mode 100644 index 3cfcd7b..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_B.bam deleted file mode 100644 index 1dc8f56..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_C.bam deleted file mode 100644 index e161160..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_EARTH_ELEMENTAL_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_A.bam deleted file mode 100644 index 5e5e646..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_B.bam deleted file mode 100644 index 635b3e2..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_C.bam deleted file mode 100644 index 8ff5ee0..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CONJURE_FIRE_ELEMENTAL_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_A.bam deleted file mode 100644 index 128324a..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_B.bam deleted file mode 100644 index 7f84b56..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_C.bam deleted file mode 100644 index 5930e8c..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_CREEPING_DOOM_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_A.bam deleted file mode 100644 index d824b7b..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_B.bam deleted file mode 100644 index 93cd323..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_C.bam deleted file mode 100644 index 39f7912..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_GATE_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_A.bam deleted file mode 100644 index d7328d2..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_B.bam deleted file mode 100644 index 243373d..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_C.bam deleted file mode 100644 index 601e539..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_INSECT_PLAGUE_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_A.bam deleted file mode 100644 index 8a62dbb..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_B.bam deleted file mode 100644 index c69c3ed..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_C.bam deleted file mode 100644 index 9daf53a..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_DEVA_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_A.bam deleted file mode 100644 index 240540e..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_B.bam deleted file mode 100644 index 9c9feba..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_C.bam deleted file mode 100644 index 0b9782e..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_FALLEN_DEVA_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_A.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_A.bam deleted file mode 100644 index 3d62dfc..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_A.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_B.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_B.bam deleted file mode 100644 index ee43d24..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_B.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_C.bam b/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_C.bam deleted file mode 100644 index 1e75e57..0000000 Binary files a/iwdification/dw/copyover/bam/CLERIC_SUMMON_INSECTS_ANIMATION_C.bam and /dev/null differ diff --git a/iwdification/dw/copyover/bardic_proj.txt b/iwdification/dw/copyover/bardic_proj.txt deleted file mode 100644 index 3eb13f5..0000000 --- a/iwdification/dw/copyover/bardic_proj.txt +++ /dev/null @@ -1,7 +0,0 @@ - -ohvrpo 455 -ohvrpo 455 -ohvrpo 455 -ohvrpo 455 -ohvrnp 456 -ohvrpo 455 diff --git a/iwdification/dw/copyover/bardic_resrefs.txt b/iwdification/dw/copyover/bardic_resrefs.txt deleted file mode 100644 index 18554b9..0000000 --- a/iwdification/dw/copyover/bardic_resrefs.txt +++ /dev/null @@ -1,7 +0,0 @@ - -BARD_SONG_BALLAD SPCL120 -BARD_SONG_CURRAN SPCL115 -BARD_SONG_TYMORA SPCL116 -BARD_SONG_KAUDIES SPCL117 -BARD_SONG_SIREN SPCL118 -BARD_SONG_SITH SPCL119 diff --git a/iwdification/dw/copyover/bardic_smtable.txt b/iwdification/dw/copyover/bardic_smtable.txt deleted file mode 100644 index f2be14b..0000000 --- a/iwdification/dw/copyover/bardic_smtable.txt +++ /dev/null @@ -1,17 +0,0 @@ - -17 SShadow -3 MSUMMO4 -6 MSUMMO7 -5 MSUMMO6 -4 MSUMMO5 -0 MSUMMO1 -1 MSUMMO2 -2 MSUMMO3 -20 CEElemW -19 CFElemW -29 CAELEMW -21 CWElemW -26 SMONSTE -27 DSMONST -28 SHADES -10 GINSECT diff --git a/iwdification/dw/copyover/divine_proj.txt b/iwdification/dw/copyover/divine_proj.txt deleted file mode 100644 index 4a5b61d..0000000 --- a/iwdification/dw/copyover/divine_proj.txt +++ /dev/null @@ -1,32 +0,0 @@ - -idpro237 356 -sunscoh 459 -idpro298 400 -ohvrpo 455 -ohvrnp 456 -SMLLARNC 215 -idpro300 402 -idpro301 403 -SPARKLPU 48 -idpro215 346 -IDSTATIC 61 -ohvrpo 455 -ohvrnp 456 -idpro309 407 -swave 447 -idpro303 404 -WOMOON 98 -idpro266 378 -idpro213 345 -uward 458 -SPARRENP 175 -SPARKLRE 53 -whirlw 435 -idpro312 452 -IDPRO207 206 -idpro277 387 -INSEC3 229 -INSEC4 231 -idpro307 406 -ohvrpo 455 -ohvrnp 456 diff --git a/iwdification/dw/copyover/divine_resrefs.txt b/iwdification/dw/copyover/divine_resrefs.txt deleted file mode 100644 index dd372e2..0000000 --- a/iwdification/dw/copyover/divine_resrefs.txt +++ /dev/null @@ -1,50 +0,0 @@ - -CLERIC_CURSE SPPR112 -CLERIC_CAUSE_LIGHT_WOUNDS SPPR114 -CLERIC_SUNSCORCH SPPR115 -CLERIC_CURE_MODERATE_WOUNDS SPPR217 -CLERIC_ALICORN_LANCE SPPR218 -CLERIC_BEAST_CLAW SPPR219 -CLERIC_CAUSE_MODERATE_WOUNDS SPPR220 -CLERIC_PRAYER SPPR316 -CLERIC_CAUSE_DISEASE SPPR320 -CLERIC_EXALTATION SPPR321 -CLERIC_MOONBLADE SPPR322 -CLERIC_CIRCLE_OF_BONES SPPR323 -CLERIC_SPIKE_GROWTH SPPR324 -CLERIC_CLOUDBURST SPPR325 -CLERIC_MOLD_TOUCH SPPR326 -CLERIC_STORM_SHELL SPPR327 -CLERIC_CAUSE_MEDIUM_WOUNDS SPPR330 -CLERIC_FAVOR_OF_ILMATER SPPR331 -CLERIC_PRODUCE_FIRE SPPR419 -CLERIC_STATIC_CHARGE SPPR420 -CLERIC_RECITATION SPPR421 -CLERIC_BLOOD_RAGE SPPR422 -CLERIC_CLOUD_OF_PESTILENCE SPPR423 -CLERIC_UNFAILING_ENDURANCE SPPR424 -CLERIC_STAR_METAL_CUDGEL SPPR425 -CLERIC_SMASHING_WAVE SPPR426 -CLERIC_THORN_SPRAY SPPR427 -CLERIC_WALL_OF_MOONLIGHT SPPR428 -CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL SPPR518 -CLERIC_SPIKE_STONES SPPR519 -CLERIC_SHIELD_OF_LATHANDER SPPR520 -CLERIC_UNDEAD_WARD SPPR521 -CLERIC_ANIMAL_RAGE SPPR522 -CLERIC_MASS_CAUSE_LIGHT_WOUNDS SPPR523 -CLERIC_ENTROPY_SHIELD SPPR615 -CLERIC_WHIRLWIND SPPR617 -CLERIC_SPIRITUAL_WRATH SPPR618 -CLERIC_SYMBOL_OF_PAIN SPPR714 -CLERIC_SYMBOL_OF_HOPELESSNESS SPPR716 -CLERIC_IMPERVIOUS_SANCTITY_OF_MIND SPPR733 -CLERIC_DESTRUCTION SPPR734 -CLERIC_GREATER_SHIELD_OF_LATHANDER SPPR735 -CLERIC_MIST_OF_ELDATH SPPR736 -CLERIC_STALKER SPPR737 -CLERIC_ENERGY_DRAIN SPPR739 -CLERIC_CAUSE_SERIOUS_WOUNDS SPPR414 -CLERIC_CAUSE_CRITICAL_WOUNDS SPPR510 -CLERIC_GIANT_INSECT SPPR418 -CLERIC_CHANT SPPR203 diff --git a/iwdification/dw/copyover/divine_smtable.txt b/iwdification/dw/copyover/divine_smtable.txt deleted file mode 100644 index f2be14b..0000000 --- a/iwdification/dw/copyover/divine_smtable.txt +++ /dev/null @@ -1,17 +0,0 @@ - -17 SShadow -3 MSUMMO4 -6 MSUMMO7 -5 MSUMMO6 -4 MSUMMO5 -0 MSUMMO1 -1 MSUMMO2 -2 MSUMMO3 -20 CEElemW -19 CFElemW -29 CAELEMW -21 CWElemW -26 SMONSTE -27 DSMONST -28 SHADES -10 GINSECT diff --git a/iwdification/dw/copyover/iwd_strref.txt b/iwdification/dw/copyover/iwd_strref.txt deleted file mode 100644 index 4ccdeb0..0000000 --- a/iwdification/dw/copyover/iwd_strref.txt +++ /dev/null @@ -1,375 +0,0 @@ -26262 375 -40011 374 -26867 373 -26429 372 -26263 371 -40010 370 -26866 369 -26264 368 -40009 367 -26865 366 -26265 365 -40008 364 -26869 363 -26266 362 -40007 361 -26868 360 -26268 359 -40006 358 -26852 357 -12217 356 -12090 355 -18617 354 -12 353 -768 352 -774 351 -771 350 -7912 349 -1901 348 -11194 347 -11193 346 -11185 345 -2624 344 -35497 343 -40832 342 -36741 341 -37709 340 -26538 339 -26539 338 -24913 337 -21621 336 -21474 335 -21396 334 -21476 333 -21394 332 -21477 331 -21393 330 -4742 329 -8101 328 -3071 327 -8100 326 -3070 325 -18628 324 -8099 323 -2938 322 -21473 321 -21397 320 -21472 319 -21398 318 -8056 317 -2927 316 -40831 315 -40830 314 -24251 313 -21402 312 -24247 311 -21401 310 -21475 309 -21400 308 -8040 307 -1412 306 -8020 305 -2812 304 -21462 303 -21410 302 -24253 301 -21409 300 -20438 299 -24252 298 -21407 297 -24301 296 -24300 295 -24254 294 -21406 293 -24248 292 -21405 291 -24250 290 -21404 289 -14043 288 -35473 287 -24810 286 -21403 285 -7916 284 -1914 283 -40255 282 -7914 281 -1902 280 -7913 279 -12064 278 -40772 277 -21415 276 -40254 275 -40253 274 -24255 273 -21422 272 -21458 271 -21420 270 -21459 269 -21419 268 -21460 267 -21418 266 -21467 265 -21417 264 -10224 263 -10223 262 -24256 261 -21416 260 -37613 259 -6621 258 -21414 257 -21478 256 -21413 255 -40257 254 -40256 253 -7910 252 -1417 251 -7533 250 -21424 249 -14465 248 -19610 247 -7560 246 -21423 245 -21646 244 -12139 243 -21421 242 -14022 241 -7896 240 -895 239 -37800 238 -21479 237 -21425 236 -25920 235 -21426 234 -14406 233 -7903 232 -757 231 -19397 230 -40329 229 -21443 228 -40327 227 -21446 226 -40328 225 -21444 224 -40326 223 -21447 222 -40324 221 -21449 220 -40325 219 -21448 218 -40323 217 -21450 216 -36022 215 -21429 214 -21466 213 -25343 212 -1416 211 -7576 210 -7575 209 -35592 208 -35591 207 -35600 206 -40195 205 -2814 204 -7554 203 -7553 202 -2661 201 -2839 200 -7548 199 -919 198 -35499 197 -2419 196 -7538 195 -7537 194 -30408 193 -832 192 -837 191 -2546 190 -7521 189 -7520 188 -77 187 -3010 186 -3008 185 -1866 184 -6515 183 -6514 182 -36035 181 -37638 180 -37787 179 -24243 178 -21441 177 -7849 176 -7831 175 -7832 174 -7850 173 -777 172 -783 171 -2693 170 -7536 169 -7534 168 -35046 167 -35045 166 -36674 165 -35782 164 -35781 163 -2874 162 -782 161 -15211 160 -24838 159 -7519 158 -2871 157 -784 156 -15180 155 -24842 154 -7532 153 -12038 152 -12158 151 -13080 150 -53 149 -34044 148 -12037 147 -12157 146 -13074 145 -15 144 -30783 143 -12035 142 -12156 141 -13058 140 -35461 139 -860 138 -840 137 -16158 136 -16170 135 -7561 134 -17366 133 -17365 132 -869 131 -850 130 -870 129 -851 128 -16159 127 -16358 126 -7581 125 -35441 124 -1206 123 -3020 122 -873 121 -854 120 -16160 119 -16359 118 -7586 117 -16156 116 -16165 115 -7550 114 -8777 113 -2320 112 -2332 111 -3081 110 -3080 109 -2647 108 -7518 107 -7517 106 -14444 105 -21608 104 -39752 103 -35593 102 -37607 101 -36317 100 -21428 99 -21471 98 -25331 97 -37340 96 -21427 95 -21470 94 -25325 93 -0 92 -37801 91 -17392 90 -35544 89 -20568 88 -37606 87 -37604 86 -37603 85 -35606 84 -35542 83 -14102 82 -3072 81 -7585 80 -7582 79 -21430 78 -21469 77 -25354 76 -1208 75 -7578 74 -7577 73 -21433 72 -21464 71 -25357 70 -8766 69 -8765 68 -21432 67 -21461 66 -25348 65 -14443 64 -19339 63 -21431 62 -21465 61 -25321 60 -12130 59 -7552 58 -7551 57 -1954 56 -7516 55 -7404 54 -76173 53 -21438 52 -24245 51 -25364 50 -14073 49 -21437 48 -21468 47 -25345 46 -21435 45 -24246 44 -25340 43 -14980 42 -1280 41 -22173 40 -6502 39 -6500 38 -35484 37 -1863 36 -7512 35 -7511 34 -1864 33 -7514 32 -7513 31 -1848 30 -7510 29 -7509 28 -37605 27 -1865 26 -6513 25 -6512 24 -21439 23 -24812 22 -25332 21 -35568 20 -926 19 -6399 18 -6398 17 -14024 16 -21440 15 -24242 14 -25311 13 -10211 12 -12687 11 -11014 10 -6394 9 -6395 8 -6393 7 -9999999 6 -12093 5 -6392 4 --1 3 -6391 2 -7222 1 diff --git a/iwdification/dw/copyover/spells_used.2da b/iwdification/dw/copyover/spells_used.2da deleted file mode 100644 index b1ef283..0000000 --- a/iwdification/dw/copyover/spells_used.2da +++ /dev/null @@ -1,82 +0,0 @@ - resref spellname parent parent_ext - -SPIN115 INNATE_MOURNFUL_WAIL WIZARD_EMOTION_HOPE SPL -SPPR716 CLERIC_SYMBOL_OF_HOPELESSNESS WIZARD_EMOTION_HOPE SPL -SPPR422 CLERIC_BLOOD_RAGE WIZARD_MIND_BLANK SPL -SPPR716 CLERIC_SYMBOL_OF_HOPELESSNESS WIZARD_MIND_BLANK SPL -SPWI904 WIZARD_MALAVONS_CORROSIVE_FOG WIZARD_IRON_BODY SPL -SPWI035 TRAP_FLESH_TO_STONE WIZARD_IRON_BODY SPL -SPIN143 INNATE_BEHOLDER_FLESH_TO_STONE WIZARD_IRON_BODY SPL -SPWI030 TRAP_DEATH_FOG WIZARD_IRON_BODY SPL -SPPR736 CLERIC_MIST_OF_ELDATH WIZARD_IRON_BODY SPL -SPPR424 CLERIC_UNFAILING_ENDURANCE WIZARD_IRON_BODY SPL -SPPR423 CLERIC_CLOUD_OF_PESTILENCE WIZARD_IRON_BODY SPL -SPPR326 CLERIC_MOLD_TOUCH WIZARD_IRON_BODY SPL -SPIN146 INNATE_BEHOLDER_SLOW WIZARD_EXPEDITIOUS_RETREAT SPL -SPPR738 CLERIC_HEAVENLY_INFERNO WIZARD_ANTIMAGIC_SHELL SPL -SPPR736 CLERIC_MIST_OF_ELDATH WIZARD_ANTIMAGIC_SHELL SPL -SPPR617 CLERIC_WHIRLWIND WIZARD_ANTIMAGIC_SHELL SPL -SPPR519 CLERIC_SPIKE_STONES WIZARD_ANTIMAGIC_SHELL SPL -SPPR428 CLERIC_WALL_OF_MOONLIGHT WIZARD_ANTIMAGIC_SHELL SPL -SPPR427 CLERIC_THORN_SPRAY WIZARD_ANTIMAGIC_SHELL SPL -SPPR426 CLERIC_SMASHING_WAVE WIZARD_ANTIMAGIC_SHELL SPL -SPPR423 CLERIC_CLOUD_OF_PESTILENCE WIZARD_ANTIMAGIC_SHELL SPL -SPPR420 CLERIC_STATIC_CHARGE WIZARD_ANTIMAGIC_SHELL SPL -SPPR419 CLERIC_PRODUCE_FIRE WIZARD_ANTIMAGIC_SHELL SPL -SPPR326 CLERIC_MOLD_TOUCH WIZARD_ANTIMAGIC_SHELL SPL -SPPR324 CLERIC_SPIKE_GROWTH WIZARD_ANTIMAGIC_SHELL SPL -SPIN107 SEVEN_EYES_MIND WIZARD_SEVEN_EYES spl -SPIN108 SEVEN_EYES_SWORD WIZARD_SEVEN_EYES spl -SPIN109 SEVEN_EYES_MAGE WIZARD_SEVEN_EYES spl -SPIN110 SEVEN_EYES_VENOM WIZARD_SEVEN_EYES spl -SPIN111 SEVEN_EYES_SPIRIT WIZARD_SEVEN_EYES spl -SPIN112 SEVEN_EYES_FORTITUDE WIZARD_SEVEN_EYES spl -SPIN113 SEVEN_EYES_STONE WIZARD_SEVEN_EYES spl -SPPR112 CLERIC_CURSE CLERIC_CURSE SPL -SPPR114 CLERIC_CAUSE_LIGHT_WOUNDS CLERIC_CAUSE_LIGHT_WOUNDS SPL -SPPR217 CLERIC_CURE_MODERATE_WOUNDS CLERIC_CURE_MODERATE_WOUNDS SPL -SPPR218 CLERIC_ALICORN_LANCE CLERIC_ALICORN_LANCE SPL -SPPR220 CLERIC_CAUSE_MODERATE_WOUNDS CLERIC_CAUSE_MODERATE_WOUNDS SPL -SPPR320 CLERIC_CAUSE_DISEASE CLERIC_CAUSE_DISEASE SPL -SPPR321 CLERIC_EXALTATION CLERIC_EXALTATION SPL -SPPR422 CLERIC_BLOOD_RAGE CLERIC_EXALTATION SPL -SPPR324 CLERIC_SPIKE_GROWTH CLERIC_SPIKE_GROWTH SPL -SPPR321 CLERIC_EXALTATION CLERIC_CLOUDBURST SPL -SPIN193 INNATE_SALAMANDER_AURA_FROST CLERIC_CLOUDBURST SPL -SPIN194 INNATE_SALAMANDER_AURA_FIRE CLERIC_CLOUDBURST SPL -SPIN187 INNATE_SALAMANDER_AURA_SHIKATA CLERIC_CLOUDBURST SPL -SPIN128 INNATE_FROST_AURA CLERIC_CLOUDBURST SPL -SPPR325 CLERIC_CLOUDBURST CLERIC_CLOUDBURST SPL -SPPR326 CLERIC_MOLD_TOUCH CLERIC_MOLD_TOUCH SPL -SPPR330 CLERIC_CAUSE_MEDIUM_WOUNDS CLERIC_CAUSE_MEDIUM_WOUNDS SPL -SPPR331 CLERIC_FAVOR_OF_ILMATER CLERIC_FAVOR_OF_ILMATER SPL -SPPR419 CLERIC_PRODUCE_FIRE CLERIC_PRODUCE_FIRE SPL -SPPR420 CLERIC_STATIC_CHARGE CLERIC_STATIC_CHARGE SPL -SPPR422 CLERIC_BLOOD_RAGE CLERIC_BLOOD_RAGE SPL -SPPR714 CLERIC_SYMBOL_OF_PAIN CLERIC_BLOOD_RAGE SPL -SPPR716 CLERIC_SYMBOL_OF_HOPELESSNESS CLERIC_BLOOD_RAGE SPL -SPPR423 CLERIC_CLOUD_OF_PESTILENCE CLERIC_CLOUD_OF_PESTILENCE SPL -SPPR426 CLERIC_SMASHING_WAVE CLERIC_SMASHING_WAVE SPL -SPPR427 CLERIC_THORN_SPRAY CLERIC_THORN_SPRAY SPL -SPPR428 CLERIC_WALL_OF_MOONLIGHT CLERIC_WALL_OF_MOONLIGHT SPL -SPPR519 CLERIC_SPIKE_STONES CLERIC_SPIKE_STONES SPL -SPPR520 CLERIC_SHIELD_OF_LATHANDER CLERIC_SHIELD_OF_LATHANDER SPL -SPPR521 CLERIC_UNDEAD_WARD CLERIC_UNDEAD_WARD SPL -SPPR522 CLERIC_ANIMAL_RAGE CLERIC_ANIMAL_RAGE SPL -SPPR523 CLERIC_MASS_CAUSE_LIGHT_WOUNDS CLERIC_MASS_CAUSE_LIGHT_WOUNDS SPL -SPPR615 CLERIC_ENTROPY_SHIELD CLERIC_ENTROPY_SHIELD SPL -SPWI033 TRAP_MAGIC_MISSILE_5 CLERIC_ENTROPY_SHIELD SPL -SPPR617 CLERIC_WHIRLWIND CLERIC_WHIRLWIND SPL -SPPR618 CLERIC_SPIRITUAL_WRATH CLERIC_SPIRITUAL_WRATH SPL -SPPR714 CLERIC_SYMBOL_OF_PAIN CLERIC_SYMBOL_OF_PAIN SPL -SPPR716 CLERIC_SYMBOL_OF_HOPELESSNESS CLERIC_IMPERVIOUS_SANCTITY_OF_MIND SPL -SPPR422 CLERIC_BLOOD_RAGE CLERIC_IMPERVIOUS_SANCTITY_OF_MIND SPL -SPPR734 CLERIC_DESTRUCTION CLERIC_DESTRUCTION SPL -SPPR735 CLERIC_GREATER_SHIELD_OF_LATHANDER CLERIC_GREATER_SHIELD_OF_LATHANDER SPL -SPIN191 INNATE_BOMBARDIER_BEETLE_CLOUD fartrng ITM -SPIN115 INNATE_MOURNFUL_WAIL BARD_SONG_KAUDIES SPL -SPIN116 INNATE_DEATH_KNELL BARD_SONG_KAUDIES SPL -SPIN139 INNATE_HARPY_WAIL_INTERNAL BARD_SONG_KAUDIES SPL -SPIN117 INNATE_WAR_CRY BARD_SONG_KAUDIES SPL -SPIN118 INNATE_UNDYING_LAMENT BARD_SONG_KAUDIES SPL -SPIN119 INNATE_GREAT_ROAR BARD_SONG_KAUDIES SPL diff --git a/iwdification/dw/copyover/tra/cs_CZ/iwdspells.tra b/iwdification/dw/copyover/tra/cs_CZ/iwdspells.tra deleted file mode 100644 index 100fef3..0000000 --- a/iwdification/dw/copyover/tra/cs_CZ/iwdspells.tra +++ /dev/null @@ -1,1166 +0,0 @@ -@375=~Sithův váleÄný zpÄ›v - bonusy k brnÄ›ní a regenerace~ -@374=~“VáleÄná píseň Sithů.†-VÅ¡ichni spojenci do 9 metrů od barda obdrží: +2 k obrannému Äíslu, +10% k odolnosti vůÄi seÄným, bodným a drtivým útokům, stejnÄ› jako stÅ™elám. Navíc získají regeneraci 2 životy za kolo.~ -@373=~Sithův váleÄný zpÄ›v~ -@372=~OÄarován~ -@371=~Touha Sirény - okouzluje tvory~ -@370=~“Volání Sirény†-VÅ¡ichni nepřátelé do 9 metrů od barda musí uspÄ›t v záchranÄ› proti kouzlu, jinak budou okouzleni a nebudou schopni žádné akce, dokud neuplyne 1 kolo, nebo na nÄ› nÄ›kdo nezaútoÄí.~ -@369=~Sirénina touha~ -@368=~ZpÄ›v Kaudies - odolnost vůÄi zvukovým útokům~ -@367=~“Kaudiesova píseň.†-VÅ¡ichni spojenci do 9 metrů od barda omají 50% Å¡anci zbavit se úÄinků kouzel jako je ticho, výkÅ™ik, mocný výkÅ™ik, příkaz, mocnÄ›jší příkaz a dalších kouzel, které jsou založeny na zvuku.~ -@366=~ZpÄ›v Kaudies~ -@365=~TymoÅ™ina melodie - bonusy ke Å¡tÄ›stí a dovednostem~ -@364=~“TymoÅ™ina melodie.†-VÅ¡ichni spojenci do 9 metrů od barda obdrží: +1 ke Å¡tÄ›stí, +3 k záchraným hodům, +10 ke znalostem a +10 ke vÅ¡em jejich zlodÄ›jským schopnostem.~ -@363=~TymoÅ™ina melodie~ -@362=~PříbÄ›h Currana Silného srdce - imunita: strach~ -@361=~“PříbÄ›h Currana Stronghearta.†-VÅ¡ichni spojenci do 9 metrů od barda jsou zbaveni strachu a obdrží imunitu na strach po dobu, dokud bard zpívá píseň.~ -@360=~PříbÄ›h Currana Silného srdce~ -@359=~Balada o tÅ™ech hrdinech - bojové bonusy~ -@358=~“Balada o tÅ™ech hrdinech.†-VÅ¡ichni spojenci do 9 metrů od barda obdrží: +1 k Å¡anci na zásah, +1 ke zranÄ›ní a +1 ke vÅ¡em jejich záchraným hodům.~ -@357=~Balada o tÅ™ech hrdinech~ -@356=~Liturgický zpÄ›v -(Vyvolávání) -Úroveň: 2 -Sféra: boj -Dosah: dohled sesilatele -Trvání: 1 tah -Doba kouzlení: 1 kolo -Rozsah: okruh 9 metrů -Hod na záchranu: žádný -ProstÅ™ednictvím tohoto zaříkání pÅ™ivolá knÄ›z na sebe a svou družinu zvláštní přízeň a ohrozí své nepřátele. Když svůj zpÄ›v dokonÄí, vÅ¡ichni spojenci v oblasti úÄinku získají +1 na útok, zranÄ›ní a hody na záchranu, zatímco nepřátelé budou postiženi -1 na útok, zranÄ›ní a záchranu. Dále jsou vÅ¡echny nepřátelské hody kostkou (mimo základní zranÄ›ní zbranÄ›) sníženy o 1. Například ohnivá koule 6k6 udÄ›lí zranÄ›ní pouze 6k5 a ohnivý dlouhý meÄ zraňující za 1k8+2 (seÄné) a 1k3 (ohnivé) zraní pouze za 1k8+2 (seÄné) a 1k2 (ohnivé). -Více zpÄ›vů se nesÄítá. Toto kouzlo vyžaduje pÅ™iměřené soustÅ™edÄ›ní, takže sesilatel nemůže po dobu jeho trvání Äarovat a jeho pohyb se zpomalí na poloviÄní rychlost.~ -@355=~Liturgický zpÄ›v~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Obrovský Å¡váb~ -@352=~Obrovský Å¡váb~ -@351=~Brouk smraÄoch~ -@350=~Brouk smraÄoch~ -@349=~Obrovský hmyz (promÄ›na) -Úroveň: 4 -Sféra: zvířata -Dosah: dohled sesilatele -Trvání: 8 hodin -Doba kouzlení: 7 -Rozsah: 1-6 zástupců hmyzu -Hod na záchranu: žádný -Tímto zaklínadlem si knÄ›z pÅ™ivolá malou havěť, kterou pak zvÄ›tší do obrovských rozmÄ›rů a promÄ›ní ji na hrůzostraÅ¡né spojence. Síla a druh hmyzu se liší podle pokroÄilosti uživatele; Äím vyšší je jeho úroveň, tím silnÄ›jší bude i sesílaný hmyz.~ -@348=~Obrovský hmyz~ -@347=~Kritická zranÄ›ní (nekromancie) -Úroveň: 5 -Sféra: léÄba -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 8 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Toto kouzlo je opakem léÄby kritických zranÄ›ní - namísto uzdravení dotyÄná bytost ztratí pÅ™i úspěšném dotyku 27 životů (pÅ™i úspěšném záchranném hodu polovic). Toto kouzlo neúÄinkuje na bytosti nemrtvé, vyrobené nebo tvory z jiných dimenzí. Kritická zranÄ›ní mohou působit pouze zlé postavy.~ -@346=~Kritická zranÄ›ní~ -@345=~Těžká zranÄ›ní (nekromancie) -Úroveň: 4 -Sféra: léÄba -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Toto kouzlo je opakem léÄby těžkých zranÄ›ní - namísto vyhojení ztratí dotyÄná bytost pÅ™i úspěšném dotyku 17 životů (pÅ™i úspěšném záchranném hodu polovic). Toto kouzlo neúÄinkuje na bytosti nemrtvé, vyrobené nebo tvory z jiných dimenzí. Těžká zranÄ›ní nemohou působit postavy s dobrým pÅ™esvÄ›dÄením.~ -@344=~Těžká zranÄ›ní~ -@343=~Vysáty dvÄ› úrovnÄ›~ -@342=~Vysátí energie -(Nekromancie) -Úroveň: 9 -Dosah: dotyk -Trvání: trvale -Doba sesílání: 3 -Oblast působení: cílová bytost -Záchranný hod: žádný -ÄŒarodÄ›j tímto kouzlem otevÅ™e spojení mezi svou sférou a sférou negativní energie. Toto spojení vysaje životní sílu obÄ›ti a pÅ™enese ji do sféry negativní energie. ObÄ›ti jsou vysáty 2 úrovnÄ› zkuÅ¡eností. Cíl kouzla ztratí natrvalo úrovnÄ›, životy, životaschopnost a schopnosti. Tyto úrovnÄ› lze navrátit pouze kněžským kouzlem Slabší/SilnÄ›jší obnova. Nepůsobí na nemrtvé, stroje nebo mimosférické bytosti. Kouzlo může seslat pouze zlá postava.~ -@341=~Vysátí energie~ -@340=~Zapleten~ -@339=~Belhavá hromada~ -@338=~Belhavá hromada~ -@337=~StopaÅ™ (vyvolávání) -Úroveň: 7 -Sféra: rostliny -Dosah: dohled sesilatele -Trvání: 8 hodin -Doba kouzlení: 1 kolo -Rozsah: zvláštní -Hod na záchranu: žádný -Toto kouzlo stvoří dva kulhavce. Tyto bytosti pomáhají svému sesilateli v boji, mohou vÅ¡ak plnit i jiné svěřené úkoly, pro jejichž splnÄ›ní mají dostateÄné schopnosti.~ -@336=~StopaÅ™~ -@335=~Závoj Eldath -(Vzývání) -Úroveň: 7 -Sféra: živly -Dosah: dohled sesilatele -Trvání: 1 kolo -Doba kouzlení: 1 kolo -Rozsah: okruh 3 metry -Hod na záchranu: žádný -Toto kouzlo pÅ™ikryje zvolenou oblast stříbÅ™itÄ› modrou mlhou - každý, kdo se v této mlze octne, bude zbaven veÅ¡keré nákazy i otravy a vyléÄí si 25 životů.~ -@334=~Závoj Eldath~ -@333=~VÄ›tší Lathanderův Å¡tít (vyvolávání) -Úroveň: 7 -Sféra: obranná -Dosah: dotyk -Trvání: 3 kola -Doba kouzlení: 1 kolo -Rozsah: 1 bytost -Hod na záchranu: žádný -Toto kouzlo po urÄenou dobu Äiní dotyÄného imunním jak na zranÄ›ní, tak i na magii. Zlé bytosti vÅ¡ak tímto způsobem chránÄ›ny být nemohou. Lathanderův Å¡tít mohou seslat pouze postavy s dobrým pÅ™esvÄ›dÄením.~ -@332=~VÄ›tší Lathanderův Å¡tít~ -@331=~Zkáza (nekromancie) -Úroveň: 7 -Sféra: uzdravení -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 1 kolo -Rozsah: sesilatel -Hod na záchranu: zvláštní -Toto kouzlo cíl okamžitÄ› rozstÅ™elí na malé kousky. Oběť si může hodit na záchranu proti smrti s penalizací -4. Pokud se jí vrh zdaří, namísto zniÄení utrpí zranÄ›ní ve výši 8k6. Zkázu mohou sesílat pouze zlé postavy. Postava zniÄená tímto způsobem nemůže být nijak vzkříšena z mrtvých - ani kouzlem 'oživení mrtvého', ani 'vzkříšením'.~ -@330=~Zkáza~ -@329=~Kouzlo nepůsobí~ -@328=~Nepropustná svátost mysli (ochrana) -Úroveň: 7 -Sféra: ochrana -Dosah: sesilatel -Trvání: 1 tah/úroveň -Doba kouzlení: 1 kolo -Rozsah: sesilatel -Hod na záchranu: žádný -Po vyÅ™Äení magického zaklínadla se knÄ›zova mysl zatvrdí proti jakémukoliv vnÄ›jšímu vlivu. Dokud působí, selhávají vÅ¡echny psionické útoky a kouzla zmámení, příkaz, nadvláda, strach, slabomyslnost, znehybnÄ›ní a spánek, která na nÄ›j směřují.~ -@327=~Nepropustná svátost mysli~ -@326=~Symbol zoufalství -(Vyvolávání) -Úroveň: 7 -Sféra: ochranná -Dosah: dohled sesilatele -Trvání: 2 tahy -Doba kouzlení: 3 -Rozsah: okruh 18 metrů -Hod na záchranu: zruší kouzlo -VÅ¡echna stvoÅ™ení do 18 metrů od tohoto symbolu v okamžiku jeho seslání si musí hodit na záchranu pÅ™ed kouzlem s postihem -2. Pokud se jim vrh nezdaří, zůstanou na místÄ› a propadnou sklíÄenosti a beznadÄ›ji. PÅ™i útoku neprovedou žádný obranný pohyb.~ -@325=~Symbol zoufalství~ -@324=~Zkázné bolesti~ -@323=~Symbol, Bolest -(Vyvolávání) -Úroveň: 7 -Sféra: ochranná -Dosah: dohled sesilatele -Trvání: 11 tahů -Doba kouzlení: 3 -Rozsah: okruh 18 metrů -Hod na záchranu: zruší kouzlo -VÅ¡echna stvoÅ™ení do 18 metrů od tohoto symbolu v okamžiku jeho seslání si musí hodit na záchranu pÅ™ed kouzlem. Pokud se jim vrh nezdaří, utrpí postih -4 na hod na útok, -2 na obratnost a 2 na obranné Äíslo.~ -@322=~Symbol bolesti~ -@321=~Duchovní hnÄ›v (vzývání) -Úroveň: 6 -Sféra: boj -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 2 -Rozsah: zvláštní -Hod na záchranu: poloviÄní újma -Po dokonÄení zaklínadla soustÅ™edí knÄ›z duchovní energii, kterou pak může vyslat do ÄtyÅ™ stran jako blesky. Sesilatel urÄí smÄ›r jednoho z nich a ostatní blesky vyÅ¡lehnou naproti a kolmo na prvotní smÄ›r a vytvoří tak vzor ve tvaru kříže. Každý, kdo se jim pÅ™iplete do cesty, utrpí magická zranÄ›ní ve výši 6-42, pÅ™i úspěšné záchranÄ› proti kouzlu polovic. Na bytosti s morálním pÅ™esvÄ›dÄením stejným jako uživatel (dobro, neutrální, zlo) ale nebude mít toto kouzlo žádný vliv.~ -@320=~Duchovní hnÄ›v~ -@319=~SmrÅ¡Å¥ (vzývání) -Úroveň: 6 -Sféra: vzývání -Dosah: dohled sesilatele -Trvání: zvláštní -Doba kouzlení: 9 -Rozsah: zvláštní -Hod na záchranu: zvláštní -Tímto kouzlem stvoří knÄ›z malý cyklón, který může vyslat na jakékoliv místo v dohledu. Jakmile smrÅ¡Å¥ dorazí k cíli, uživatel nad ní ztratí kontrolu a živel bude náhodnÄ› poletovat po okolí a ubližovat jak nepřátelům, tak i spojencům. Sesilatel je imunní na své vlastní kouzlo a elementálové Äi jiné obrovské bytosti jím také nebudou postiženi. Jinak každý, kdo bude tornádem smeten, utrpí drtivá zranÄ›ní ve výši 2k8, seÄná zranÄ›ní 2k8 a musí uspÄ›t v záchranném hodu proti dechu, aby nebyl na 2 kola omráÄen. Tvorové s hodem na životy 2 a ménÄ› budou automaticky zabiti. SmrÅ¡Å¥ může zasáhnout maximálnÄ› 8 cílů a poté se rozptýlí.~ -@318=~SmrÅ¡Å¥~ -@317=~Vířivý Å¡tít (ochrana) -Úroveň: 6 -Sféra: ochrana -Dosah: sesilatel -Trvání: 1 kolo/úroveň -Doba kouzlení: 9 -Rozsah: sesilatel -Hod na záchranu: žádný -Po vyslovení této magické formule obklopí knÄ›ze energetický vír, který ho ochraňuje a zabraňuje mnohým napadením. To mu dává bonus +6 k obranÄ› a 50% odolnost vůÄi mnoha útokům vÄ›tÅ¡iny forem: elektrickým, ohnivým, mrazivým atd. Poskytuje také bonus +2 k hodům na záchranu a imunitu vůÄi vÅ¡em stÅ™elným útokům.~ -@316=~Vířivý Å¡tít~ -@315=~Hromadné léÄení -(Nekromancie) -Úroveň: 5 -Sféra: LéÄení -Dosah: dohled sesilatele -Trvání: trvale -Doba sesílání: 5 -Oblast působení: polomÄ›r 9 m -Záchranný hod: žádný -PÅ™i sesílání kouzla si musí knÄ›z jasnÄ› pÅ™edstavit tváře spolubojovníků a soustÅ™edit se na jednotu skupiny. VÅ¡em Älenům družiny v okruhu 9 m od sesilatele se vyléÄí 1k8 + 1/úroveň životů. VyléÄení je trvalé; tedy až do dalšího zranÄ›ní.~ -@314=~Hromadné způsobení lehkých zranÄ›ní~ -@313=~Zvířecí bÄ›s (zaříkávání) -Úroveň: 5 -Sféra: boj -Dosah: dotyk -Trvání: 15 kol -Doba kouzlení: 8 -Rozsah: 1 bytost -Hod na záchranu: žádný -Toto kouzlo obdaří dotyÄného zvířecí dravostí, dávajíc mu sílu 19, +20 životů, +20% k pohyblivosti a +2 ke vÅ¡em hodům na záchranu. AvÅ¡ak dokud je pod vlivem kouzla, ztrácí cíl schopnost Äarovat. Daná postava může být normálnÄ› ovládána, dokud se v dohledu neobjeví nepřátelé. V tom okamžiku se zuÅ™ivec neprodlenÄ› vrhne na protivníka a zaÄne do nÄ›j sekat vším, co zrovna drží v ruce. V každém kole vzniká 5% Å¡ance, že dotyÄný propadne bojovému šílenství a zaÄne útoÄit jak na soupeÅ™e, tak i na své spojence.~ -@312=~Zvířecí bÄ›s~ -@311=~Odrážení nemrtvých -(Nekromancie) -Úroveň: 5 -Sféra: odrážení -Dosah: sesilatel -Trvání: 1 tah -Doba kouzlení: 7 -Rozsah: okruh 6 metrů -Hod na záchranu: žádný -Toto kouzlo posílí knÄ›zovu moc, kterou vládne nad nemrtvými, i když je v tomto případÄ› svázán s okruhem, kde se právÄ› nachází, a nemůže se pohybovat. Jakýkoliv nemrtvý tvor, který do dané oblasti vstoupí, se obrátí na stranu knÄ›ze, jenž kouzlo seslal. Pokud se toto obrácení nezdaří, nemrtvý bude imunní vůÄi dalším pokusům, dokud neopustí a znovu nevkroÄí do dané oblasti.~ -@310=~Odrážení nemrtvých~ -@309=~Lathanderův Å¡tít (vyvolávání) -Úroveň: 5 -Sféra: obranná -Dosah: dotyk -Trvání: 3 kola -Doba kouzlení: 8 -Rozsah: 1 bytost -Hod na záchranu: žádný -Toto kouzlo po urÄenou dobu Äiní dotyÄného imunním na zranÄ›ní. Zlé bytosti vÅ¡ak tímto způsobem chránÄ›ny být nemohou. Lathanderův Å¡tít mohou seslat pouze ti, kteří nejsou zlí.~ -@308=~Lathanderův Å¡tít~ -@307=~Bodavé kameny -(PromÄ›na, Zaříkávání) -Úroveň: 5 -Sféra: živly (zemÄ›) -Dosah: dohled sesilatele -Trvání: 12 kol -Doba kouzlení: 6 -Rozsah: okruh 4,5 metru -Hod na záchranu: žádný -Toto kouzlo pÅ™etvoří okolní kameny, Äímž zmÄ›ní tvar terénu na ostré bodáky, které uplývají do ztracena. Každý, kdo vstoupí do kritické oblasti, utrpí v každém kole bodná zranÄ›ní ve výši 2k4 a musí uspÄ›t v záchranném hodu vůÄi kouzlu, jinak bude jeho pohyb o 30% zpomalen.~ -@306=~Bodavé kameny~ -@305=~Spravedlivý hnÄ›v věřícího -(Zaříkávání/OÄarování) -Úroveň: 5 -Sféra: boj -Dosah: sesilatel -Trvání: 1 kolo/úroveň -Doba kouzlení: 8 -Rozsah: okruh 9 metrů -Hod na záchranu: žádný -Toto kouzlo propůjÄí knÄ›zovým spojencům boží hnÄ›v, Äímž zlepší jejich bojové schopnosti. VÅ¡ichni přátelé v dané oblasti získávají po urÄenou dobu +1 k hodu na útok a na záchranu plus 1-8 bonusových životů (tyto body mohou pÅ™ekroÄit maximum životů cíle). VÅ¡echny bytosti stejného pÅ™esvÄ›dÄení získají v každém kole jeÅ¡tÄ› o útok navíc a +2 k hodům na útok, zranÄ›ní a záchranu.~ -@304=~Spravedlivý hnÄ›v věřícího~ -@303=~StÄ›na z mÄ›síÄního svÄ›tla -(Vzývání) -Úroveň: 4 -Sféra: ochrana, slunce -Dosah: dohled sesilatele -Trvání: 1 tah -Doba kouzlení: 7 -Rozsah: zeÄ 6 metrů dlouhá, 1,5 metru Å¡iroká -Hod na záchranu: žádný -Toto kouzlo vyvolá mihotavý závoj modravÄ› bílé síly. Tato stÄ›na je nadpozemská, nepodléhá žádným hmotným omezením a lze jí snadno projít. Zlí tvorové, kteří skrz ní proniknou, utrpí zranÄ›ní ve výši 2k10 životů, zlé nemrtvé bytosti pak 5k10. Každý může být pÅ™i průchodu zdí zranÄ›n pouze jedinkrát. Vyvolána smí být vždy pouze jediná 'stÄ›na z mÄ›síÄního svÄ›tla'.~ -@302=~StÄ›na z mÄ›síÄního svÄ›tla~ -@301=~Trnová sprÅ¡ka -(PromÄ›ny) -Úroveň: 4 -Sféra: rostliny -Dosah: zvláštní -Trvání: okamžité -Doba kouzlení: 3 -Rozsah: kužel 9 m dlouhý, 7,5 m Å¡iroký -Hod na záchranu: poloviÄní újma -Jak už název napovídá, vyvolá toto kouzlo sprÅ¡ku ostnů, hrotů, trnů, pichláků a bodlin, které vytrysknou přímo s uživatelovy ruky. SprÅ¡ku tvoří 9 metrů dlouhý a 7,5 metru Å¡iroký kužel, který způsobí bodná zranÄ›ní za 2k10 životů každému, kdo se v kritické oblasti nachází. Pokud se obÄ›ti zdaří hod na záchranu proti smrti, budou její zranÄ›ní poloviÄní, Äili 1k10.~ -@300=~Trnová sprÅ¡ka~ -@299=~V bezvÄ›domí.~ -@298=~Tříštivá vlna (vzývání) -Úroveň: 4 -Sféra: živly (voda) -Dosah: 40 stop -Trvání: okamžité -Doba kouzlení: 1 kolo -Rozsah: 1,5 metru Å¡iroká vlna -Hod na záchranu: poloviÄní újma -Toto kouzlo vyvolá vodní vlnu, která se bude pohybovat ve smÄ›ru daném uživatelem a strhne s sebou každého, kdo jí bude stát v cestÄ›. Způsobí drtivé zranÄ›ní ve výši 4k10, k Äemuž je jeÅ¡tÄ› 20% pravdÄ›podobnost, že bude dotyÄný tvor na 2 kola omráÄen, a 5% Å¡ance, že oběť upadne do bezvÄ›domí. Jestliže se zasaženému zdaří hod na záchranu proti dechu, budou jeho zranÄ›ní snížena na polovinu a vyhne se jak mdlobám, tak i bezvÄ›domí.~ -@297=~Tříštivá vlna~ -@296=~Palice z hvÄ›zdného kovu~ -@295=~Palice z hvÄ›zdného kovu~ -@294=~Palice z hvÄ›zdného kovu (vyvolávání) -Úroveň: 4 -Sféra: boj -Dosah: sesilatel -Trvání: 3 tahy -Doba kouzlení: 7 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo stvoří magický kyj z meteorického železa, který má bonus +2 k zásahu a zranÄ›ní a pÅ™i urÄování, na koho bude mít vliv, se chová se jako zbraň +4. Berou se v potaz též bonusy za sílu, odbornost i specializaci, stejnÄ› jako penalizace. NepÅ™irozeným bytostem (nemrtvým, elementálům, golemům, tvorům z jiných dimenzí apod.) způsobí další drtivé zranÄ›ní ve výši 2k6 životů.~ -@293=~Palice z hvÄ›zdného kovu~ -@292=~Neutuchající odolnost (nekromancie) -Úroveň: 4 -Sféra: nekromantská -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 1 kolo -Rozsah: 1 bytost -Hod na záchranu: žádný -Toto kouzlo navrátí dotyÄné bytosti životní sílu, kterou za den ztratila, jako by vynaložila jen poloviÄní námahu. Únavu vÅ¡ak odstranit nedokáže.~ -@291=~Neutuchající odolnost~ -@290=~Morové mraÄno -(PromÄ›ny) -Úroveň: 4 -Sféra: boj, živly (vzduch) -Dosah: dohled sesilatele -Trvání: 4 kola -Doba kouzlení: 7 -Rozsah: okruh 6 metrů -Hod na záchranu: zruší kouzlo -Toto kouzlo promÄ›ní vzduch v okruhu 6 metrů v odpornou naÅ¡edlou mlhu. Sesilatel a neživé bytosti budou z jeho úÄinků vylouÄeni. Ostatní v každém kole, kdy v mraku nákazy pobývají, ztratí 3 body ze síly a obratnosti, utrpí 3 body zranÄ›ní a oslepnou. Tyto úÄinky pÅ™etrvají po dobu 1 kola. Morové mraÄno mohou sesílat pouze zlé postavy.~ -@289=~Morové mraÄno~ -@288=~OmráÄení~ -@287=~VyléÄen~ -@286=~KrvelaÄná zuÅ™ivost (promÄ›na) -Úroveň: 3 -Sféra: boj -Dosah: dohled sesilatele -Trvání: 2 tahy -Doba kouzlení: 7 -Rozsah: 1 přátelská bytost -Hod na záchranu: žádný -Toto kouzlo úÄinkuje pouze na hráÄovy postavy nebo přátelské tvory. Postižená bytost propadne bojovému šílenství a bude útoÄit na nejbližšího tvora, dokud ho nezabije, a pak bude pokraÄovat k dalšímu cíli. Po dobu úÄinku bude dotyÄný imunní na zmámení, spánek, strach, znehybnÄ›ní, omráÄení, zmatení, emoce, kouzla symbolů a podobné úÄinky. K tomu jeÅ¡tÄ› obdrží +2 k zásahu, +3 ke způsobovanému zranÄ›ní, +2 k síle, +10 životů a bonus k pohyblivosti. Kouzlo má vÅ¡ak i své nevýhody: po Äas jeho trvání jsou životy zuÅ™ivce skryty a nemůže využívat nic, co pÅ™ináší uzdravení. Po vyprÅ¡ení stanovené doby bude osoba unavená a její síla na 2 kola klesne na 3. KrvelaÄná zuÅ™ivost nijak neovlivní (a ani ji nemohou sesílat) postavy se zákonným pÅ™esvÄ›dÄením.~ -@285=~KrvelaÄná zuÅ™ivost~ -@284=~Recitace -(Ochrana/Vzývání) -Úroveň: 4 -Sféra: boj -Dosah: sesilatel -Trvání: 1 kolo/úroveň -Doba kouzlení: 7 -Rozsah: okruh 18 metrů -Hod na záchranu: žádný -PÅ™ednesem posvátných pasáží knÄ›z vzývá své božstvo, aby jemu a jeho spojencům požehnalo a zároveň aby zaselo zmatek a slabost do Å™ad nepřátel. KnÄ›zovi spojenci dostávají bonus +2 k útoku a k hodům na záchranu, oproti tomu protivníci na útoky a záchranné hody utrpí postih -2. Recitace neanuluje moc modlitby - obÄ› mohou být použity souÄasnÄ› a jejich úÄinky se sÄítají.~ -@283=~Recitace~ -@282=~Discharge of static electricity~ -@281=~Statický výboj (promÄ›na) -Úroveň: 4 -Sféra: poÄasí -Dosah: sesilatel -Trvání: 1 tah/úroveň -Doba kouzlení: 1 kolo -Rozsah: dohled sesilatele -Hod na záchranu: poloviÄní újma -Toto kouzlo se podobá vyvolání blesku, avÅ¡ak na rozdíl od nÄ›j může být použito i v místnostech. Sestává ze statického výboje okolo libovolné bytosti v dosahu jeho úÄinků, který způsobí zranÄ›ní elektÅ™inou za 2k8 životů plus dalších 1-8 životů na každou úroveň knÄ›ze. Výboj v jednotlivých kolech postupnÄ› slábne.~ -@280=~Statický výboj~ -@279=~Vyvolání ohnÄ› -(PromÄ›na) -Úroveň: 4 -Sféra: živly (oheň) -Dosah: dohled sesilatele -Trvání: 1 kolo -Doba kouzlení: 7 -Rozsah: okruh 1,8 metru -Hod na záchranu: žádný -Díky tomuto kouzlu vyÅ¡lehnou na cílovém místÄ› plameny, které zraňují každou bytost v dané oblasti za 1-4 zásahové body + 1 bod na úroveň uživatele.~ -@278=~Vyvolání ohnÄ›~ -@277=~Favor of Ilmater -(Necromancy) -Level: 3 -Sphere: Necromantic, Protection -Range: 30 ft. -Duration: Instant -Casting Time: 6 -Area of Effect: 1 creature -Saving Throw: None -By invoking this spell, the caster switches own life force with that of the recipient, exchanging all physical injuries. The spell will only function if the caster has more Hit Points than the target before the switch is attempted. This switch is permanent until the caster uses normal methods to heal the damage. The exchange can be done from a distance so long as the spell range is not exceeded. Only the Hit Points are exchanged; the caster cannot take on other conditions from the target such as disease, poison, intoxication, and similar afflictions. -This spell cannot be cast by evil-aligned characters. It has no effect on undead, constructs, or extraplanar creatures.~ -@276=~Přízeň Ilmaterova~ -@275=~Způsob stÅ™ední zranÄ›ní -(Nekromancie) -Úroveň: 3 -Sféra: LéÄení -Dosah: dotyk -Trvání: trvalé -Doba sesílání: 5 -Oblast působení: dotknutá bytost -Záchranný hod: 1/2 -Sesláním kouzla a pÅ™iložením rukou na bytost knÄ›z způsobí 14 bodů zranÄ›ní. Kouzlo neovlivňuje bytost bez hmotného tÄ›la, ani bytosti nežijící Äi z jiné sféry. Toto kouzlo nemohou seslat postavy dobrého pÅ™esvÄ›dÄení.~ -@274=~Způsob stÅ™ední zranÄ›ní~ -@273=~BouÅ™ná schránka (ochrana) -Úroveň: 3 -Sféra: ochrana, poÄasí -Dosah: sesilatel -Trvání: 1 tah -Doba kouzlení: 6 -Oblast působení: sesilatel -Hod na záchranu: žádný -Toto kouzlo obklopí sesilatele temným okruhem ruÅ¡ivé energie, která se pohybuje spolu s ním. BouÅ™ná schránka snižuje veÅ¡keré zranÄ›ní ohnÄ›m, chladem a elektÅ™inou o 50%.~ -@272=~BouÅ™ná schránka~ -@271=~Dotyk plísnÄ› (promÄ›na) -Úroveň: 3 -Sféra: rostliny -Dosah: dotyk -Trvání: 3 nebo 4 kola (zvláštní) -Doba kouzlení: 6 -Rozsah: 1 bytost -Hod na záchranu: zvláštní -Po tomto dotyku se tÄ›lo dotyÄného potáhne rychle rostoucí zelenou plísní. Postižená bytost má k dispozici hod na záchranu proti kouzlu - pokud se nezdaří, nákaza je těžká a tvor utrpí následující újmu: -1. kolo: zranÄ›ní 4k6 -2. kolo: zranÄ›ní 3k6 -3. kolo: zranÄ›ní 2k6 -4. kolo: zranÄ›ní 1k6 -PÅ™i úspěšném záchranném hodu bude utrpÄ›né zranÄ›ní sníženo: -1. kolo: zranÄ›ní 2k6 -2. kolo: zranÄ›ní 1k6 -3. kolo: zranÄ›ní 1k6 -V každém kole krom prvního si musí bytost nejblíže k obÄ›ti v okruhu tří metrů hodit na záchranu proti kouzlu, nebo bude plísní infikována s plnou úÄinností. Tento proces pokraÄuje, dokud se plísni nepodaří vÄas zasáhnout dalšího nositele. StvoÅ™ení, která již jejímu působení podléhají, nemohou být znovu nakažena. Zelená plíseň rychle odumírá, když vyprší stanovená doba.~ -@270=~Dotyk plísnÄ›~ -@269=~Průtrž mraÄen -(Vzývání) -Úroveň: 3 -Sféra: živly (voda) -Dosah: dohled sesilatele -Trvání: 2 kola -Doba kouzlení: 6 -Rozsah: okruh 9 metrů -Hod na záchranu: žádný -Toto kouzlo postihne danou oblast magickým deÅ¡tÄ›m. VÅ¡echny bytosti chladu a používající Äi obývající oheň utrpí v každém kole zranÄ›ní ve výši 2k3 životů. K tomu mají vÅ¡ichni tvorové v kritickém okruhu 50% pravdÄ›podobnost, že budou zasažení elektrickými výboji, způsobujícími zranÄ›ní za 2k6 životů (pÅ™i úspěšném záchranném hodu polovic). Kouzla "ohnivý meÄ", "plamenný rubáš" a aury salamandrů budou průtrží mraÄen uhaÅ¡eny.~ -@268=~Průtrž mraÄen~ -@267=~Růst bodláků -(PromÄ›ny) -Úroveň: 3 -Sféra: živly (zemÄ›) -Dosah: dohled sesilatele -Trvání: 1 tah -Doba kouzlení: 6 -Rozsah: okruh 4,5 metru -Hod na záchranu: žádný -Po vyslovení tohoto zaklínadla obroste okolní terén ostnatými rostlinami. Každý, kdo na postižené území vkroÄí, utrpí v každém kole trvání kouzla bodná zranÄ›ní ve výši 1k4 a seÄná zranÄ›ní za 1k4 životů.~ -@266=~Růst bodláků~ -@265=~KostÄ›ný kruh (nekromancie) -Úroveň: 3 -Sféra: obrana/vytváření -Dosah: sesilatel -Trvání: 3 kola -Doba kouzlení: 3 -Rozsah: okruh 0,9 metru -Hod na záchranu: žádný -Toto kouzlo zformuje bariéru z pohybujících se kostí, která okamžitÄ› obklopí uživatele. Každý, kdo projde skrz, utrpí v každém kole drtivá zranÄ›ní ve výši 1k6 a seÄná zranÄ›ní 1k6. Sesilatel se po dobu trvání kouzla nemůže hýbat. KostÄ›ný kruh nesmí sesílat postavy s dobrým pÅ™esvÄ›dÄením.~ -@264=~KostÄ›ný kruh~ -@263=~MÄ›síÄní Äepel~ -@262=~MÄ›síÄní Äepel~ -@261=~MÄ›síÄní Äepel (vzývání) -Úroveň: 3 -Sféra: boj, slunce -Dosah: sesilatel -Trvání: 2 tahy -Doba kouzlení: 6 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo vyvolá tichou beztížnou zbraň podobnou meÄi, sestávající z mÄ›síÄního svÄ›tla a dlouhou 1,2 m. PÅ™i útoku se chová jako zbraň +4, což má vliv na to, jaké nepřátele zasáhne, ale tento bonus se neodráží v THAC0. Díky kÅ™ehké povaze tohoto bÅ™itu také nelze aplikovat bonusy za sílu. -Úder mÄ›síÄní Äepele vysává z cíle život a způsobuje tak újmu ve výši 1k12 +4 a dalších 1k12 zranÄ›ní nemrtvým, kteří její moci více podléhají. Úspěšný zásah také poÅ¡kozuje magii a způsobuje, že každé kouzlo, které se oběť pokusí v následujícím kole seslat, se nezdaří.~ -@260=~MÄ›síÄní Äepel~ -@259=~Spánek~ -@258=~Euforie (ochrana) -Úroveň: 3 -Sféra: uzdravování -Dosah: dotyk -Trvání: 1 tah -Doba kouzlení: 1 kolo -Oblast působení: 1 bytost -Hod na záchranu: žádný -Euforií může knÄ›z povzbudit a ochránit i nÄ›koho jiného. Pouhým dotykem odstraní úÄinky strachu, spánku, slabomyslnosti, bezvÄ›domí, omámení, stejnÄ› jako váleÄnou zuÅ™ivost Äi stavy zmatení mysli. K tomu bude dotyÄný po dobu trvání chránÄ›n proti kouzlům a ostatním útokům, které by tyto stavy mohly způsobit.~ -@257=~Euforie~ -@256=~Nakažení (nekromancie) -Úroveň: 3 -Sféra: uzdravení -Dosah: dotyk -Trvání: 8 hodin -Doba kouzlení: 1 kolo -Rozsah: 1 bytost -Hod na záchranu: zruší kouzlo -Tímto způsobem lze nakazit dotyÄnou bytost nemocí, která z obÄ›ti vysaje 5-20 bodů síly. Úspěšný hod na záchranu tyto úÄinky ruší. Nakažení nepůsobí na bytosti nemrtvé, vyrobené nebo stvoÅ™ení z jiných dimenzí. Kouzlo nemohou sesílat postavy s dobrým pÅ™esvÄ›dÄením.~ -@255=~Nakažení~ -@254=~Bojové postihy~ -@253=~Bojové bonusy~ -@252=~Modlitba -(Vyvolávání) -Úroveň: 3 -Sféra: boj -Dosah: sesilatel -Trvání: 1 kolo/úroveň -Doba kouzlení: 6 -Rozsah: okruh 18 metrů -Hod na záchranu: žádný -Modlitba seÅ¡le na knÄ›ze a jeho spojence boží přízeň a na jejich protivníky naopak kletbu. VÅ¡echny útoky, zranÄ›ní a vrhy na záchranu spřátelenými postavami získávají modifikátor +1, zatímco nepřátelské útoky, hody na zranÄ›ní a záchranu jsou postihovány -1. Každá bytost zastižená v okruhu úÄinku kouzla v okamžiku jeho vyvolání je jím ovlivnÄ›na, i když zmínÄ›nou oblast opustí, takže bojovníci mohou pronásledovat prchající skÅ™ety a úÄinky modlitby je budou stále provázet.~ -@251=~Modlitba~ -@250=~StÅ™ední zranÄ›ní (nekromancie) -Úroveň: 2 -Sféra: uzdravení -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Toto kouzlo je opakem léÄby stÅ™edních zranÄ›ní - namísto vyhojení ztratí dotyÄná bytost pÅ™i úspěšném dotyku 11 životů (pÅ™i úspěšném záchranném hodu polovic). Toto kouzlo neúÄinkuje na bytosti nemrtvé, vyrobené nebo tvory z jiných dimenzí. StÅ™ední zranÄ›ní nemohou působit postavy s dobrým pÅ™esvÄ›dÄením.~ -@249=~StÅ™ední zranÄ›ní~ -@248=~Spár Å¡elmy~ -@247=~Spár Å¡elmy~ -@246=~Spár Å¡elmy (promÄ›na) -Úroveň: 2 -Sféra: boj -Dosah: sesilatel -Trvání: 1 tah -Doba kouzlení: 5 -Oblast působení: sesilatel -Hod na záchranu: žádný -Toto kouzlo promÄ›ní sesilatelovy ruce v pařáty mocné Å¡elmy, zvýší jeho sílu na 18/72 a dá mu možnost způsobit nepříteli seÄná zranÄ›ní ve výši 2k4 (+bonus za sílu). Uživatel smí svými spáry zaútoÄit dvakrát za kolo s bonusem +2 k zásahu.~ -@245=~Spár Å¡elmy~ -@244=~Obklopen/a stříbÅ™itým jasem (postih k obrannému Äíslu 2)~ -@243=~OÅ¡tÄ›p z rohu jednorožce (vzývání) -Úroveň: 2 -Sféra: boj -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Toto kouzlo stvoří stříbroskvoucí, ÄásteÄnÄ› nehmotný oÅ¡tÄ›p ve tvaru rohu jednorožce. Sesilatel zvolí cíl, na nÄ›jž zbraň okamžitÄ› vystÅ™elí a způsobí bodné zranÄ›ní ve výši 3k6 životů (pÅ™i úspěšném záchranném hodu polovic). I když se roh po úspěšném zásahu rozptýlí, obklopí protivníka stříbÅ™itým jasem, který jej uÄiní lépe viditelným a zranitelnÄ›jším. Oběť tak bude na tÅ™i kola postižena penalizací -2 na obranné Äíslo.~ -@242=~OÅ¡tÄ›p z rohu jednorožce~ -@241=~VyléÄení~ -@240=~LéÄba stÅ™ednÄ› těžkých zranÄ›ní (nekromancie) -Úroveň: 2 -Sféra: léÄba -Dosah: dotyk -Trvání: stálé -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: žádný -Tato o trochu silnÄ›jší modifikace léÄby lehkých zranÄ›ní navrátí každé živé bytosti 11 zásahových bodů. ÚÄinek tohoto kouzla se nevztahuje na nemrtvé a stvoÅ™ení z jiných dimenzí.~ -@239=~LéÄba stÅ™ednÄ› těžkých zranÄ›ní~ -@238=~Oslepen~ -@237=~Úžeh (vzývání) -Úroveň: 1 -Sféra: slunce -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 4 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Po vyslovení ÄarodÄ›jné formule vyÅ¡lehne z nebes na zvolený cíl oslnivý paprsek spalujícího žáru. Oběť si může hodit na záchranu proti kouzlu a pokud se jí vrh podaří, utrpí pouze poloviÄní újmu. Každý, na koho paprsek dopadne, ztratí 1k6 +1 život za každou úroveň sesilatele. Nemrtvé bytosti a nestvůry zvlášť zranitelné jasným svÄ›tlem pÅ™ijdou o 1k6 životů +2 za každou knÄ›zovu úroveň. K tomu vÅ¡emu budou zasažení na 3 kola oslepeni.~ -@236=~Úžeh~ -@235=~Lehká zranÄ›ní (nekromancie) -Úroveň: 1 -Sféra: léÄba -Dosah: dotyk -Trvání: okamžité -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: poloviÄní újma -Toto kouzlo je opakem léÄby lehkých zranÄ›ní - namísto vyhojení ztratí dotyÄná bytost pÅ™i úspěšném dotyku 8 životů (pÅ™i úspěšném záchranném hodu polovic). Toto kouzlo neúÄinkuje na bytosti nemrtvé, vyrobené nebo stvoÅ™ení z jiných dimenzí. Lehká zranÄ›ní nemohou působit postavy s dobrým pÅ™esvÄ›dÄením.~ -@234=~Lehká zranÄ›ní~ -@233=~Prokletý/á~ -@232=~Prokletí -(OÄarování/Vyvolávání) -Úroveň: 1 -Sféra: vÅ¡eobecná -Dosah: dohled sesilatele -Trvání: 6 kol -Doba kouzlení: 1 kolo -Rozsah: polomÄ›r 7,5 metru -Hod na záchranu: žádný -VyÅ™Äením tohoto zaklínání sníží sesilatel morálku nepřátelských bytostí a postihne jejich hody na záchranu a útok -1. V okamžiku dokonÄení jsou proklety vÅ¡echny bytosti v krychli 15 metrů se stÅ™edem v bodÄ› vybraném uživatelem (takže ovlivnÄ›ní tvorové, kteří oblast opustí, stále podléhají úÄinkům kouzla; na ty, kteří do ní vstoupí po dokonÄení magické formule, se již kouzlo nevztahuje).~ -@231=~Prokletí~ -@230=~Toto kouzlo vyléÄí zvolenou postavu a doplní jí jedenáct životů.~ -@229=~Eye of Stone -This eye shields the caster from a single petrification attack. -It can also be used as the 3rd-level wizard spell Hold Person, rendering humanoids of man-size or smaller immobile for 1 round/level (Save vs. Spell negates).~ -@228=~Oko kamene~ -@227=~Eye of the Spirit -This eye blocks one instant-death magic attack (Death Spell; Finger of Death; Power Word, Kill; Slay Living; Destruction). -The wizard may instead choose to expend the eye's power as the 2nd-level wizard spell Ray of Enfeeblement, dropping a target's Strength to 5 (Save vs. Spell negates).~ -@226=~Oko ducha~ -@225=~Eye of Fortitude -This eye blocks one stunning, deafness, blindness, or silence effect. -It may alternatively be expended as the 4th-level wizard spell Shout, dealing 4d6 magic damage and deafening creatures within a 35-ft. cone (Save vs. Spell halves damage and negates deafness).~ -@224=~Oko stateÄnosti~ -@223=~Eye of Venom -This eye halts any one attack or effect that could poison the caster. -The eye can also be expended as the 4th-level priest spell Poison, dealing 20 points of damage to one creature over a period of 20 seconds (Save vs. Poison negates).~ -@222=~Oko jedu~ -@221=~Eye of the Sword -This eye deflects the first physical damaging attack that strikes the caster. -The eye may be expended as the 1st-level wizard spell Magic Missile, creating up to 5 missiles (one for every two levels of experience besides the first) that each strike a target for 1d4+1 magic damage.~ -@220=~Oko meÄe~ -@219=~Eye of the Mage -This eye absorbs one manifestation of fire, electrical, cold, or acid damage. -The eye can also be expended as the 3rd-level wizard spell Lightning Bolt, dealing 1d6 electrical damage per level (capped at 10d6) to all creatures in its path.~ -@218=~Oko mága~ -@217=~Eye of the Mind -This orb protects the caster against mental attacks such as charm, emotion, and fear. -The eye can be expended as the 1st-level wizard spell Charm Person, bringing a humanoid creature under the caster's control for 1 turn (Save vs. Spell negates).~ -@216=~Oko mysli~ -@215=~Toto kouzlo nemůžeÅ¡ seslat, dokud nevyprchá aktuální kouzlo.~ -@214=~Sedmero oÄí~ -@213=~Sedmero oÄí (ochrana) -Úroveň: 7 -Dosah: sesilatel -Trvání: 2 tahy -Doba kouzlení: 7 -Oblast působení: sesilatel -Hod na záchranu: žádný -Toto zaříkání povolá sedm magických oÄí, které se budou vznášet nad sesilatelovou hlavou. Každé z nich má obrannou i útoÄnou schopnost, kterou vÅ¡ak ihned po použití ztratí. Jakákoliv kouzla seslaná po vyvolání sedmera oÄí se nezdaří, dokud neuplyne stanovený Äas nebo dokud vÅ¡echny oÄi nezmizí. Moc každého z nich je popsána níže. -Oko mysli - chrání sesilatele pÅ™ed mentálními útoky jako je zmámení, emoce a strach. Může se také stát ÄarodÄ›jovým kouzlem první úrovnÄ› 'zmámení osoby'. -Oko meÄe - odrazí první fyzický útok, směřující na sesilatele. Může být také použito jako mágovo kouzlo první úrovnÄ› 'magická stÅ™ela'. -Oko mága - absorbuje první zranÄ›ní ohnÄ›m, elektÅ™inou, mrazem Äi kyselinou. Může též posloužit jako ÄarodÄ›jovo kouzlo tÅ™etí úrovnÄ› 'blesk' (zranÄ›ní 4k8). -Oko jedu - zastaví první útok, který by mohl uživatele otrávit. Lze je také použít k otrávení jedné bytosti, které způsobí zranÄ›ní 30 životů za 30 sekund. -Oko ducha - zablokuje první útok okamžité smrtící magie ('kouzlo smrti', 'prst smrti', 'mocné slovo: zabití', 'niÄení života', 'zkáza'). Jeho moc může ÄarodÄ›j využít i jako paprsek slabomyslnosti, který sílu cíle nastaví na 5, sníží jeho Å¡ance na zásah a působenou újmu. -Oko stateÄnosti - zabrání jednomu omráÄení, hluchotÄ›, slepotÄ› nebo úÄinkům ticha. Je možno je také zužitkovat jako ÄarodÄ›jovo kouzlo tÅ™etí úrovnÄ› 'znehybnÄ›ní osoby'. -Oko kamene - zaÅ¡títí mága pÅ™ed jedním zkameňovacím útokem. Může se stát též ÄarodÄ›jovým kouzlem 3. úrovnÄ› 'znehybnÄ›ní osoby'. -Sedmero oÄí lze znovu vyvolat teprve poté, co vyprší doba trvání kouzla prvního, aÅ¥ už nÄ›jaké oÄi zbývají nebo ne.~ -@212=~Sedmero oÄí~ -@211=~Malavonův bÄ›s~ -@210=~Malavonův bÄ›s -(Vzývání) -Úroveň: 7 -Dosah: uživatel -Trvání: okamžité -Doba kouzlení: 1 -Rozsah: okruh 4,5 metru -Hod na záchranu: poloviÄní újma -Toto zaklínadlo vytvoÅ™il temný elfí ÄarodÄ›j Malavon. SpoÄívá v tom, že z tÄ›la sesilatele vytrysknou do vÅ¡ech smÄ›rů ÄásteÄky Äisté energie, ubližujíce jak přátelům, tak i nepřátelům. Tyto malé magické body způsobí každému, kdo se jim pÅ™iplete do cesty, bodná zranÄ›ní za 20-80 životů. Toto kouzlo je obzvláštÄ› výhodné použít, pokud je kouzelník obklíÄen nepřáteli.~ -@209=~Malavonův bÄ›s~ -@208=~Vorpal Hit~ -@207=~Smrt~ -@206=~Nemrtvý zniÄen~ -@205=~Outer planar destroyed~ -@204=~Stíny~ -@203=~Stíny (iluze) -Úroveň: 6 -Dosah: dohled sesilatele -Trvání: 1 kolo/úroveň -Doba kouzlení: 6 -Rozsah: krychle 6 metrů -Hod na záchranu: žádný -Stíny se podobají stínovým příšerám a nestvůrám polostínů - umožní uživateli utvářet hmotu z dimenze stínů a vyrábÄ›t z ní iluzorní tvory, kteří jsou tužší než přízraky vyvolané obÄ›ma výše zmínÄ›nými kouzly a plní příkazy svého sesilatele, dokud nevyprší stanovený Äas nebo dokud nebudou zabity.~ -@202=~Stíny~ -@201=~Dotyk licha~ -@200=~Dotyk licha~ -@199=~Dotyk licha (nekromancie) -Úroveň: 6 -Dosah: dotyk -Trvání: 1 kolo/úroveň -Doba kouzlení: 6 -Rozsah: sesilatel -Hod na záchranu: zvláštní -Toto zaklínadlo propůjÄuje uživateli sílu dotyku licha i jeho odolnost. BÄ›hem jeho působení je ÄarodÄ›j imunní vůÄi znehybnÄ›ní a strachu a jeho ruce září nadpozemským zelenkavým jasem, který zraňuje cíl za 1-10 životů a zcela ho paralyzuje, pokud si nehodí úspěšnÄ› na záchranu pÅ™ed znehybnÄ›ním. Na nemrtvé vÅ¡ak toto kouzlo nijak nepůsobí.~ -@198=~Dotyk licha~ -@197=~OdÄaruj efekty~ -@196=~Antimagická schránka~ -@195=~Antimagická schránka (ochrana) -Úroveň: 6 -Dosah: sesilatel -Trvání: 1 tah/úroveň -Doba kouzlení: 1 -Rozsah: sesilatel -Hod na záchranu: žádný -Po seslání tohoto kouzla obklopí ÄarodÄ›je neviditelná pÅ™ehrada, která se pohybuje spolu s ním. Tato bariéra ho Äiní imunním vůÄi magickým útokům, ale zároveň mu zabraňuje vysílat mimo ni jakákoliv kouzla.~ -@194=~Antimagická schránka~ -@193=~Elitní jeÅ¡tÄ›ran~ -@192=~Elitní skÅ™et~ -@191=~Elitní skÅ™et~ -@190=~Nestvůry polostínů~ -@189=~Nestvůry polostínů (iluze) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 kolo/úroveň -Doba kouzlení: 5 -Rozsah: krychle 6 metrů -Hod na záchranu: žádný -Toto kouzlo se podobá kouzlu 4. úrovnÄ› 'stínové příšery', ovÅ¡em vyvolané bytosti jsou mnohem silnÄ›jší, se 40% životů svých skuteÄných protÄ›jÅ¡ků.~ -@188=~Nestvůry polostínů~ -@187=~Trolí zbraň~ -@186=~Trol~ -@185=~Trol~ -@184=~Stínové příšery~ -@183=~Stínové příšery (iluze) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: 1 kolo/úroveň -Doba kouzlení: 4 -Rozsah: krychle 6 metrů -Hod na záchranu: zvláštní -Toto kouzlo pÅ™etvoří materiál z dimenze stínů na iluzorní nestvůry. Tyto příšery jsou vyvolávány náhodnÄ› jedna za druhou, s hody na životy mezi 1 a úrovní ÄarodÄ›je, dokud tento vrh u povolávané bytosti nedosáhne sesilatelovy úrovnÄ›. (Například mág 15. úrovnÄ› může vyvolat v jednom kole bytost 10 úrovnÄ›; tvor, který se pak objeví v dalším kole, bude mít hod na životy 1 až 5 atd.) Tato stínová stvoÅ™ení mají pouze 20% životů svých skuteÄných protÄ›jÅ¡ků, aÄkoliv jejich útoky jsou vedeny bez postihu.~ -@182=~Stínové příšery~ -@181=~Zrychlen~ -@180=~Zpomalení~ -@179=~Zpomalil~ -@178=~Rychlý únik (promÄ›na) -Úroveň: 1 -Dosah: sesilatel -Trvání: 3 kola -Doba kouzlení: 1 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo zdvojnásobí sesilatelovu normální rychlost na dobu, která obvykle postaÄí k tomu, aby mohl uniknout z nebezpeÄí. Po dobu trvání tohoto kouzla nemá na ÄarodÄ›je vliv žádná jiná magie, týkající se rychlosti, jako 'zrychlení' nebo 'zpomalení¨.~ -@177=~Expeditious Retreat~ -@176=~Mordenkainenův meÄ~ -@175=~Mordenkainenův meÄ~ -@174=~Mordenkainenův meÄ (vzývání) -Úroveň: 7 -Dosah: dohled sesilatele -Trvání: 1 kolo/úroveň -Doba kouzlení: 7 -Rozsah: zvláštní -Hod na záchranu: žádný -Toto kouzlo vyvolá blyÅ¡tivý silový meÄ, který ÄarodÄ›j mentálnÄ› ovládá. Zbraň se chová, jako by byla v rukou bojovníka poloviÄní úrovnÄ› než má uživatel, a navzdory tomu, že ji mág pevnÄ› třímá v rukou, dokáže útoÄit na bytosti kdekoliv v jeho zorném poli. AÄkoliv meÄ nemá žádný bonus na útok, dokáže zasahovat i tvory, kteří by normálnÄ› byli zranitelní pouze zbranÄ›mi +2 a vyššími a každým úderem působit ztrátu 5-30 životů.~ -@173=~Mordenkainenův meÄ~ -@172=~Vodní elementál~ -@171=~Vodní elementál~ -@170=~Vyvolání elementála vody~ -@169=~Vyvolání elementála vody (vyvolávání) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 tah/úroveň -Doba kouzlení: 1 kolo -Rozsah: zvláštní -Hod na záchranu: žádný -Toto kouzlo umožní uživateli vyvolat elementála z dimenze elementálů vody a ovládnout ho svou vůlí. Tento tvor bude bojovat ve prospÄ›ch kouzelníka, dokud neuplyne urÄená doba nebo dokud nebude elementál zniÄen.~ -@168=~Vyvolání elementála vody~ -@167=~VzduÅ¡ný elementál~ -@166=~VzduÅ¡ný elementál~ -@165=~Vyvolej vzduÅ¡ného elementála~ -@164=~Conjure Air Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Air and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@163=~Vyvolej vzduÅ¡ného elementála~ -@162=~Ohnivý elementál~ -@161=~Ohnivý elementál~ -@160=~Vyvolání elementála ohnÄ›~ -@159=~Vyvolání elementála ohnÄ› (vyvolávání) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 tah/úroveň -Doba kouzlení: 1 kolo -Rozsah: zvláštní -Hod na záchranu: žádný -Toto kouzlo umožní uživateli vyvolat elementála z dimenze elementálů ohnÄ› a ovládnout ho svou vůlí. Tento tvor bude bojovat ve prospÄ›ch mága, dokud nevyprší stanovená doba nebo dokud nebude elementál zniÄen.~ -@158=~Vyvolání elementála ohnÄ›~ -@157=~Elementál zemÄ›~ -@156=~Elementál zemÄ›~ -@155=~Vyvolání elementála zemÄ›~ -@154=~Vyvolání elementála zemÄ› (vyvolávání) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 tah/úroveň -Doba kouzlení: 1 kolo -Rozsah: zvláštní -Hod na záchranu: žádný -Toto kouzlo ÄarodÄ›jovi umožní vyvolat elementála z dimenze elementálů zemÄ› a ovládat ho svou vůlí. Tento tvor bude bojovat v jeho prospÄ›ch, dokud nevyprší doba trvání kouzla nebo dokud nebude elementál zniÄen.~ -@153=~Vyvolání elementála zemÄ›~ -@152=~Vyvolání nestvůr III~ -@151=~Vyvolání nestvůr III (vyvolávání) -Úroveň: 5 -Dosah: 36 metrů -Trvání: 4 kola + 1 kolo/úroveň -Doba kouzlení: 5 -Rozsah: zvláštní -Hod na záchranu: žádný -V kole, kdy je toto kouzlo sesláno, se v dosahu kouzla objeví 1-4 nestvůry 3. úrovnÄ›, které budou útoÄit na ÄarodÄ›jovy protivníky, dokud neuplyne uvedená doba nebo dokud příšery nebudou zabity.~ -@150=~Vyvolání nestvůr III~ -@149=~JeÅ¡tÄ›ran~ -@148=~JeÅ¡tÄ›ran~ -@147=~Vyvolání nestvůr II~ -@146=~Vyvolání nestvůr II (vyvolávání) -Úroveň: 4 -Dosah: 36 metrů -Trvání: 3 kola + 1 kolo/úroveň -Doba kouzlení: 4 -Rozsah: zvláštní -Hod na záchranu: žádný -V kole, kdy je toto kouzlo sesláno, se v jeho dosahu objeví 1-6 nestvůr 2. úrovnÄ›, které budou útoÄit na ÄarodÄ›jovy protivníky, dokud neuplyne stanovená doba nebo dokud příšery nebudou zabity.~ -@145=~Vyvolání nestvůr II~ -@144=~SkÅ™et~ -@143=~SkÅ™et~ -@142=~Vyvolání nestvůr I~ -@141=~Vyvolání nestvůr I (vyvolávání) -Úroveň: 3 -Dosah: 36 metrů -Trvání: 2 kola + 1 kolo/úroveň -Doba kouzlení: 4 -Rozsah: zvláštní -Hod na záchranu: žádný -V kole, kdy je toto kouzlo sesláno, se v jeho dosahu objeví 2-8 nestvůr 1. úrovnÄ›, které budou útoÄit na ÄarodÄ›jovy protivníky, dokud neuplyne urÄená doba nebo dokud příšery nebudou zabity.~ -@140=~Vyvolání nestvůr I~ -@139=~Útok~ -@138=~Minotaur~ -@137=~Minotaur~ -@136=~Vyvolání nestvůr V~ -@135=~Vyvolání nestvůr V (vyvolávání) -Úroveň: 7 -Dosah: 36 metrů -Trvání: 6 kol + 1 kolo/úroveň -Doba kouzlení: 6 -Rozsah: zvláštní -Hod na záchranu: žádný -V kole, kdy je toto kouzlo sesláno, se v jeho dosahu objeví 1-3 nestvůry 5. úrovnÄ›, které mohou útoÄit na ÄarodÄ›jovy protivníky, dokud nevyprší urÄený Äas nebo dokud příšery nebudou zabity.~ -@134=~Vyvolání nestvůr V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamandr~ -@130=~Salamandr~ -@129=~Ledový salamandr~ -@128=~Ledový salamandr~ -@127=~Vyvolání nestvůr VI~ -@126=~Vyvolání nestvůr VI (vyvolávání) -Úroveň: 8 -Dosah: 36 metrů -Trvání: 7 kol + 1 kolo/úroveň -Doba kouzlení: 8 -Rozsah: zvláštní -Hod na záchranu: žádný -Jakmile je toto kouzlo sesláno, objeví se v jeho dosahu 1-3 nestvůry 6. úrovnÄ›, které mohou zaútoÄit na ÄarodÄ›jovy protivníky, dokud nevyprší stanovená doba nebo dokud příšery nebudou zabity.~ -@125=~Vyvolání nestvůr VI~ -@124=~Útok~ -@123=~Klepetnatec okrový~ -@122=~Klepetnatec okrový~ -@121=~Kostlivý strážce~ -@120=~Kostlivý strážce~ -@119=~Vyvolání nestvůr VII~ -@118=~Vyvolání nestvůr VII (vyvolávání) -Úroveň: 9 -Dosah: zvláštní -Trvání: 7 kol + 1 kolo/úroveň -Doba kouzlení: 9 -Rozsah: okruh 72 metrů -Hod na záchranu: žádný -Po vyslovení této magické formule se v dosahu kouzla objeví 1-2 nestvůry 7. nebo 8. úrovnÄ›, které mohou napadnout ÄarodÄ›jovy protivníky, dokud kouzlo nevyprší nebo dokud příšery nebudou zabity.~ -@117=~Vyvolání nestvůr VII~ -@116=~Vyvolání nestvůr IV~ -@115=~Vyvolání nestvůr IV (vyvolávání) -Úroveň: 6 -Dosah: 36 metrů -Trvání: 5 kol + 1 kolo/úroveň -Doba kouzlení: 6 -Rozsah: zvláštní -Hod na záchranu: žádný -V kole, kdy je toto kouzlo sesláno, se v jeho dosahu objeví 1-3 nestvůry 4. úrovnÄ›, které budou útoÄit na ÄarodÄ›jovy protivníky, dokud nevyprší stanovený Äas nebo dokud příšery nebudou zabity.~ -@114=~Vyvolání nestvůr IV~ -@113=~Lebka~ -@112=~Monster Transparency -Do not translate~ -@111=~Monster Transparancy Item~ -@110=~Stín~ -@109=~Stín~ -@108=~Vyvolání stínu~ -@107=~Vyvolání stínu (vyvolávání, nekromancie) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 kolo + 1 kolo/úroveň -Doba kouzlení: 5 -Rozsah: krychle 3 metry -Hod na záchranu: žádný -Za každé tÅ™i úrovnÄ› ÄarodÄ›je vyvolá toto kouzlo jeden stín, který bude plnit rozkazy svého sesilatele, útoÄit na jeho nepřátele a vykonávat úkoly, dokud nepomine doba úÄinnosti nebo dokud nebude zabit.~ -@106=~Vyvolání stínu~ -@105=~Železná pÄ›st~ -@104=~Železná pÄ›st~ -@103=~Zasažen odpornou chorobou~ -@102=~Nemocný~ -@101=~Otrávený~ -@100=~Jed~ -@99=~Ocelové tÄ›lo~ -@98=~Ocelové tÄ›lo (promÄ›na) -Úroveň: 8 -Dosah: sesilatel -Trvání: 2 tahy -Doba kouzlení: 8 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo promÄ›ní mágovo tÄ›lo v živoucí ocel a pÅ™idá mu mocné odolnosti a schopnosti drtivého zranÄ›ní. Po dobu jeho trvání získává uživatel 100% odolnost vůÄi elektÅ™inÄ›, 50% odolnost vůÄi ohni a 25% odolnost vůÄi drtivému zranÄ›ní. Kouzla, napadající sesilatelovo dýchání nebo fyziologii, budou zcela ignorována. Nadto bude ÄarodÄ›jova síla zvýšena na 25 a bude moci útoÄit dvakrát za kolo ocelovými pÄ›stmi, které budou působit zranÄ›ní ve výši 2k4 životů + patÅ™iÄné bonusy za sílu. Oproti tomu sesilatelova pohyblivost bude znaÄnÄ› neobratná a pomalá, rychlost chůze klesne na 25% normálního stavu a mág nebude moci po dobu trvání 'ocelového tÄ›la' sesílat žádná kouzla.~ -@97=~Ocelové tÄ›lo~ -@96=~BezvÄ›domí~ -@95=~Mocný výkÅ™ik~ -@94=~Mocný výkÅ™ik -(Vzývání) -Úroveň: 8 -Dosah: sesilatel -Trvání: okamžité -Doba kouzlení: 1 -Rozsah: elipsa 9 metrů dlouhá a 3 metry Å¡iroká -Hod na záchranu: poloviÄní újma -Mocným výkÅ™ikem uvolní mág omraÄující sílu v kuželu 9 metrů dlouhém a 3 metry Å¡irokém. Toto kouzlo je pro uživatele mimořádnÄ› namáhavé a nebezpeÄné - odebírá mu 2k4 životů a musí si hodit na záchranu pÅ™ed kouzlem, jinak na jedno kolo upadne do bezvÄ›domí. Bytosti s vrhem na životy 5 a ménÄ› okamžitÄ› umírají. VÅ¡ichni ostatní v dané oblasti si musí hodit na záchranu pÅ™ed kouzlem. Ti, jimž se to nepodaří, budou na dvÄ› kola omráÄeni, na ÄtyÅ™i kola ohluÅ¡eni a utrpí zranÄ›ní ve výši 4k12 životů. Ti, kdož v záchranném vrhu uspÄ›jí, budou omráÄeni na 1 kolo, ohluÅ¡eni na 2 kola a pÅ™ijdou o 2k12 životů.~ -@93=~Mocný výkÅ™ik~ -@92=~~ -@91=~Okouzlený~ -@90=~Pod vlivem straÅ¡livého oÄarování~ -@89=~Ovládnut~ -@88=~Selhání morálky: panika~ -@87=~Opilý~ -@86=~Zmatený~ -@85=~OtupÄ›lá mysl~ -@84=~Držený~ -@83=~Ochromen~ -@82=~ZnehybnÄ›ní~ -@81=~VyÄiÅ¡tÄ›ní mysli~ -@80=~VyÄiÅ¡tÄ›ní mysli (ochrana) -Úroveň: 8 -Dosah: sesilatel -Trvání: 1 den -Doba kouzlení: 1 -Rozsah: sesilatel -Hod na záchranu: žádný -V zájmu sebekontroly a soukromí zaÅ¡títí 'vyÄiÅ¡tÄ›ní mysli' mágovu duÅ¡i téměř pÅ™ed každým úÄinkem mentálního působení - zmámení, ovládání, nadvlády, strachu, slabomyslnosti a jakéhokoli působení kÅ™išťálových koulí nebo jiných věšteckých metod.~ -@79=~VyÄiÅ¡tÄ›ní mysli~ -@78=~UduÅ¡ení~ -@77=~UduÅ¡ení -(PromÄ›na) -Úroveň: 7 -Dosah: dohled sesilatele -Trvání: 4 kola -Doba kouzlení: 7 -Rozsah: okruh 3 metry -Hod na záchranu: poloviÄní újma -Toto kouzlo pÅ™ipraví vÅ¡echny v dané oblasti o dech. StvoÅ™ení, která nedýchají, jím nebudou nijak postižena. DuÅ¡ení tvorové utrpí postih -4 vůÄi obrannému Äíslu, -4 vůÄi hodu na zásah, -6 vůÄi obratnosti, budou mít o jeden útok za kolo ménÄ›, poloviÄní schopnost pohybu a v každém kole ztratí 4k8 životů. Úspěšný záchranný hod vÅ¡echny úÄinky zruší, až na zranÄ›ní 2k8 v každém kole. Následky se zaÄnou vytrácet poté, co se oběť dostane z kritického území, i když potÅ™ebuje celé kolo k tomu, aby chytla druhý dech.~ -@76=~UduÅ¡ení~ -@75=~Kyselinová bouÅ™e~ -@74=~Kyselinová bouÅ™e -(Vzývání) -Úroveň: 7 -Dosah: dohled sesilatele -Trvání: 1 kolo/úroveň -Doba kouzlení: 7 -Rozsah: okruh 6 metrů -Hod na záchranu: poloviÄní újma -Toto kouzlo rozpoutá v oblasti svého působení prudký kyselinový liják, který v každém z prvních tří kol ubírá 1-4 životy, v dalších tÅ™ech 1-6 a v každém kole následujícím 1-8 životů. PÅ™emístÄ›ní z oblasti působení neuchrání postiženou bytost od dalších ztrát, neboÅ¥ kyselina pÅ™ilne ke kůži a každý, kdo se nacházel v okruhu deÅ¡tÄ›, je zraňován po celou dobu trvání kouzla. ObÄ›ti si po svém zasažení v každém kole hází na záchranu pÅ™ed kouzlem - jsou-li vrhy úspěšné, utrpí v daném koule pouze poloviÄní újmu.~ -@73=~Kyselinová bouÅ™e~ -@72=~Trolí odolnost~ -@71=~Trolí odolnost (nekromancie) -Úroveň: 6 -Dosah: sesilatel -Trvání: 2 tahy -Doba kouzlení: 6 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo obdaří sesilatele odolností trola, která mu umožní regenerovat 5 životů za kolo až do výše jeho normálního maxima.~ -@70=~Trolí odolnost~ -@69=~Kostlivec~ -@68=~Kostlivec~ -@67=~PožíraÄ duší~ -@66=~PožíraÄ duší -(Nekromancie) -Úroveň: 6 -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 5 -Rozsah: polomÄ›r 3 metry -Hod na záchranu: žádný -PožíraÄ duší způsobí vÅ¡em živým bytostem v okruhu tří metrů zranÄ›ní ve výši 3k8 životů. Každý, kdo v jeho důsledku zahyne, bude zniÄen a jeho podstata se promÄ›ní v kostlivce s hodem na životy 3, kterého může mág ovládat. VÅ¡echny takto zemÅ™elé obÄ›ti také sesilateli na 1 tah pÅ™idají bonus +1 k síle, obratnosti a odolnosti. PožíraÄ duší neúÄinkuje na nemrtvé, postavené nebo elementární bytosti.~ -@65=~PožíraÄ duší~ -@64=~KostÄ›ná Å¡ipka~ -@63=~KostÄ›ná Å¡ipka~ -@62=~KostÄ›né Å¡ipky~ -@61=~KostÄ›né Å¡ipky (nekromancie) -Úroveň: 6 -Dosah: sesilatel -Trvání: 5 kol -Doba kouzlení: 5 -Rozsah: sesilatel -Hod na záchranu: žádný -Po vyslovení zaklínadla se vytvoří devÄ›t Å¡ipek, které může sesilatel použít, avÅ¡ak po dobu trvání kouzla nemá možnost je odložit. Å ipky mají útoÄnou sílu +3 a zraňují za 1k4 životů. Zasažený si musí hodit na záchranu proti smrti, jinak ztratí jeÅ¡tÄ› 2k6 životů a jeho síla bude na 5 kol snížena o 3 body. Uživatelova odbornost na Å¡ipky (nebo její absence) nemá na pravdÄ›podobnost zásahu žádný vliv.~ -@60=~KostÄ›né Å¡ipky~ -@59=~Otilukova zmrazující koule~ -@58=~Otilukova zmrazující koule (promÄ›na, vzývání) -Úroveň: 6 -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 6 -Rozsah: 1 bytost -Hod na záchranu: zruší kouzlo -Toto kouzlo vypálí na protivníka paprsek chladu, jenž má dosah v okruhu dohledu ÄarodÄ›je a způsobuje zranÄ›ní chladem za 3-6 životů/úroveň sesilatele. Pokud se cíli zdaří hod na záchranu, vyhne se paprsku, a tím i veÅ¡kerým zranÄ›ním.~ -@57=~Otilukova zmrazující koule~ -@56=~Plamenný rubáš~ -@55=~Plamenný rubáš -(Vzývání) -Úroveň: 5 -Dosah: dohled sesilatele -Trvání: 1 kolo/za každé 2 úroveň sesilatele -Doba kouzlení: 5 -Rozsah: 1 bytost -Hod na záchranu: zruší kouzlo -Toto kouzlo zapříÄiní vzplanutí bytosti, pokud se jí nepodaří záchranný hod proti kouzlu. StvoÅ™ení je v každém kole spalováno za 2-12 životů (aÄkoliv je mu v každém následujícím kole umožnÄ›n nový záchranný hod, jímž se může vyhnout dalším zranÄ›ním) a dokud je magie aktivní, způsobuje proud plamenů vycházející z hořícího cíle každému do tří metrů od nÄ›j zranÄ›ní ohnÄ›m za 1-4 životy. Plamenný rubáš se zvlášť vyplatí používat na rozptýlené skupinky trolů Äi ledových salamandrů.~ -@54=~Plamenný rubáš~ -@53=~~ -@52=~Žíravá koule~ -@51=~Žíravá koule -(Vyvolávání) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: zvláštní -Doba kouzlení: 4 -Rozsah: zvláštní -Hod na záchranu: zvláštní -Jedná se o zářivou smaragdovou kouli kyseliny, kterou může sesilatel nasmÄ›rovat na zvolené místo v dohledu. Když koule dorazí k cíli, vybuchne a smáÄí nepřítele mocnou žíravinou. DotyÄný tak utrpí 1k4 zranÄ›ní kyselinou na úroveň sesilatele, až do maxima 12k4. Po prvotním zasažení si musí oběť hodit na záchranu, aby se vyhnula dalšímu zranÄ›ní. Pokud se vrh nezdaří, bude v následujících kolech opÄ›t zraňována kyselinou, v každém kole vždy o dva hody ménÄ›. Například ÄarodÄ›j na 8. úrovni způsobí tímto kouzlem v prvním kole zranÄ›ní 8k4, ve druhém kole 6k4, ve tÅ™etím 4k4, ve Ätvrtém 2k4 a v kole pátém kouzlo vyprší. V každém kole má protivník k dispozici hod na záchranu proti kouzlu, Äímž se může další újmÄ› vyhnout. -Žíravá koule svou kyselinu rozstříkne též v polomÄ›ru 1,5 metru kolem primárního cíle. Každá bytost v dané oblasti si musí hodit na záchranu proti pÅ™emÄ›nÄ›/znehybnÄ›ní, nebo utrpí zranÄ›ní 1k4 na každých pÄ›t úrovní sesilatele. Tyto "stříkance" vÅ¡ak již žádnou následnou újmu nepůsobí.~ -@50=~Žíravá koule~ -@49=~Hluchota~ -@48=~VýkÅ™ik~ -@47=~VýkÅ™ik -(Vzývání) -Úroveň: 4 -Dosah: sesilatel -Trvání: okamžité -Doba kouzlení: 1 -Rozsah: elipsa 9 metrů dlouhá a 3 metry Å¡iroká -Hod na záchranu: poloviÄní újma -Toto kouzlo mága obdaří straÅ¡livými hlasovými schopnostmi, díky nimž může vydat ohluÅ¡ující výkÅ™ik, který se rozlehne v oblasti o délce 9 metrů, s průmÄ›rem 3 metry ve svém nejzazším bodÄ›. Každý, kdo se nachází na kritickém území, bude na 2k6 kol ohluÅ¡en a utrpí zranÄ›ní 4k6 životů. Úspěšný hod na záchranu proti kouzlu hluchotu zruší a omezí veÅ¡kerou újmu na polovinu.~ -@46=~VýkÅ™ik~ -@45=~Mordenkainenovy silové stÅ™ely~ -@44=~Mordenkainenovy silové stÅ™ely -(Vzývání) -Úroveň: 4 -Dosah: dohled uživatele -Trvání: okamžité -Doba kouzlení: 4 -Rozsah: zvláštní -Hod na záchranu: zvláštní -Toto kouzlo vytvoří blyÅ¡tivou kouli magické energie, která vytryskne z uživatelovy ruky a okamžitÄ› zasáhne cíl, podobnÄ› jako kouzlo 'magická stÅ™ela'. Mág na 7. úrovni vytvoří jednu stÅ™elu, k níž se pÅ™idávají další na každé tÅ™i úrovnÄ› uživatele - takže dvÄ› stÅ™ely na 10. úrovni, tÅ™i na 13., ÄtyÅ™i na 16. atd., až do maxima sedmi stÅ™el na 25. úrovni. Každá z nich způsobí zranÄ›ní 2k4 a posléze vybuchne do okruhu 1,5 metru, pÅ™iÄemž způsobí další bod zranÄ›ní na úroveň sesilatele - například ÄarodÄ›j na 12. úrovni může vyvolat dvÄ› silové stÅ™ely, z nichž každá způsobí újmu 2k4 +12. Zasažení tvorové si mohou hodit na záchranu proti kouzlu a vyhnout se tak zranÄ›ní od výbuchu, ale úÄinek stÅ™ely samotné nelze nijak zvrátit. Mágovo kouzlo 1. úrovnÄ› "Å¡tít" vÅ¡ak tyto stÅ™ely zcela zneÅ¡kodňuje, vÄetnÄ› následné újmy od exploze.~ -@43=~Mordenkainenovy silové stÅ™ely~ -@42=~BeznadÄ›j~ -@41=~OmráÄení~ -@40=~Emoce: BeznadÄ›j~ -@39=~Emoce: BeznadÄ›j -(Zaříkávání) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: 1 tah -Doba kouzlení: 4 -Rozsah: okruh 3 metry -Hod na záchranu: zruší kouzlo -Toto kouzlo vzbudí u vÅ¡ech tvorů v dané oblasti pocit beznadÄ›je. VÅ¡echny jím ovlivnÄ›né bytosti zůstanou po dobu trvání neÄinnÄ› stát a nebudou se nijak projevovat.~ -@38=~Emoce: BeznadÄ›j~ -@37=~Panika~ -@36=~Emoce: Strach~ -@35=~Emoce: Strach -(Zaříkávání) -Úroveň: 4 -Dosah: dohled uživatele -Trvání: 5 kol -Doba kouzlení: 4 -Rozsah: okruh 3 metry -Hod na záchranu: zruší kouzlo -Toto kouzlo vzbudí u vÅ¡ech tvorů v dané oblasti pocit strachu. VÅ¡echna jím ovlivnÄ›ná stvoÅ™ení prchají po dobu 5 kol. Toto kouzlo odstraní úÄinky kouzla "Odvaha".~ -@34=~Emoce: Strach~ -@33=~Emoce: NadÄ›je~ -@32=~Emoce: NadÄ›je -(Zaříkávání/OÄarování) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: 5 tahů -Doba kouzlení: 4 -Rozsah: polomÄ›r 3 metry -Hod na záchranu: zruší kouzlo -Toto kouzlo probudí v oblasti svého působení pocit nadÄ›je. VÅ¡ichni jím ovlivnÄ›ní tvorové získají posílenou morálku a +2 k hodu na záchranu, hodu na útok a hodu na působené zranÄ›ní.~ -@31=~Emoce: NadÄ›je~ -@30=~Emoce: Odvaha~ -@29=~Emoce: odvaha -(Zaříkávání/OÄarování) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: 5 tahů -Doba kouzlení: 4 -Rozsah: polomÄ›r 3 metry -Hod na záchranu: zruší kouzlo -Toto kouzlo dodá vÅ¡em tvorům v dané oblasti velkou odvahu. VÅ¡echny jím ovlivnÄ›né bytosti získávají +1 na útok, +3 k hodu na zranÄ›ní a +5 doÄasných životů (které mohou pÅ™esahovat maximální zdraví osoby). Toto kouzlo anuluje vÅ¡echny úÄinky strachu, které snad byly pÅ™i jeho seslání v oblasti působení přítomny.~ -@28=~Emoce: Odvaha~ -@27=~Berserk~ -@26=~Beltynova žhavá krev~ -@25=~Beltynova žhavá krev (nekromancie) -Úroveň: 4 -Dosah: dohled sesilatele -Trvání: 2 kola -Doba kouzlení: 4 -Rozsah: 1 bytost -Hod na záchranu: zruší kouzlo -Beltynova žhavá krev zmÄ›ní krev cíle v oheň a v každém kole mu způsobí zranÄ›ní za 3-12 životů. Nepřítel má v každém kole k dispozici hod na záchranu pÅ™ed kouzlem s penalizací -3; je-li úspěšný, kouzlo se ruší. Toto zaklínadlo nemá vliv na nemrtvé nebo astrální bytosti (jako jsou elementálové), které krev nemají. Je-li zasažený tvor odolný vůÄi ohni, úÄinky kouzla tuto odolnost snižují nebo úplnÄ› anulují.~ -@24=~Beltynova žhavá krev~ -@23=~NiÄivý oÅ¡tÄ›p~ -@22=~NiÄivý oÅ¡tÄ›p (vzývání) -Úroveň: 3 -Dosah: 18 metrů -Trvání: okamžité -Doba kouzlení: 3 -Rozsah: zvláštní -Hod na záchranu: poloviÄní újma -Tímto kouzlem vyÅ¡le sesilatel na zvolený cíl do vzdálenosti 18 metrů silový oÅ¡tÄ›p. Každý v dráze jeho letu utrpí drtivá zranÄ›ní ve výši 5k4 +2 na úroveň sesilatele (maximum +30). ObÄ›ti si mohou hodit na záchranu proti kouzlu a pokud uspÄ›jí, pÅ™ijdou jen o polovinu životů.~ -@21=~NiÄivý oÅ¡tÄ›p~ -@20=~OmráÄen~ -@19=~Ledový oÅ¡tÄ›p~ -@18=~Ledový oÅ¡tÄ›p (vzývání) -Úroveň: 3 -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 3 -Rozsah: 1 bytost -Hod na záchranu: zvláštní -Toto kouzlo vrhne na urÄený cíl magický ledový oÅ¡tÄ›p, který zasahuje automaticky, působí zranÄ›ní za 5-30 životů a donutí oběť k hodu na záchranu, jinak bude na 1-4 kola omráÄena.~ -@17=~Ledový oÅ¡tÄ›p~ -@16=~Úprava obratnosti~ -@15=~KoÄiÄí mrÅ¡tnost~ -@14=~KoÄiÄí mrÅ¡tnost (promÄ›na) -Úroveň: 2 -Dosah: dotyk -Trvání: 1 hodina/úroveň -Doba kouzlení: 2 -Rozsah: 1 bytost -Hod na záchranu: žádný -Toto kouzlo magicky zvýší obratnost zvoleného tvora. Výše závisí na povolání dotyÄného: zlodÄ›ji obdrží 1k8 bodů, bojovníci a mágové 1k6 a kněží 1k4 bodů. KoÄiÄí mrÅ¡tnost nemůže zvýšit obratnost na více než 20 bodů.~ -@13=~KoÄiÄí mrÅ¡tnost~ -@12=~Dekahůl~ -@11=~Dekahůl~ -@10=~Dekahůl~ -@9=~Dekahůl (vzývání) -Úroveň: 2 -Dosah: sesilatel -Trvání: 1 kolo/úroveň -Doba kouzlení: 2 -Rozsah: sesilatel -Hod na záchranu: žádný -Toto kouzlo vytvoří v rukou ÄarodÄ›je silovou hůl. Je považována za magickou zbraň, která pÅ™i úspěšném zásahu své obÄ›ti ubere 1-6 životů a působí i na bytosti imunní vůÄi normálním zbraním. Je to vÅ¡ak hůl, takže pokud mág nemá odbornost na hole, používá Dekahůl s postihem. Tato hůl má také moc pÅ™i prvním úderu vysát z cíle 1-2 životy, které se pÅ™idají k uživatelovým. Ten si jimi vÅ¡ak může pouze uzdravit zranÄ›ní, která utrpÄ›l; poÄet jeho životů nemůže v tomto případÄ› pÅ™evýšit normální maximum.~ -@8=~Dekahůl~ -@7=~Snillocův roj snÄ›hových koulí -(Vzývání) -Úroveň: 2 -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 2 -Rozsah: okruh 7,5 metru -Hod na záchranu: poloviÄní újma -Toto kouzlo vyvolá sprÅ¡ku snÄ›hových koulí, které vypadávají z místa v dosahu ÄarodÄ›je a zasáhnou vÅ¡e v oblasti úÄinku; působí ztrátu 1-3 životů/úroveň až do maximálních 8-24 životů na 8. úrovni. Ohnivé nebo oheň obývající bytosti pak pÅ™ipraví dokonce o 1-6 životů/úroveň.~ -@6=~~ -@5=~Snillocův roj snÄ›hových koulí~ -@4=~Snillocův roj snÄ›hových koulí -(Vzývání) -Úroveň: 2 -Dosah: dohled sesilatele -Trvání: okamžité -Doba kouzlení: 2 -Rozsah: okruh 7,5 m -Hod na záchranu: poloviÄní újma -Toto kouzlo vyvolá sprÅ¡ku snÄ›hových koulí, které vypadávají z místa v dosahu ÄarodÄ›je a zasáhnou vÅ¡e v dané oblasti; působí ztrátu 1-3 životů/úroveň až do maximálních 8-24 životů na 8. úrovni. Ohnivým nebo oheň obývajícím bytostem ubírají 1-6 životů/úroveň.~ -@3=~~ -@2=~Snillocův roj snÄ›hových koulí~ -@1=~Svitek~ diff --git a/iwdification/dw/copyover/tra/de_DE/iwdspells.tra b/iwdification/dw/copyover/tra/de_DE/iwdspells.tra deleted file mode 100644 index 7d169fd..0000000 --- a/iwdification/dw/copyover/tra/de_DE/iwdspells.tra +++ /dev/null @@ -1,1175 +0,0 @@ -@375=~Kriegsgesang von Sith - Rüstungsbonus und Regeneration~ -@374=~"Der Kriegsgesang von Sith" -Alle Verbündeten im Umkreis von 10 Metern erhalten einen +2 Bonus zur Rüstungsklasse, +10% Resistenz gegen Klingen-, Stich-, Wucht- und Geschoßschäden, und die Fähigkeit 2 Trefferpunkte pro Runde zu regenerieren.~ -@373=~Kriegsgesang von Sith~ -@372=~Verzaubert~ -@371=~Das Verlangen der Sirene - verzaubert Wesen~ -@370=~"Die Sehnsucht der Sirene" -Alle Verbündeten im Umkreis von 10 Metern müssen einen Rettungswurf gegen Zauber bestehen, sonst werden sie verzaubert und sind für die Dauer einer Runde oder bis sie Schaden erleiden unfähig eine Aktion zu vollführen.~ -@369=~Das Verlangen der Sirene~ -@368=~Das Lied von Kaudies - widersteht Geräuschangriffen~ -@367=~"Das Lied von Kaudies" -Alle Verbündeten im Umkreis von 10 Metern erhalten eine 50% Chance, die Effekte von Zaubern wie Stille, Brüllen, Mächtiges Brüllen, Befehl, Höherer Befehl, oder sonstige auf Akkustik basierende Zauber abzuwenden.~ -@366=~Das Lied von Kaudies~ -@365=~Tymoras Melodie - Glücksbonus und Geschicklichkeitsbonus~ -@364=~"Tymoras Melodie" -Alle Verbündeten im Umkreis von 10 Metern erhalten +1 zu Glück, +3 zu Rettungswürfen, +10 zu Sagenkunde, und einen 10% Bonus zu allen Diebesfähigkeiten.~ -@363=~Tymoras Melodie~ -@362=~Die Geschichte von Curran Starkherz - Immunität gegen Angst~ -@361=~"Die Geschichte des Curran Starkherz" -Alle Verbündeten im Umkreis von 10 Metern erhalten Immunität gegen Furcht für die Dauer des Liedes, und alle bereits bestehenden auferlegten Furcht-Zauber werden augenblicklich unwirksam.~ -@360=~Die Geschichte von Curran Starkherz~ -@359=~Die Ballade von den drei Helden - Kampfbonus~ -@358=~"Die Ballade der drei Helden" -Alle Verbündeten im Umkreis von 10 Metern erhalten +1 auf Ihre Angriffs-, Schadens- und Rettungswürfe.~ -@357=~Die Ballade von den drei Helden~ -@356=~Gesang (Herbeirufung/Beschwörung) -Grad: 2 -Kampfzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase -Zeitaufwand: 1 Runde -Wirkungsbereich: Radius von 9 Metern -Rettungswurf: Nein -Mit Hilfe dieses Zaubers erwirkt der Priester für sich und seine Gefährten besondere himmlische Gunst und fügt seinen Gegnern gleichzeitig Schaden zu. Sobald der Priester den Zauber vollständig ausgesprochen hat, erhalten alle seine Verbündeten innerhalb des Wirkungsbereichs +1 auf ihre Angriffs-, Schadens- und Rettungswürfe, während alle Gegner in diesem Bereich einen entsprechenden Abzug von -1 erleiden. Bei mehrfacher Anwendung dieses Zaubers summieren sich die Zuschläge bzw. Abzüge nicht auf. Dieser Zauber erfordert seitens des Anwenders ein mittleres Maß an Konzentration, sodass der Priester während des Wirkens dieses Zaubergesangs keine weiteren Zauber wirken kann. Zudem wird sein Bewegungstempo halbiert.~ -@355=~Gesang~ -@354=~Furzschutzmittel für Bombardierkäfer -Do not translate~ -@353=~Bohrkäfer~ -@352=~Bohrkäfer~ -@351=~Bombardierkäfer~ -@350=~Bombardierkäfer~ -@349=~Rieseninsekt (Veränderung) -Grad: 4 -Tierzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 8 Stunden -Zeitaufwand: 7 -Wirkungsbereich: 1-6 Insekten -Rettungswurf: Nein -Mit diesem Zauber ruft der Anwender kleine Insekten herbei, die dann auf gigantische Ausmaße vergrößert und zu furchterregenden Verbündeten werden. Die Stärke und Art der Insekten hängt von der Stufe des Anwenders ab. Generell gilt: Je höher die Stufe, desto stärker die herbeigerufenen Insekten.~ -@348=~Rieseninsekt~ -@347=~Kritische Wunden verursachen (Nekromantie) -Grad: 5 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: Permanent -Zeitaufwand: 8 -Wirkungsbereich: Das berührte Wesen -Rettungswurf: Nein -DieserZauber ist der entgegengesetzte Zauber von "Kritische Wunden heilen". Anstatt das berührte Wesen zu heilen, verletzt es dieses. Wenn die Berührung des Priesters erfolgreich ist, werden dem Ziel 27 Schadenspunkte zugefügt. Diese Wirkung tritt beim nächsten Angriff des Priesters ein, allerdings hat er dazu nur 2 Runden Zeit, danach erlischt der Zauber. Auch wenn der Priester das Ziel nicht trifft, ist der Zauber verbraucht. Ein Rettungswurf ist nicht möglich.~ -@346=~Kritische Wunden verursachen~ -@345=~Schwere Wunden verursachen (Nekromantie) -Grad: 4 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: Permanent -Zeitaufwand: 7 -Wirkungsbereich: Das berührte Wesen -Rettungswurf: Nein -Dieser Zauber ist der entgegengesetzte Zauber von "Schwere Wunden heilen". Anstatt das berührte Wesen zu heilen, verletzt es dieses. Wenn die Berührung des Priesters erfolgreich ist, werden dem Ziel 17 Schadenspunkte zugefügt. Diese Wirkung tritt beim nächsten Angriff des Priesters ein; allerdings hat er dazu nur 2 Runden Zeit, danach erlischt der Zauber. Auch wenn der Priester das Ziel nicht trifft, ist der Zauber verbraucht. Ein Rettungswurf ist nicht möglich.~ -@344=~Schwere Wunden verursachen~ -@343=~2 Stufen verloren~ -@342=~Entzug von Lebensenergie -(Nekromantie) -Stufe: 7 -Schule: Bannzauber -Reichweite: Berührung -Wirkungsdauer: permanent -Zeitaufwand: 3 -Wirkungsbereich: 1 Wesen -Rettungswurf: keiner -Die Anwendung dieses Zaubers eröffnet eine Verbindung zwischen der Ebene des Anwenders und der negativen Energieebene. Der Anwender wirkt dabei als Verbindungsleitung zwischen den beiden Ebenen, entzieht dem Opfer Lebensenergie und überträgt sie in die negative Energieebene, wodurch dem Opfer zwei Stufen entzogen werden. Das Ziel dieses Zaubers verliert die Stufen, Trefferwürfel, Trefferpunkte und Fähigkeiten dauerhaft. Diese Stufen können nur durch den Priesterzauber "Genesung" wiederhergestellt werden. Dieser Zauber hat keine Wirkung auf Untote, Konstrukte oder Wesen von anderen Ebenen. Er kann nur von bösen Charakteren angewendet werden.~ -@341=~Entzug von Lebensenergie~ -@340=~Verstrickt~ -@339=~Schwankender Hügel~ -@338=~Schwankender Hügel~ -@337=~Pirscher (Herbeirufung) -Grad: 7 -Pflanzenzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 8 Stunden -Zeitaufwand: 1 Runde -Wirkungsbereich: Speziell -Rettungswurf: Nein -Mit diesem Zauber werden zwei schwankende Haufen geschaffen. Diese Wesen helfen dem Anwender bereitwillig im Kampf oder bei allen anderen Aufgaben, die ihnen zugewiesen werden und die sie ausführen können.~ -@336=~Pirscher~ -@335=~Nebel von Eldath (Anrufung) -Grad: 7 -Elementarzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde -Zeitaufwand: 1 Runde -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: Keiner -Dieser Zauber legt eine silberblaue Nebeldecke über den Wirkungsbereich - jedes Wesen in diesem Nebel wird von Krankheit und Gift geheilt und erhält außerdem Heilung für 25 Schadenspunkte.~ -@334=~Nebel von Eldath~ -@333=~Höherer Schild des Lathander -(Herbeirufung) -Grad: 7 -Sicherungszyklus -Reichweite: Berührung -Wirkungsdauer: 3 Runden -Zeitaufwand: 1 Runde -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Dieser Zauber verleiht dem Ziel während der Wirkungsdauer des Zaubers 100 % Resistenz gegen Magie und Immunität gegen Schaden. Böse Wesen können vom Höheren Schild des Lathander nicht geschützt werden. Dieser Zauber kann nur von guten Charakteren angewendet werden.~ -@332=~Höherer Schild des Lathander~ -@331=~Zerstörung (Nekromantie) -Grad: 7 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 Runde -Wirkungsbereich: Anwender -Rettungswurf: Speziell -Dieser Zauber zerstört ein Ziel mit sofortiger Wirkung, indem er das Opfer in Stücke reißt. Dem Opfer steht ein Rettungswurf gegen Tod -4 zu, durch den es den Schaden auf 8-48 Punkte reduzieren und überleben kann. Der Zauber "Zerstörung" kann nur von bösen Charakteren angewendet werden. Außerdem kann ein Charakter, der durch den Zauber "Zerstörung" getötet wurde, nicht mit dem Zauber "Tote erwecken" oder "Wiedererweckung" ins Leben zurückgeholt werden.~ -@330=~Zerstörung~ -@329=~Zauber wirkungslos~ -@328=~Unantastbarkeit des Geistes -(Bannzauber) -Grad: 7 -Schutzzyklus -Reichweite: Anwender -Wirkungsdauer: 1 Phase pro Stufe -Zeitaufwand: 1 Runde -Wirkungsbereich: Anwender -Rettungswurf: Nein -Mit diesem Zauber wird der Geist des Anwenders gegen jegliche äußeren Einflüsse gestählt. "Bezaubern", "Befehl", "Verwirrung", "Beherrschung", "Furcht", "Schwacher Geist", "Festhalten", "Schlaf" sowie alle psionischen Angriffe auf den Anwender scheitern, während dieser Zauber wirkt.~ -@327=~Unantastbarkeit des Geistes~ -@326=~Symbol der Hoffnungslosigkeit -(Herbeirufung/Beschwörung) -Grad: 7 -Sicherungszyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 2 Phasen -Zeitaufwand: 3 -Wirkungsbereich: Radius von 18 m -Rettungswurf: Keine Wirkung -Alle Wesen, die sich im Umkreis von 18 Metern um das Symbol der Hoffnungslosigkeit befinden, wenn dieses beschworen wird, müssen einen Rettungswurf gegen Zauber mit -2 Strafpunktabzügen ausführen. Wenn dieser fehlschlägt, bleiben sie wie angewurzelt stehen und werden von einem Gefühl der Depression und Kapitulation übermannt, und werden nichts tun, um sich im Angriffsfall zu verteidigen.~ -@325=~Symbol der Hoffnungslosigkeit~ -@324=~Quälende Schmerzen~ -@323=~Symbol des Schmerzes -(Herbeirufung/Beschwörung) -Grad: 7 -Sicherungszyklus -Reichweite: Berührung -Wirkungsdauer: 2-20 Phasen -Zeitaufwand: 3 -Wirkungsbereich: Radius von 20 Metern -Rettungswurf: Keine Wirkung -Alle Wesen, die sich im Umkreis von 20 Metern um das Symbol des Schmerzes befinden, wenn dieses angerufen wird, müssen einen Rettungswurf gegen Zauber ausführen. Wenn dieser fehlschlägt, werden sie von Schmerzen überwältigt, und ihnen werden bei Angriffswürfen 4 Punkte, bei der Geschicklichkeit 2 Punkte und bei ihrer Rüstungsklasse 2 Punkte abgezogen.~ -@322=~Symbol des Schmerzes~ -@321=~Spiritueller Zorn (Anrufung) -Grad: 6 -Kampfzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 2 -Wirkungsbereich: Speziell -Rettungswurf: 1/2 -Wenn dieser Zauber ausgesprochen wird, wird der Priester zum Mittelpunkt spiritueller Energie, die daraufhin wie Blitze in vier Richtungen aus dem Anwender hervorschießt. Der Anwender gibt das Ziel für einen dieser Blitze an, und die anderen schießen in die entgegengesetzte Richtung sowie im rechten Winkel zu dieser Richtung los, wodurch ein kreuzförmiges Muster entsteht. Alle Wesen, die von den Blitzen getroffen werden, erleiden 6-42 magische Schadenspunkte, die durch einen Rettungswurf halbiert werden können. Wesen mit der gleichen moralischen Gesinnung wie der Anwender (gut, neutral oder böse) bleiben von der Wirkung dieses Zaubers verschont.~ -@320=~Spiritueller Zorn~ -@319=~Wirbelwind (Anrufung) -Grad: 6 -Anrufungszyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Speziell -Zeitaufwand: 9 -Wirkungsbereich: Speziell -Rettungswurf: Speziell -Durch diesen Zauber wird ein kleiner Wirbelwind in der Nähe des Anwenders erzeugt, den der Anwender auf einen Punkt in seiner Sichtweite richten kann. Wenn der Wirbelwind sein Ziel erreicht, verliert der Anwender die Kontrolle über ihn, und der Wirbelwind fliegt nach dem Zufallsprinzip umher, wobei er sowohl Feinden als auch Freunden Schaden zufügen kann. Der Anwender ist immun gegen seinen eigenen Zauber, und alle elementaren oder riesengroßen Wesen entgehen der Wirkung ebenfalls. Wenn ein Wesen in den Weg des Wirbelwinds gerät, erleidet es 2-16 Schadenspunkte durch Wucht und 2-16 Schadenspunkte durch Klinge. Außerdem muss es einen Rettungswurf gegen Odemwaffen durchführen, sonst wird es 2 Runden lang betäubt. Wesen mit 2 oder weniger Trefferwürfeln werden durch diesen Zauber automatisch getötet. Es können maximal 8 Opfer Schaden nehmen, danach löst der Wirbelwind sich auf.~ -@318=~Wirbelwind~ -@317=~Chaosschild (Bannzauber) -Grad: 6 -Schutzzyklus -Reichweite: Anwender -Dauer: 1 Runde pro Stufe -Zeitaufwand: 9 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber umgibt den Anwender mit einem schützenden Energiestrudel, der viele Angriffe abwehrt oder ablenkt. Er verleiht dem Priester einen Bonus von +6 auf die Rüstungsklasse und 50 % Widerstandskraft gegen die meisten Angriffe, wie z. B. Elektrizität, Feuer und Kälte. Zudem erhält der Anwender +2 auf alle seine Rettungswürfe sowie Immunität gegen alle Angriffe, die mit Geschosswaffen verübt werden.~ -@316=~Chaosschild~ -@315=~Massenverwundung -(Nekromantie) -Stufe: 5 -Schule: Nekromantie -Reichweite: 0 -Wirkungsdauer: Sofort -Zeitaufwand: 5 -Wirkungsbereich: Radius von 4,5 Metern -Rettungswurf: halber Schaden -Mit diesem Zauber verursacht der Priester 1W8 + (1 Punkt pro Stufe) Schaden bei nahen Feinden; ein erfolgreicher Rettungswurf gegen Zauber halbiert den Schaden. Dieser Zauber hat keine Wirkung auf Untote, Konstrukte oder Kreaturen von anderen Ebenen. Massenverwundung kann nur von bösen Charakteren angewendet werden.~ -@314=~Massenverwundung~ -@313=~Tierwut (Verzauberung) -Grad: 5 -Kampfzyklus -Reichweite: Berührung -Wirkungsdauer: 15 Runden -Zeitaufwand: 8 -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Dieser Zauber verleiht dem Zielwesen die Wildheit eines Tieres. Das Zielwesen gewinnt eine Stärke von 19, +20 auf die Trefferpunkte, +20 % auf die Beweglichkeit und +2 auf alle Rettungswürfe. Das Ziel verliert die Fähigkeit, Zauber anzuwenden, solange die Wirkung von "Tierwut" anhält. Das betroffene Wesen kann gewöhnlich unter Kontrolle gehalten werden, solange keine Feinde in Sicht sind. Dann jedoch geht das Wesen zum Nahkampf über und nimmt dabei alles zu Hilfe, was ihm in die Hände fällt. Es besteht eine Wahrscheinlichkeit von 5 % pro Runde, dass das Ziel zum Berserker wird und sowohl Feinde als auch Freunde angreift.~ -@312=~Tierwut~ -@311=~Schutz vor Untoten (Nekromantie) -Grad: 5 -Schutzzyklus -Reichweite: Anwender -Wirkungsdauer: 1 Phase -Zeitaufwand: 7 -Wirkungsbereich: Radius von 7 Metern -Rettungswurf: Nein -Dieser Zauber verstärkt den Einfluss eines Priesters auf Untote, wobei seine Wirkung auf den Bereich um den Priester herum begrenzt und nicht beweglich ist. Jedes untote Wesen, das den Wirkungsbereich betritt, reagiert so, als wäre es von dem Priester vertrieben worden. Wenn das Vertreiben fehlschlägt, ist das untote Wesen immun gegen den Zauber, solange es den Wirkungsbereich nicht verlässt und neu betritt.~ -@310=~Schutz vor Untoten~ -@309=~Schild des Lathander -(Herbeirufung) -Grad: 5 -Sicherungszyklus -Reichweite: Berührung -Wirkungsdauer: 2 Runden -Zeitaufwand: 8 -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Dieser Zauber verleiht einem Ziel während der Wirkungsdauer des Zaubers Immunität gegen Schaden. Böse Wesen können nicht vom Schild des Lathander geschützt werden. Nur Charakter, die nicht böse sind, können den Zauber "Schild des Lathander" anwenden.~ -@308=~Schild des Lathander~ -@307=~Spitze Steine -(Veränderung, Verzauberung) -Grad: 5 -Elementarzyklus (Erde) -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 12 Runden -Zeitaufwand: 6 -Wirkungsbereich: Radius von 4,5 Metern -Rettungswurf: Nein -Dieser Zauber verformt den umliegenden Felsgrund in herausragende Spitzen, die sich perfekt an den Hintergrund anpassen. Alle Wesen, die den Wirkungsbereich betreten, erhalten 2-8 Schadenspunkte pro Runde.~ -@306=~Spitze Steine~ -@305=~Gerechter Zorn der Gläubigen -(Verzauberung/Bezauberung) -Grad: 5 -Kampfschule -Reichweite: Anwender -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 8 -Wirkungsbereich: Radius von 10 Metern -Rettungswurf: Nein -Dieser Zauber haucht den Verbündeten des Priesters eine Art göttlichen Wahnsinn ein und verbessert damit ihre kämpferischen Fähigkeiten. Alle Verbündeten des Priesters, die sich im Wirkungsbereich aufhalten, erhalten +1 auf ihre Angriffs- und Rettungswürfe sowie einen Bonus von 1-8 Trefferpunkten für die Wirkungsdauer des Zaubers (diese Trefferpunkte können die maximale Trefferzahl des Ziels überschreiten). Alle Wesen derselben Gesinnung erhalten einen zusätzlichen Angriff pro Runde sowie +2 auf ihre Angriffe, Schadens- und Rettungswürfe.~ -@304=~Gerechter Zorn der Gläubigen~ -@303=~Wand aus Mondlicht (Anrufung) -Grad: 4 -Schutzzyklus, Sonnenzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase -Zeitaufwand: 7 -Wirkungsbereich: Wand von 7 Metern Länge und 1,5 Metern Breite -Rettungswurf: Nein -Dieser Zauber ruft einen schimmernden Wandteppich aus blauweißer Kraft hervor. Diese Wand ist unberührbar, erfordert keinen physischen Anker und kann leicht durchschritten werden. Böse Wesen, die sie durchschreiten, erhalten 2-20 Schadenspunkte, böse untote Wesen 5-50. Ein Wesen, das durch die Wand geschritten ist, kann nur einmal Schaden durch sie nehmen. Nur eine Wand aus Mondlicht kann jeweils wirksam sein.~ -@302=~Wand aus Mondlicht~ -@301=~Sprühende Dornen (Veränderung) -Grad: 4 -Pflanzenzyklus -Reichweite: Speziell -Wirkungsdauer: Augenblicklich -Zeitaufwand: 3 -Wirkungsbereich: Kegel von 10 Metern Länge und 8 Metern Breite -Rettungswurf: 1/2 -Mit diesem Zauber kann der Anwender Stacheln, Spitzen und Dornen aus seiner Hand hervorspringen lassen. "Sprühende Dornen" hat einen kegelförmigen Wirkungsbereich von 10 Metern Länge und 20 Metern Breite und fügt allen Wesen in diesem Bereich einen Schaden durch Spitze von 2-20 Punkten bzw. von 1-10 Punkten bei erfolgreichem Rettungswurf gegen Tod zu.~ -@300=~Sprühende Dornen~ -@299=~Ohnmächtig~ -@298=~Zerschmetternde Welle (Anrufung) -Grad: 4 -Elementarzyklus (Wasser) -Reichweite: 13 Meter -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 Runde -Wirkungsbereich: Welle von 1,5 Metern Breite -Rettungswurf: 1/2 -Dieser Zauber ruft eine Wasserwelle herbei, die sich in die vom Anwender gewünschte Richtung bewegt und dabei alles in ihrem Weg mit massiver Kraft trifft. Die Welle fügt allen Opfern 4-40 Schadenspunkte durch Wucht zu. Zusätzlich besteht eine Möglichkeit von 25 %, dass ein getroffenes Wesen 2 Runden lang betäubt wird, sowie eine Möglichkeit von 5 %, dass das betroffene Wesen das Bewusstsein verliert. Wenn das getroffene Wesen einen erfolgreichen Rettungswurf gegen Odemwaffen durchführt wird der Schaden halbiert, und das Wesen kann nicht betäubt oder bewusstlos werden.~ -@297=~Zerschmetternde Welle~ -@296=~Sternmetallkeule~ -@295=~Sternmetallkeule~ -@294=~Sternmetallkeule (Herbeirufung) -Grad: 4 -Kampfzyklus -Reichweite: Anwender -Wirkungsdauer: 3 Phasen -Zeitaufwand: 7 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Durch diesen Zauber wird eine magische Keule aus Meteoreisen erzeugt, die einen Bonus von +2 auf ETW0 und Schaden gibt. Die Waffe kann außerdem auch Wesen verwunden, die normalerweise nur von +4 oder besseren Waffen getroffen werden können. Bonuspunkte bzw. Abzüge auf Waffenfertigkeit, Stärke und Spezialisierung werden normal angewandt. Unnatürliche Wesen (Untote, Elementare, Golems, außerplanare Wesen etc.) erleiden 2-12 zusätzliche Schadenspunkte durch Wucht.~ -@293=~Sternmetallkeule~ -@292=~Unerschöpfliches Durchhaltevermögen (Nekromantie) -Grad: 4 -Nekromantiezyklus -Reichweite: Berührung -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 Runde -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Dieser Zauber stellt das Durchhaltevermögen des berührten Wesens wieder her und gibt ihm die Energie, die in anderthalb Tagen Anstrengung verloren wurde, zurück. Dies reicht möglicherweise jedoch nicht aus, um einen Charakter aus seinem "erschöpften" Zustand herauszuholen.~ -@291=~Unerschöpfliches Durchhaltevermögen~ -@290=~Pestilenzwolke (Veränderung) -Grad: 4 -Kampf- und Elementarzyklus (Luft) -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 4 Runden -Zeitaufwand: 7 -Wirkungsbereich: Radius von 8 Metern -Rettungswurf: keine Wirkung -Dieser Zauber verwandelt die Luft in einem Radius von 8 Metern in Ekel erregende, gräuliche Nebel. Der Anwender und nicht lebende Wesen sind immun gegen die Wirkung der Wolke. In jeder Runde, in der andere Wesen der unheilvollen Luft ausgesetzt sind, verlieren sie 3 Punkte Stärke und Geschicklichkeit, erleiden 3 Schadenspunkte und erblinden (Rettungswurf gegen Odemwaffe schützt). Diese Wirkung hält 1 Phase lang an. Die "Pestilenzwolke" kann nur von bösen Charakteren angewendet werden.~ -@289=~Pestilenzwolke~ -@288=~Betäuben~ -@287=~Geheilt~ -@286=~Blutrausch (Veränderung) -Grad: 4 -Kampfzyklus -Wirkungsbereich: Sichtweite des Anwenders -Duration: 2 turns -Zeitaufwand: 7 -Wirkungsbereich: 1 verbündetes Wesen -Saving Throw: None -Dieser Zauber funktioniert nur bei Spielercharakteren oder verbündeten Wesen. Wenn er angewandt wird, wird das Ziel dieses Zaubers zum Berserker und greift das nächststehende Wesen an, bis es tot ist; danach geht er zum nächsten Ziel über. Unter dem Einfluss des Blutrausches ist das Ziel immun gegen Bezauberung, Schlaf, Furcht, Festhalten, Betäubung, Verwirrung, Gefühle, Symbolzauber und ähnliche Zauber. Außerdem gewinnt das Ziel +2 auf seine Trefferpunkte, +3 auf seine Schadenspunkte, +2 auf seine Stärke, 10 zusätzliche Trefferpunkte sowie einen Bonus auf seine Beweglichkeitsrate. Der Zauber hat allerdings auch einige Nachteile. Die Trefferpunkte des Ziels sind für die Wirkungsdauer des Zaubers verdeckt, und das Ziel kann keinen Nutzen aus Wirkungen ziehen, die Trefferpunkte heilen. Am Ende der Wirkungsdauer des Zaubers ermüdet das Ziel, und seine Stärke fällt 2 Phasen lang auf 3 zurück. Der Blutrausch kann nicht auf Wesen mit rechtschaffener Gesinnung angewandt werden oder von diesen gewirkt werden.~ -@285=~Blutrausch~ -@284=~Rezitation -(Bannzauber, Anrufung/Hervorrufung) -Grad: 4 -Kampfzyklus -Reichweite: Wirkungsbereich des Anwenders: Radius von 20 Metern -Dauer: 1 Runde/Stufe Rettungswurf: Nein -Zeitaufwand: 7 -Durch das Aufsagen einer heiligen Textstelle oder eines Gebets bittet der Priester seine Göttin um ihren Segen für sich und seine Verbündeten. Unter seinen Feinden verbreitet er dadurch gleichzeitig Verwirrung und Schwäche. Die Verbündeten des Priesters erhalten einen Bonus von +2 auf ihre Angriffs- und Rettungswürfe. Gebetszauber wirken bei diesem Zauber weiter. Bei gleichzeitiger Verwendung dieses Zaubers mit einem Gebetszauber wird die Wirkung der Zauber entsprechend erhöht.~ -@283=~Rezitation~ -@282=~Entladung von statischer Elektrizität~ -@281=~Statische Ladung (Veränderung) -Grad: 4 -Wetterzyklus -Reichweite: Anwender -Wirkungsdauer: 1 Phase pro Stufe -Zeitaufwand: 1 Runde -Wirkungsbereich: Sichtweite des Anwenders -Rettungswurf: 1/2 -"Statische Ladung" funktioniert ähnlich wie "Blitze herbeirufen", kann aber auch in Räumen verwendet werden. Mit diesem Zauber kann der Anwender eine statische Ladung um jedes beliebige Wesen im Wirkungsbereich erzeugen und ihm damit 2-16 Schadenspunkte durch Elektrizität sowie zusätzlich 1-8 Punkte für jede Erfahrungsstufe des Anwenders zufügen. Die Ladung wird einmal pro Runde abgegeben, solange der Zauber wirkt.~ -@280=~Statische Ladung~ -@279=~Feuer erzeugen (Veränderung) -Grad: 4 -Elementarzyklus (Feuer) -Reichweite: Sichtweite des Anwenders -Dauer: 1 Runde -Zeitaufwand: 7 -Wirkungsbereich: 4 Quadratmeter -Rettungswurf: Nein -Bei diesem Zauber steigen Flammen vom Zielpunkt empor und richten bei allen Wesen, die sich im Wirkungsbereich aufhalten, 1-4 Schadenspunkte durch Feuer sowie 1 Punkt pro Stufe des Anwenders an.~ -@278=~Feuer erzeugen~ -@277=~Gunst des Ilmater -(Nekromantie) -Stufe: 3 -Sphäre: Nekromantie, Schutzzauber -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Sofort -Zeitaufwand: 6 -Wirkungsbereich: 1 Wesen -Rettungswurf: Keiner -Durch die Anwendung dieses Zaubers tauscht der Anwender seine eigene Lebenskraft mit der des Empfängers, wodurch auch alle körperlichen Verwundungen getauscht werden. -Der Zauber wird nur wirken, wenn der Anwender vor dem Versuch mehr Schadenspunkte besitzt als das Ziel. -Der Tausch ist dauerhaft, bis der Anwender normale Methoden einsetzt, um Schaden zu heilen. Der Tausch kann aus der Entfernung durchgeführt werden, solange die Reichweite nicht überschritten ist. -Nur die Schadenspunkte werden getauscht, der Anwender kann keine anderen Zustände des Ziels übernehmen, etwa Krankheit, Gift, Rausch und ähnliche Gebrechen. -Der Zauber hat keine Wirkung auf Untote, Konstruktionen oder Wesen von anderen Ebenen; er kann nicht von bösen Charakteren angewendet werden.~ -@276=~Gefallen des Ilmater~ -@275=~Mittlere Wunden verursachen -(Nekromantie) -Level: 3 -Sphäre: Heilung -Reichweite: Berührung -Wirkungsdauer: Augenblicklich -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: 1/2 -Dieser Zauberspruch verursacht beim Aussprechen und gleichzeitigem Berühren eines Wesens 14 Schadenspunkte (Rettungswurf vs. Zauber für halben Schaden) beim Ziel. Er wirkt nicht bei Untoten, Konstrukten oder extraplanaren Kreaturen. Mittlere Wunden verursachen kann nicht von Charakteren gewirkt werden, die guter Gesinnung sind.~ -@274=~Mittlere Wunden verursachen~ -@273=~Sturm-Schutzhülle (Bannzauber) -Grad: 3 -Schutzzyklus (Wetter) -Reichweite: Anwender -Wirkungsdauer: 1 Phase -Zeitaufwand: 6 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber umgibt den Anwender mit einer dunklen Sphäre zerschmetternder Energie, die sich mit ihm bewegt. Die Sturm-Schutzhülle reduziert jeglichen Schaden durch Feuer, Kälte oder Elektrizität für den Anwender um 50 %.~ -@272=~Sturm-Schutzhülle~ -@271=~Schimmelberührung (Veränderung) -Stufe: 3 -Pflanzenzyklus -Reichweite: Berührung -Wirkungsdauer: 3 oder 4 Runden (speziell) -Zeitaufwand: 6 -Wirkungsbereich: 1 Wesen -Rettungswurf: Speziell -Dieser Zauber infiziert ein Wesen, das der Anwender berührt, mit einem sich rasch ausbreitenden braunen Schimmelbefall. Das infizierte Wesen erhält einen Rettungswurf gegen den Zauber. Schlägt dieser fehl, ist die Infektion sehr schwer, und das Wesen erleidet den folgenden Schaden: -1. Runde: 4-24 Schadenspunkte -2. Runde: 3-18 Schadenspunkte -3. Runde: 2-12 Schadenspunkte -4. Runde: 1-6 Schadenspunkte -Bei einem erfolgreichen Rettungswurf wird der Schaden folgendermaßen reduziert: -1. Runde: 2-12 Schadenspunkte -2. Runde: 1-6 Schadenspunkte -3. Runde: 1-6 Schadenspunkte -Ab der 2. Runde muss jedes Wesen, das sich nicht weiter als 3 Meter vom Opfer entfernt befindet, pro Runde einen Rettungswurf gegen Zauber ausführen, wenn es nicht selbst von der Schimmelberührung angegriffen werden will. Wesen, die befallen sind, können nicht noch einmal infiziert werden. Der braune Schimmel stirbt schnell ab, wenn der Zauber seine Wirkung verliert.~ -@270=~Schimmelberührung~ -@269=~Wolkenbruch (Anrufung) -Grad: 3 -Elementarzyklus (Wasser) -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 2 Runden -Zeitaufwand: 6 -Wirkungsbereich: Radius von 10 Metern -Rettungswurf: Nein -Dieser Zauber ruft einen magischen Regen hervor, der den Wirkungsbereich tränkt. Jegliche Wesen, die in Kälte oder Feuer leben bzw. diese verwenden, erhalten 2-6 Schadenspunkte pro Runde. Zusätzlich haben alle Wesen im Wirkungsbereich eine 50-prozentige Chance, von Blitzschlägen getroffen werden, die den Wesen einen Schaden von 2-12 Punkten zufügen; dieser Schaden kann durch einen Rettungswurf halbiert werden. Die Wirkung der Zauber "Flammenklinge" und "Flammenschleier" sowie Salamander-Auras werden durch den Zauber "Wolkenbruch" unwirksam.~ -@268=~Wolkenbruch~ -@267=~Dornenwachstum (Veränderung) -Grad: 3 -Elementarzyklus (Erde) -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase -Zeitaufwand: 6 -Wirkungsbereich: Radius von 5 Metern -Rettungswurf: Nein -Durch diesen Zauber wird das umgebende Terrain mit dornigen Pflanzen überwuchert. Jedes Wesen, das den Wirkungsbereich betritt, erleidet jede Runde bis zum Erlöschen des Zaubers 1-4 Schadenspunkte durch Spitze und 1-4 Schadenspunkte durch Klinge.~ -@266=~Dornenwachstum~ -@265=~Knochenkreis (Nekromantie) -Grad: 3 -Sicherungs- und Erschaffungszyklus -Reichweite: Anwender -Wirkungsdauer: 3 Runden -Zeitaufwand: 1 Runde -Wirkungsbereich: Radius von 1 Meter -Rettungswurf: Nein -Dieser Zauber ruft eine Schutzbarriere aus schwebenden Knochen hervor, die schnell um den Anwender herumwirbeln. Jeder, der ihnen in den Weg kommt, erleidet 1-6 Schadenspunkte durch Wucht und 1-6 Schadenspunkte durch Klinge pro Runde. Der Anwender kann sich während der Wirkungsdauer des Zaubers nicht bewegen. Der Zauber "Knochenkreis" kann nicht von guten Charakteren angewendet werden.~ -@264=~Knochenkreis~ -@263=~Mondklinge~ -@262=~Mondklinge~ -@261=~Mondklinge (Anrufung) -Grad: 3 -Kampfzyklus (Sonne) -Reichweite: Anwender -Wirkungsdauer: 2 Phasen -Zeitaufwand: 6 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber beschwört eine laut- und gewichtslose, schwertähnliche Waffe aus Mondlicht, die von der Hand des Anwenders aus 1,2 Meter misst. Was die Wesen angeht, die von der Mondklinge getroffen werden können, so zählt sie wie eine +4-Waffe, wobei der Bonus nicht für den ETW0 gilt. Außerdem wird wegen der Substanzlosigkeit der Mondklinge kein Bonus für die Stärke im Nahkampf angerechnet. -Beim Treffer durch die Mondklinge wird dem Opfer Lebenskraft entzogen, und es erleidet 1-12+4 Punkte Schaden, wobei Untote, die besonders anfällig sind, zusätzliche 1-12 Punkte erleiden. Ein erfolgreicher Treffer bringt auch zeitweilig Zauber durcheinander, sodass jeder Zauber, den das Opfer in der nächsten Runde anwendet, fehlschlägt.~ -@260=~Mondklinge~ -@259=~Schlafen~ -@258=~Begeisterung (Bannzauber) -Grad: 3 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: 1 Phase -Zeitaufwand: 1 Runde -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Durch diesen Zauber kann ein Priester jedem anderen Wesen außer sich selbst beistehen und es schützen. Durch eine Berührung beseitigt der Anwender die Wirkung von Furcht, Schlaf, Schwachsinn, Bewusstlosigkeit und Rausch sowie Berserkerwut und Verwirrung. Außerdem ist der Empfänger während der Wirkungsdauer dieses Zaubers geschützt vor Zaubern und anderen Angriffen, die diese Wirkungen hervorrufen.~ -@257=~Begeisterung~ -@256=~Krankheit verursachen (Nekromantie) -Grad: 3 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: 8 Stunden -Zeitaufwand: 1 Runde -Wirkungsbereich: 1 Wesen -Rettungswurf: keine Wirkung -Dieser Zauber schlägt ein Wesen, das der Priester berührt, mit einer Krankheit, die dem Opfer 5-20 Punkte Stärke entzieht. Durch einen Rettungswurf wird der Zauber unwirksam. Dieser Zauber hat keine Auswirkungen auf Untote, Konstrukte oder außerplanare Wesen. Der Zauber "Krankheit verursachen" kann nicht von guten Charakteren angewendet werden.~ -@255=~Krankheit verursachen~ -@254=~Kampfhandikaps~ -@253=~Kampfboni~ -@252=~Gebet (Beschwörung/Herbeirufung) -Grad: 3 -Kampfzyklus -Reichweite: Anwender -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 6 -Wirkungsbereich: Radius von 20 Metern -Rettungswurf: Nein -Das Gebet begünstigt Priester und wohlgesinnte Charaktere, belegt aber Feinde mit einem Fluch. Alle Angriffe, Schadens- und Rettungswürfe wohlgesinnter Charaktere werden mit +1 belohnt, während Angriffe, Schadens- und Rettungswürfe aller Feinde mit -1 bestraft werden. Allen Wesen, die sich bei der Wirkung des Zaubers im Wirkungsbereich aufhalten, werden betroffen, auch wenn sie danach den Bereich verlassen. Wenn Kämpfer also diesem fliehenden Goblin folgen wollen, folgt ihnen auch die Wirkung des Gebets.~ -@251=~Gebet~ -@250=~Mittlere Wunden verursachen (Nekromantie) -Grad: 2 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: Permanent -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: 1/2 -Wenn ein Priester diesen Zauber durch Berührung eines Wesens anwendet, fügt er dem Körper des Wesens 11 Schadenspunkte zu (der Schaden wird durch einen gelungenen Rettungswurf halbiert). Dieser Zauber hat keine Auswirkungen auf Untote, Konstrukte oder außerplanare Wesen. Der Zauber "Mittlere Wunden verursachen" kann nicht von guten Charakteren angewendet werden.~ -@249=~Mittlere Wunden verursachen~ -@248=~Bestienklaue~ -@247=~Bestienklaue~ -@246=~Bestienklaue -(Veränderung) -Grad: 2 -Kampfzyklus -Reichweite: Anwender -Wirkungsdauer: 1 Phase -Zeitaufwand: 5 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Durch diesen Zauber wird der Arm des Anwenders in die Klauen einer mächtigen Bestie verwandelt, was dem Anwender eine Stärke von 18/72 sowie die Fähigkeit verleiht, einem Gegner durch Kratzen 2-8 (+Stärkebonus) Punkte Klingenschaden zuzufügen. Der Anwender kann pro Runde zwei Angriffe mit den Bestienklauen durchführen, wobei er einen Bonus von 2 Punkten auf seinen Angriff erhält.~ -@245=~Bestienklaue~ -@244=~Von einem silbrigen Schimmer umgeben (RK verschlechtert sich um 2)~ -@243=~Einhornlanze -(Anrufung) -Grad: 2 -Kampfzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: 1/2 -Durch diesen Zauber wird eine silberfarbene, teilweise ätherale Lanze erzeugt, die dem Horn eines Einhorns ähnelt. Der Anwender wählt ein Ziel, und die Einhornlanze wird augenblicklich darauf abgefeuert und fügt ihm 3-18 Schadenspunkte (Spitze) zu. Durch einen Rettungswurf kann der Schaden halbiert werden. Obwohl sich die Einhornlanze nach dem Treffer auflöst, hinterlässt sie ein silbriges Leuchten um das Ziel, wodurch dieses leichter gesehen und getroffen werden kann, sodass es 3 Runden lang 2 Punkte Abzug auf seine Rüstungsklasse erhält.~ -@242=~Einhornlanze~ -@241=~Geheilt~ -@240=~Mittelschwere Wunden heilen -(Nekromantie) -Heilzyklus -Grad: 2 -Reichweite: Berührung -Wirkungsdauer: Augenblicklich -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Der Zauber "Mittlere Wunden heilen" ist eine stärkere Version des Zaubers für Priester der 1. Stufe "Leichte Wunden heilen". Mit diesem Zauber werden 11 Schadenspunkte eines Lebewesens geheilt.~ -@239=~Mittelschwere Wunden heilen~ -@238=~Geblendet~ -@237=~Sengende Sonne (Anrufung) -Grad: 1 -Sonnenzyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 4 -Wirkungsbereich: 1 Wesen -Rettungswurf: 1/2 -Wenn dieser Zauber angewendet wird, fährt ein gleißender Strahl brennender Hitze vom Himmel hernieder und trifft ein vom Anwender ausgewähltes Opfer. Dem Opfer steht ein Rettungswurf gegen Zauber zu, mit dem der Schaden halbiert werden kann. Wenn ein Wesen von dem Strahl getroffen wird, erleidet es 1-6 Schadenspunkte plus 1 Punkt pro Stufe des Anwenders. Untote Wesen und Monster, die empfindlich gegen helles Licht sind, erhalten 1-6 Schadenspunkte plus 2 Punkte pro Stufe des Anwenders. Zusätzlich zu diesem Schaden wird das Opfer 3 Runden lang durch den Zauber geblendet.~ -@236=~Sengende Sonne~ -@235=~Leichte Wunden verursachen (Nekromantie) -Grad: 1 -Heilzyklus -Reichweite: Berührung -Wirkungsdauer: Permanent -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: 1/2 -Wenn der Priester den Zauber ausspricht und dabei ein Wesen berührt, fügt er dem Körper des Opfers 8 Schadenspunkte zu (halber Schaden bei Rettungswurf). Dieser Zauber hat keine Auswirkung auf Untote, Konstrukte oder außerplanare Wesen. "Leichte Wunden verursachen" kann nicht von guten Charakteren angewandt werden.~ -@234=~Leichte Wunden verursachen~ -@233=~Verflucht~ -@232=~Fluch (Herbeirufung/Beschwörung) -Grad: 1 -Allgemeiner Zyklus -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 6 Runden -Zeitaufwand: 1 Runde -Wirkungsbereich: Ein Würfel mit 15 m Kantenlänge -Rettungswurf: Nein -Wenn der Anwender den Fluch ausspricht, senkt er die Moral feindlicher Wesen und zieht -1 von ihren Rettungs- und Angriffswürfen ab. Sobald der Zauber wirkt, werden alle Wesen innerhalb eines Würfels mit 15 m Kantenlänge um einen vom Anwender gewählten Punkt getroffen (Wesen, die den Bereich verlassen, nachdem sie getroffen wurden, spüren die Wirkung des Zaubers trotzdem. Der Fluch wirkt aber nicht auf Wesen, die den Bereich erst später betreten).~ -@231=~Fluch~ -@230=~Dieser Zauber heilt den Charakter um 11 Trefferpunkte.~ -@229=~Auge des Steins -Dieses Auge absorbiert einen Versteinerungs-Angriff, der auf den Magier gewirkt wurde. -Es kann auch einen Zauber 3. Grades *Person festhalten* wirken und humanoide Wesen, die so groß wie Menschen (oder kleiner) sind, für 1 Runde/Stufe lähmen. (Rettungswurf gegen Zauber für Abwehr).~ -@228=~Steinauge~ -@227=~Auge des Geistes -Dieses Auge absorbiert einen Todeszauber-Angriff, der auf den Magier gewirkt wurde. (Todeszauber, Finger des Todes, Wort der Macht: Tod, Schneller Tod, Zerstörung). -Statt dessen kann der Magier mit dem Auge auch den Zauber 2. Grades *Schwächestrahl* wirken, welcher die Stärke des Gegners auf 5 dezimiert. (Rettungswurf gegen Zauber für Abwehr).~ -@226=~Auge des Geistes~ -@225=~Auge der Standhaftigkeit -Dieses Auge blockt einen Effekt der Kategorie Benommenheit, Taubheit, Blindheit, Stille ab. -Alternativ kann das Auge auch einen Zauber des 4. Grades *Schrei* wirken. Dieser richtet in einem Radius von 10 Metern magischen Schaden in Höhe von 4W6 an und führt zu Taubheit der Gegner (Rettungswurf gegen Zauber für halben Schaden und Abwehr von Taubheit).~ -@224=~Auge der Stärke~ -@223=~Auge des Giftes -Dieses Auge absorbiert einen Angriff, der den Magier vergiften könnte. -Das Auge kann auch als Priesterzauber des 4. Grades *Vergiften* benutzt werden. Der Schaden dabei beträgt 20 Punkte Giftschaden über eine Dauer von 20 Sekunden (Rettungswurf gegen Gift für Abwehr).~ -@222=~Auge des Giftes~ -@221=~Auge des Schwertes -Dieses Auge wehrt den ersten physikalischen Angriff auf den Magier ab. -Das Auge kann auch als Zauber des 1. Grades *Magisches Geschoss* (ein Geschoss und alle zwei Stufen des Anwenders ein weiterer, jedoch nicht mehr als 5 Geschosse maximal) benutzt werden. Die Geschosse richten 1d4+1 Punkte magischen Schaden an.~ -@220=~Auge des Schwertes~ -@219=~Auge des Magiers -Dieses Auge absorbiert einen Angriff durch Feuer, Blitz, Kälte oder Säureschaden. -Das Auge kann auch als Zauber des 3. Grades *Blitzschlag* benutzt werden. Er richtet 1W6 elektrischen Schaden pro Stufe (max. 10W6) bei allen Kreaturen auf seiner Bahn an.~ -@218=~Auge des Magiers~ -@217=~Auge des Geistes -Diese Kugel schützt den Magier gegen mentale Angriffe wie Bezauberung, Gefühl und Furcht. -Das Auge kann auch als Zauber des 1. Grades *Person Bezaubern* genutzt werden, und bringt bei Erfolg eine humanoide Kreatur unter der Kontrolle des Magiers für eine Runde.~ -@216=~Auge der Gedanken~ -@215=~Ihr könnt diesen Zauber nicht auslösen, bevor die Wirkung des aktuellen Zaubers aufgehört hat.~ -@214=~Sieben Augen~ -@213=~Sieben Augen (Bannzauber) -Grad: 7 -Reichweite: Anwender -Wirkungsdauer: 2 Phasen -Zeitaufwand: 7 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber ruft sieben magische Augäpfel hervor, die in einem Kreis über dem Kopf des Anwenders schweben. Jedes Auge hat eine defensive und eine offensive Fähigkeit, es kann jedoch jeweils nur eine dieser beiden Fähigkeiten verwendet werden, bevor es seine Wirkung verliert. Wenn der Zauber "Sieben Augen" vor Ablauf der Wirkungsdauer nochmals angewendet wird, bleibt er unwirksam, unabhängig davon, ob noch Augen übrig sind. Die Kräfte der einzelnen Augen sind im Folgenden beschrieben. -Auge der Gedanken - dieses Auge beschützt den Anwender vor mentalen Angriffen, wie beispielsweise Bezauberung, Gefühl oder Furcht. Das Auge kann als Magier-Zauber des ersten Grades "Personen bezaubern" angewendet werden. -Auge des Schwertes - dieses Auge wehrt den ersten körperlichen Angriff ab, der den Anwender trifft. Das Auge kann als Magier-Zauber des ersten Grades "Magisches Geschoss" (5 Geschosse) verwendet werden. -Auge des Magiers - dieses Auge absorbiert einen Angriff mit Feuer-, Kälte- oder Säureschaden. Das Auge kann als Magier-Zauber des dritten Grades "Blitzstrahl" (4-32 Schadenspunkte) verwendet werden. -Auge des Giftes - dieses Auge stoppt einen Angriff mit Gift oder macht ihn unwirksam. Außerdem kann das Auge zum Vergiften eines Wesens verwendet werden, wobei es dem Opfer in 30 Sekunden insgesamt 30 Schadenspunkte zufügt. -Auge des Geistes - dieses Auge blockiert einen Angriff, der sofort zum Tode führen würde (Todeszauber, Finger des Todes, Wort der Macht "Tod", Lebende töten, Zerstörung). Stattdessen kann der Zauberer die Kraft des Auges auch als "Strahl der Schwächung" verwenden, wodurch die Stärke des Opfers um 5 Punkte abnimmt, seine Treffsicherheit herabgesetzt wird und die vom Opfer zugefügten Schadenspunkte reduziert werden. -Auge der Stärke - dieses Auge blockiert eine Wirkung von Betäubung, Taubheit, Blindheit oder Stille. Alternativ kann es als der Magier-Zauber des vierten Grades "Brüllen" verwendet werden. -Auge des Steines - dieses Auge schirmt den Anwender von einem einzelnen Versteinerungsangriff ab. Es kann auch als der Magier-Zauber des dritten Grades "Personen festhalten" verwendet werden. -Weitere Anwendungen des Zaubers "Sieben Augen" schlagen fehl, bevor der ursprüngliche Zauber unwirksam wird, unabhängig davon, ob noch Augen übrig sind.~ -@212=~Sieben Augen~ -@211=~Malavons Wut~ -@210=~Malavons Wut -(Hervorrufung) -Grad: 7 -Reichweite: Speziell -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 -Wirkungsbereich: 5 Meter Radius um den Anwender -Rettungswurf: Rettungswurf gegen Zauber zur Halbierung des Schadens -Malavons Wut wurde von dem Dunkelelfen-Zauberer Malavon geschaffen. Sie feuert Wurfpfeile aus reiner Energie aus dem Körper des Anwenders ab; diese fliegen in alle Richtungen und treffen Freunde und Feinde zugleich. Die kleinen magischen Keile verursachen 20-80 Schadenspunkte durch Spitze an allem, was sie treffen. Dieser Zauberspruch ist besonders nützlich, wenn ein Magier von Feinden umzingelt ist.~ -@209=~Malavons Wut~ -@208=~Scharfer Schnitt~ -@207=~Tod~ -@206=~Untoter zerstört~ -@205=~Äußere Ebene zerstört~ -@204=~Schatten~ -@203=~Schatten (Illusion/Hirngespinst) -Grad: 6 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 6 -Wirkungsbereich: Ein Würfel mit 6 m Kantenlänge -Rettungswurf: Speziell -Dies ist ein Zauberspruch, der ähnlich funktioniert wie Schattenmonster und Halbschattenmonster. Er ermöglicht es dem Anwender, illusionäre Wesen aus dem Material der Halbebene zu erschaffen. Diese sind stärker als die Schatten, die durch Schattenmonster und Halbschattenmonster beschworen werden; sie gehorchen dem Anwender so lange, bis der Zauber erlischt oder die Schatten getötet werden.~ -@202=~Schatten~ -@201=~Leichnamsberührung~ -@200=~Leichnamsberührung~ -@199=~Leichnamsberührung -(Nekromantie) -Grad: 6 -Reichweite: Berührung -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 6 -Wirkungsbereich: Anwender -Rettungswurf: Speziell -Dieser Zauberspruch verleiht dem Anwender die Kräfte der Leichnamsberührung und die Immunität eines Leichnams. Der Zauberer wird immun gegen Lähmung und Angst, während der Zauber wirkt, und seine Hände strahlen ein unheimliches, grünes Licht ab, das einem Ziel einen Schaden von 1-10 Punkten zufügen und es lähmen kann, es sei denn, das Ziel führt einen Rettungswurf gegen Lähmung aus. Dieser Zauber wirkt nicht auf Untote.~ -@198=~Leichnamsberührung~ -@197=~Magie bannen~ -@196=~Antimagische Schutzhülle~ -@195=~Antimagische Schutzhülle -(Bannzauber) -Grad: 6 -Reichweite: Anwender -Wirkungsdauer: 1 Phase pro Stufe (Rettungswurf) -Zeitaufwand: 1 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber umgibt den Anwender mit einer unsichtbaren Barriere, die sich mit ihm bewegt. Diese Barriere macht den Zauberer immun gegen jegliche magischen Angriffe, verhindert allerdings auch, dass Zauber durch die Hülle nach außen dringen.~ -@194=~Antimagische Schutzhülle~ -@193=~Zäher Echsenmensch~ -@192=~Goblin-Elitekämpfer~ -@191=~Goblin-Elitekämpfer~ -@190=~Halbschattenmonster~ -@189=~Halbschattenmonster -(Illusion/Hirngespinst) -Grad: 5 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 5 -Wirkungsbereich: Ein Würfel mit 6 m Kantenlänge -Rettungswurf: Halbierung -Dieser Zauberspruch funktioniert ähnlich wie Schattenmonster, der Spruch für Zauberer der 4. Stufe. Allerdings sind die beschworenen Wesen hier sehr viel stärker: Sie besitzen 40 % der Trefferpunkte ihrer realen Gegenspieler.~ -@188=~Halbschattenmonster~ -@187=~Trollwaffe~ -@186=~Troll~ -@185=~Troll~ -@184=~Schattenmonster~ -@183=~Schattenmonster -(Illusion/Hirngespinst) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 4 -Wirkungsbereich: Ein Würfel mit 6 m Kantenlänge -Rettungswurf: Speziell -Dieser Zauberspruch verformt Material aus der Halbebene des Schattens in illusionäre Monster. Diese Monster werden durch Trefferwürfel mit einer Augenzahl zwischen 1 und der Stufe des Anwenders solange eines nach dem anderen beschworen, bis die gesamte Augenzahl für die beschworenen Wesen der Stufe des Anwenders entspricht. (Zum Beispiel könnte ein Zauberer der 15. Stufe in einer Runde ein Wesen der 10. Stufe beschwören; in der nächsten Runde könnte als nächstes eine Wesen auftreten, das durch eine Augenzahl zwischen 1 und 5 beschworen wird, und so weiter.) Diese Schattenwesen haben nur 20 % der Trefferpunkte ihrer realen Gegenspieler, obwohl ihre Angriffe denselben Schaden verursachen.~ -@182=~Schattenmonster~ -@181=~Beschleunigt~ -@180=~Verlangsamen~ -@179=~Verlangsamt~ -@178=~Schneller Rückzug (Veränderung) -Grad: 1 -Reichweite: Anwender -Wirkungsdauer: 3 Runden -Zeitaufwand: 1 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber verdoppelt die normale Geschwindigkeit des Anwenders für kurze Zeit - in der Regel lange genug, um zu entkommen. Andere geschwindigkeitsverändernde Zauber, wie beispielsweise "Hast" und "Verlangsamen", haben keine Auswirkungen auf den Anwender, solange dieser Zauber noch wirksam ist. Während der Wirkungsdauer kann der Anwender weder angreifen, noch zaubern oder Gegenstände und besondere Fähigkeiten einsetzen ... nur weglaufen.~ -@177=~Schneller Rückzug~ -@176=~Mordenkainens Schwert~ -@175=~Mordenkainens Schwert~ -@174=~Mordenkainens Schwert -(Hervorrufung) -Grad: 7 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 7 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Dieser Zauber beschwört ein glänzendes Schwert herauf, das der Anwender mit der Kraft seiner Gedanken führen kann. Es trifft wie bei einem Kämpfer, der die halbe Stufe des Anwenders besitzt, und trotz der Tatsache, dass es mit der Hand geführt wird, kann es alle Wesen in Sichtweite des Anwenders treffen. Es gibt zwar keinen Bonus auf Angriffe, doch das Schwert kann Wesen treffen, die normalerweise nur mit Waffen ab +2 bezwungen werden können. Jeder Treffer fügt 5-30 Schadenspunkte zu.~ -@173=~Mordenkainens Schwert~ -@172=~Wasserelementar~ -@171=~Wasserelementar~ -@170=~Wasserelementar beschwören~ -@169=~Wasserelementare beschwören -(Herbeirufung/Beschwörung) -Grad: 5 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase/Stufe -Zeitaufwand: 1 Runde -Wirkungsbereich: Speziell -Rettungswurf: Nein -Mit diesem Zauberspruch kann der Anwender einen Elementar aus der Wasserebene herbeirufen und seinem Willen unterwerfen. Dieser Elementar kämpft dann so lange im Auftrag des Anwenders, bis die Wirkung erlischt oder der Elementar vernichtet wird.~ -@168=~Wasserelementar beschwören~ -@167=~Luftelementar~ -@166=~Luftelementar~ -@165=~Luftelementar beschwören~ -@164=~Luftelementar beschwören -Grad: 6 -Schule: Beschwörung -Reichweite: Lang -Dauer: 1 Phase/Stufe -Zeitaufwand: 9 -Bereich: Speziell -Rettungswurf: Nein -Der Zauber öffnet ein Tor zur Luftebene, durch das ein Luftelementar in der Nähe des Anwenders erscheint. Zu 60% verfügt der Elementar über 12 Trefferwürfel, zu 35% über 18 Trefferwürfel und zu 5% über 24 Trefferwürfel. Sobald der Elementar erschienen ist, muss der Anwender ihn unter seinen Willen zwingen. Der mentale Zweikampf dauert drei Runden. Zu 15% scheitert die Unterwerfung und der Elementar greift den Anwender an. Gelingt die Unterwerfung, befolgt der Elementar alle Befehle, bis die Wirkungsdauer endet oder er getötet wird. Da die Kommunikation mit dem Elementar auf telepathischem Weg erfolgt, besteht keine Gefahr, dass ein Befehl missverstanden wird, und es ist auch nicht nötig, dass der Anwender die Sprache des Elementars beherrscht.~ -@163=~Luftelementar beschwören~ -@162=~Feuerelementar~ -@161=~Feuerelementar~ -@160=~Feuerelementare beschwören~ -@159=~Feuerelementar beschwören -(Herbeirufung/Beschwörung) -Grad: 5 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase/Stufe -Zeitaufwand: 1 Runde -Wirkungsbereich: Speziell -Rettungswurf: Nein -Mit diesem Zauber kann der Anwender einen Elementar der Feuerebene herbeirufen und seinem Willen unterwerfen. Der Elementar kämpft auf der Seite des Anwenders bis er zerstört wird oder bis der Zauber erlischt.~ -@158=~Feuerelementare beschwören~ -@157=~Erdelementar~ -@156=~Erdelementar~ -@155=~Erdelementare beschwören~ -@154=~Erdelementar beschwören -(Herbeirufung/Beschwörung) -Grad: 5 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase pro Stufe -Zeitaufwand: 1 Runde -Wirkungsbereich: Speziell -Rettungswurf: Nein -Mit diesem Zauber kann der Anwender einen Elementar der Erdebene herbeirufen und seinem Willen unterwerfen. Der Elementar kämpft auf der Seite des Anwenders bis er zerstört wird oder bis der Zauber erlischt.~ -@153=~Erdelementare beschwören~ -@152=~Monster herbeirufen 3~ -@151=~Monster herbeirufen III -(Herbeirufung/Beschwörung) -Grad: 5 -Reichweite: 40 Meter -Wirkungsdauer: 4 Runden +1 Runde/Stufe -Zeitaufwand: 5 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Dieser Zauberspruch beschwört 1-4 Monster der 3. Stufe, die innerhalb der Reichweite des Zaubers erscheinen. Ihnen kann befohlen werden, die Gegner des Anwenders anzugreifen, und zwar solange, bis die Wirkung erlischt oder die Monster getötet werden.~ -@150=~Monster herbeirufen III~ -@149=~Echsenmensch~ -@148=~Echsenmensch~ -@147=~Monster herbeirufen 2~ -@146=~Monster herbeirufen II -(Herbeirufung/Beschwörung) -Grad: 4 -Reichweite: 40 Meter -Wirkungsdauer: 3 Runden + 1 Runde pro Stufe -Zeitaufwand: 4 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Dieser Zauberspruch beschwört 1-6 Monster der 2. Stufe, die innerhalb der Reichweite des Zaubers erscheinen. Ihnen kann befohlen werden, die Gegner des Anwenders anzugreifen, und zwar solange, bis die Wirkung erlischt oder die Monster getötet werden.~ -@145=~Monster herbeirufen II~ -@144=~Goblin~ -@143=~Goblin~ -@142=~Monster herbeirufen 1~ -@141=~Monster herbeirufen I -(Herbeirufung/Beschwörung) -Grad: 3 -Reichweite: 6 Meter -Wirkungsdauer: 2 Runden +1 Runde/Stufe -Zeitaufwand: 3 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Dieser Zauberspruch beschwört 2W3 Monster der 1. Stufe, die innerhalb der Reichweite des Zaubers erscheinen. Ihnen kann befohlen werden, die Gegner des Anwenders anzugreifen, und zwar solange, bis die Wirkung erlischt oder die Monster getötet werden.~ -@140=~Monster herbeirufen I~ -@139=~Angreifen~ -@138=~Minotaurus~ -@137=~Minotaurus~ -@136=~Monster herbeirufen V~ -@135=~Monster herbeirufen V -(Herbeirufung/Beschwörung) -Grad: 7 -Reichweite: 6 Meter -Wirkungsdauer: 6 Runden + 1 Runde/Stufe -Zeitaufwand: 7 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Durch Anwendung dieses Zaubers ruft der Zauberer 1W3 Monster der 5. Stufe hervor, die innerhalb der Reichweite des Zaubers erscheinen. Ihnen kann befohlen werden, die Gegner des Anwenders solange anzugreifen, bis der Zauber erlischt oder die Monster getötet werden.~ -@134=~Monster herbeirufen V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamander~ -@130=~Salamander~ -@129=~Frostsalamander~ -@128=~Frostsalamander~ -@127=~Monster herbeirufen VI~ -@126=~Monster herbeirufen VI -(Herbeirufung/Beschwörung) -Grad: 8 -Reichweite: 40 Meter -Wirkungsdauer: 7 Runden + 1 Runde/Stufe -Zeitaufwand: 8 -Wirkungsbereich: Besonderer Bereich -Rettungswurf: Nein -Mit dem Ausspruch dieses Zaubers werden 1-3 Monster der Stufe 6 heraufbeschworen. Diese erscheinen in einem Bereich innerhalb der Reichweite des Zaubers und greifen die Gegner des Anwenders solange an, bis der Zauber gebrochen ist oder die Monster getötet wurden.~ -@125=~Monster herbeirufenVI~ -@124=~Angreifen~ -@123=~Erdkoloss~ -@122=~Erdkoloss~ -@121=~Knochenwachen-Skelett~ -@120=~Knochenwachen-Skelett~ -@119=~Monster herbeirufen VII~ -@118=~Monster herbeirufen VII -(Herbeirufung/Beschwörung) -Grad: 9 -Reichweite: 6 Meter -Wirkungsdauer: 8 Runden + 1 Runde/Stufe -Zeitaufwand: 9 -Wirkungsbereich: Speziell -Rettungswurf: Nein -Mit dem Ausspruch dieses Zaubers werden 1W2 Monster der Stufen 7 oder 8 heraufbeschworen. Diese erscheinen in einem Bereich innerhalb der Reichweite des Zaubers und können die Gegner des Anwenders solange angreifen, bis die Wirkungsdauer zu Ende ist oder die Monster getötet wurden.~ -@117=~Monster herbeirufen VII~ -@116=~Monster herbeirufen IV~ -@115=~Monster herbeirufen IV -(Herbeirufung/Beschwörung) -Grad: 6 -Reichweite: 40 Meter -Wirkungsdauer: 5 Runden + 1 Runde/Stufe -Zeitaufwand: 6 - Wirkungsbereich: Speziell -Rettungswurf: Nein -Durch Anwendung dieses Zaubers ruft der Zauberer 1-3 Monster der 4. Stufe hervor, die innerhalb der Reichweite des Zaubers erscheinen. Ihnen kann befohlen werden, die Gegner des Anwenders solange anzugreifen, bis der Zauber erlischt oder die Monster getötet werden.~ -@114=~Monster herbeirufen IV~ -@113=~Schädel~ -@112=~Monstertransparenz -Do not translate~ -@111=~Monstertransparenz-Gegenstand~ -@110=~Schatten~ -@109=~Schatten~ -@108=~Schatten beschwören~ -@107=~Schatten beschwören -(Herbeirufung/Beschwörung, Nekromantie) -Grad: 5 -Reichweite: 10 Meter -Wirkungsdauer: 1 Runde + 1 Runde pro Stufe -Zeitaufwand: 5 -Wirkungsbereich: Ein Würfel mit 3 m Kantenlänge -Rettungswurf: Nein -Dieser Zauberspruch beschwört einen Schatten je drei Stufen des Anwenders. Dieser Schatten gehorcht den Befehlen des Anwenders: Er greift dessen Feinde an oder führt irgendwelche Aufgaben aus, bis die Wirkung erlischt oder die Schatten getötet werden.~ -@106=~Schatten beschwören~ -@105=~Eisenfaust~ -@104=~Eisenfaust~ -@103=~Von einer üblen Krankheit befallen~ -@102=~Krank~ -@101=~Vergiftet~ -@100=~Vergiften~ -@99=~Eisenkörper~ -@98=~Eisenkörper (Veränderung) -Grad: 8 -Reichweite: Anwender -Wirkungsdauer: 2 Phasen -Zeitaufwand: 8 -Wirkungsbereich: Anwender -Rettungswurf: Keiner -Dieser Zauber verwandelt den Körper des Anwenders in lebendes Eisen, sodass er eine Reihe mächtiger Abwehrkräfte und Fähigkeiten gewinnt. Während der Wirkungsdauer des Zaubers ist der Anwender 100 % resistent gegen Elektrizität, 50 % resistent gegen Feuer und 25 % resistent gegen Schaden durch Wucht. Alle Zauber, die die Atmung oder die physische Kondition des Anwenders beeinträchtigen würden, bleiben ohne Wirkung. Außerdem wird die Stärke des Anwenders auf 25 erhöht, und er kann zweimal pro Runde mit Eisenfäusten angreifen, die 2-8 Schadenspunkte anrichten; zusätzlich erhält der Anwender den entsprechenden Stärkebonus. Unglücklicherweise werden die Bewegungen des Anwenders jedoch verlangsamt und leicht unkoordiniert, sodass seine Geschwindigkeit auf 25 % seiner normalen Geschwindigkeit herabgesetzt wird und er keinen anderen Zauber anwenden kann, solange der Eisenkörper noch wirkt.~ -@97=~Eisenkörper~ -@96=~ist ohnmächtig~ -@95=~Lautes Brüllen~ -@94=~Lautes Brüllen (Anrufung) -Grad: 8 -Reichweite: Anwender -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 -Wirkungsbereich: 10 Meter lang, Umkreis von 3 Metern -Rettungswurf: 1/2 -Wenn der Anwender das "Laute Brüllen" ausstößt, setzt er eine betäubende Kraft aus seinem Mund frei, die kegelförmig 10 Meter lang und mit einem Durchmesser von 3 Metern ausströmt. Das "Laute Brüllen" beansprucht den Anwender stark und ist daher für ihn nicht ganz ungefährlich. Er verliert 2-8 Trefferpunkte und muss einen Rettungswurf gegen Zauber durchführen, um nicht eine Phase lang das Bewusstsein zu verlieren. Wesen mit 5 oder weniger Trefferwürfeln, die vom Lauten Brüllen erfasst werden, sterben augenblicklich. Alle anderen Wesen im Wirkungsbereich müssen einen Rettungswurf gegen Zauber durchführen. Schlägt dieser fehl, werden sie 2 Runden lang betäubt, 4 Runden lang taub und erleiden 4-48 Schadenspunkte. Wesen, denen der Rettungswurf gelingt, werden 1 Runde lang betäubt, 2 Runden lang taub und erleiden 2-24 Schadenspunkte.~ -@93=~Lautes Brüllen~ -@92=~~ -@91=~Bezaubert~ -@90=~Mit schreckenszauber bezaubert~ -@89=~Beherrscht~ -@88=~Moralisches Versagen: Panik~ -@87=~Berauscht~ -@86=~ist verwirrt~ -@85=~Striktes Denken~ -@84=~Festgehalten~ -@83=~ist gelähmt~ -@82=~Festgehalten~ -@81=~Gedankenleere~ -@80=~Gedankenleere (Bannzauber) -Grad: 8 -Reichweite: Anwender -Wirkungsdauer: 1 Tag -Zeitaufwand: 1 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Bei Gedankenleere werden die Gedanken eines Wesens zur besseren Selbstbeherrschung und zur Wahrung der Privatsphäre von nahezu allen mentalen Effekten abgeschirmt. Dies sind zum Beispiel: Bezauberung, Befehl, Beherrschung, Angst, Schwachsinn sowie Ausspähungszauber mithilfe von Kristallkugeln und anderen wahrsagerischen Methoden.~ -@79=~Gedankenleere~ -@78=~Ersticken~ -@77=~Ersticken (Veränderung) -Grad: 7 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 4 Runden -Zeitaufwand: 7 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: 1/2 -Dieser Zauber entzieht allen Wesen im Wirkungsbereich den Atem. Wesen, die nicht atmen, werden durch den Zauber nicht betroffen. Erstickende Wesen erleiden einen Abzug von -4 auf ihre Rüstungsklasse, -4 auf ihre Trefferpunkte und -6 auf ihre Geschicklichkeit; sie haben pro Runde einen Angriff weniger, bewegen sich mit halber Geschwindigkeit und erleiden pro Runde 4-32 Schadenspunkte. Bei einem erfolgreichen Rettungswurf erleidet das Opfer lediglich einen Schaden von 2-16 Schadenspunkten; alle anderen Wirkungen werden negiert. Die Wirkung beginnt nachzulassen, wenn das Wesen sich aus dem Wirkungsbereich entfernt, wobei ein Charakter jedoch eine Runde brauchen kann, um wieder zu Atem zu kommen.~ -@76=~Ersticken~ -@75=~Säuresturm~ -@74=~Säuresturm -(Hervorrufung) -Grad: 7 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 7 -Wirkungsbereich: 7 Meter Radius -Rettungswurf: Halbierung -Dieser Zauberspruch lässt einen Säureregen auf den Wirkungsbereich niedergehen. Dabei verursacht er 1-4 Schadenspunkte in den ersten drei Runden, 1-6 Trefferpunkte in den nächsten drei Runden und 1-8 Trefferpunkte in jeder darauffolgenden Runde. Das Verlassen des Wirkungsbereichs hält den Schaden nicht fern - die Säure haftet auf der Haut, und jedes Wesen, das sich im Wirkungsbereich befindet, wenn der Säuresturm losgeht, kassiert so lange Schadenspunkte, bis der Zauber erlischt. Wesen, die in die Säurewolke geraten, können einen Rettungswurf gegen Zauber ausführen, der im Erfolgsfall den Schaden halbiert (nur in der jeweiligen Runde).~ -@73=~Säuresturm~ -@72=~Trollische Regeneration~ -@71=~Trollische Regeneration (Nekromantie) -Grad: 6 -Reichweite: Anwender -Wirkungsdauer: 2 Phasen -Zeitaufwand: 6 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauber verleiht dem Anwender die Unverwüstlichkeit eines Trolls, wodurch der Anwender pro Runde 5 Trefferpunkte bis zu seinen maximalen Trefferpunkten wiederherstellen kann.~ -@70=~Trollische Regeneration~ -@69=~Skelett~ -@68=~Skelett~ -@67=~Seelenfresser~ -@66=~Seelenfresser (Nekromantie) -Grad: 6 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 5 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: Nein -Durch diesen Zauber werden jedem lebendigen Wesen in einem Radius von 3 Metern 3-24 Schadenspunkte zugefügt. Jedes Wesen, das infolge dieses Schadens stirbt, wird völlig ausgelöscht, und seine Substanz wird zu einem Skelett mit 3 TW, das dem Anwender dienen muss. Außerdem erhält der Anwender für jedes Wesen, das so stirbt, eine Phase lang einen Bonus von +1 auf seine Stärke, Geschicklichkeit und seine Konstitution.~ -@65=~Seelenfresser~ -@64=~Knochenwurfpfeil~ -@63=~Knochenwurfpfeil~ -@62=~Knochenwurfpfeile~ -@61=~Knochenwurfpfeile (Nekromantie) -Grad: 6 -Reichweite: Anwender -Wirkungsdauer: 5 Runden -Zeitaufwand: 5 -Wirkungsbereich: Anwender -Rettungswurf: Keiner -Dieser Zauber erschafft 9 Wurfpfeile, die vom Anwender verwendet werden können und nicht abgelegt werden können, solange der Zauber wirkt. Die Wurfpfeile sind +3 und fügen einen Schaden von 1-4 Punkten zu. Ein Wesen, das von einem Wurfpfeil getroffen wird, muss einen Rettungswurf gegen Tod durchführen oder erleidet weitere 2-12 Schadenspunkte und büßt 5 Runden lang 3 Stärkepunkte ein. Die Waffenfertigkeit des Anwenders mit Wurfpfeilen (bzw. ihr Fehlen) hat keine Auswirkungen auf die Treffsicherheit der Wurfpfeile.~ -@60=~Knochenwurfpfeile~ -@59=~Otilukes Frostsphäre~ -@58=~Otilukes Frostsphäre -(Veränderung, Hervorrufung) -Grad: 6 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Speziell -Zeitaufwand: 6 -Wirkungsbereich: Speziell -Rettungswurf: Keine Wirkung -Mit diesem Zauberspruch wird ein Kältestrahl auf ein Wesen gerichtet. Die Reichweite des Strahls entspricht der Sichtweite des Zauberers und verursacht 3-6 Punkte Kälteschaden pro Stufe des Anwenders. Führt das Ziel jedoch einen Rettungswurf aus, weicht es dem Strahl aus und entgeht dem Schaden.~ -@57=~Otilukes Frostsphäre~ -@56=~Flammenschleier~ -@55=~Flammenschleier (Hervorrufung) -Grad: 5 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde/2 Stufen (speziell) -Zeitaufwand: 5 -Wirkungsbereich: 1 Wesen -Rettungswurf: Keine Wirkung -Dieser Zauberspruch lässt ein Wesen in Flammen aufgehen, wenn ihm der Rettungswurf gegen Zauber misslingt. Durch die Flammen erleidet das angegriffene Wesen 2-12 Schadenspunkte pro Runde. Außerdem schnellen aus dem brennenden Ziel während der gesamten Wirkungsdauer des Zaubers Flammen hervor, die bewirken, dass alle Wesen im Umkreis von 3 Metern 1-4 Schadenspunkte durch die Flammen erleiden. Zusätzlich müssen alle von den Flammen getroffenen Wesen einen Rettungszauber gegen Zauber ausführen, damit der Zauber nicht auf sie übergreift. Dieser Zauber ist besonders nützlich, um ganze Banden von Trollen und Frostsalamandern zu zerstreuen.~ -@54=~Flammenschleier~ -@53=~~ -@52=~Vitriolkugel~ -@51=~Vitriolkugel (Herbeirufung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Speziell -Zeitaufwand: 4 -Wirkungsbereich: Speziell -Rettungswurf: Speziell -Mit diesem Zauber wird eine Kugel leuchtend-smaragdgrüner Säure herbeigerufen, die der Anwender auf ein beliebiges Ziel im Wirkungsbereich richten kann. Erreicht die Kugel das Ziel, explodiert sie und tränkt das Opfer in starker Säure. Das Opfer erleidet 1-4 Schadenspunkte durch Säure pro Stufe des Anwenders bis zu einem Maximum von 12-48 Schadenspunkten. Nach dem anfänglichen Schaden muss dem Opfer ein Rettungswurf gelingen, um noch mehr Schaden abzuwenden. Wenn der Rettungswurf fehlschlägt, erleidet das Opfer auch in den folgenden Runden Säureschaden, wobei in jeder Runde die Würfelzahl jeweils um zwei reduziert wird. Beispielsweise fügt ein Zauberer der 8. Stufe seinem Opfer mit diesem Zauber in der ersten Runde 8-32 Schadenspunkte, in der zweiten Runde 6-24 Schadenspunkte, in der dritten Runde 4-16 Schadenspunkte und in der vierten Runde 2-8 Schadenspunkte zu; in der fünften Runde verliert der Zauber dann seine Wirkung. Dem Opfer steht jede Runde ein Rettungswurf gegen Zauber zu, um weitere Schäden zu ver~ -@50=~Vitriolkugel~ -@49=~Taubheit~ -@48=~Brüllen~ -@47=~Brüllen (Anrufung) -Grad: 4 -Reichweite: Anwender -Wirkungsdauer: Augenblicklich -Zeitaufwand: 1 -Wirkungsbereich: 10 Meter lang, Umkreis von 3 Metern -Rettungswurf: 1/2 -Der Zauber "Brüllen" verleiht dem Anwender eine unglaubliche Stimmkraft. Er kann ein ohrenbetäubendes Gebrüll ausstoßen, das sich von seinem Mund in einem kegelförmigen Bereich von 10 Metern Länge und bis zu 3 Metern Durchmesser ausbreitet. Jedes Wesen in diesem Wirkungsbereich wird 2-12 Runden lang taub und erleidet 4-24 Schadenspunkte. Ein erfolgreicher Rettungswurf gegen Zauber vermeidet die Taubheit und halbiert die Zahl der Schadenspunkte.~ -@46=~Brüllen~ -@45=~Mordenkainens Kraftgeschosse~ -@44=~Mordenkainens Kraftgeschosse -(Anrufung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 4 -Wirkungsbereich: Speziell -Rettungswurf: Speziell -Dieser Zauber erzeugt eine leuchtende Kugel magischer Energie, die aus der Hand des Anwenders hervorschießt und das Ziel unfehlbar erreicht, wie ein magischer Geschosszauber. Der Zauberer kann auf der 7. Stufe ein Geschoss und für jede 3. nach der 7. Stufe ein weiteres Geschoss erzeugen. Mit anderen Worten erzeugt er zwei Geschosse auf der 10. Stufe, drei auf der 13., vier auf der 16. usw., bis zu einem Maximum von sieben Geschossen auf der 25. Stufe. Jedes Geschoss fügt dem Opfer 2-8 Schadenspunkte zu und bricht dann in einen Erschütterungsstoß mit einem Radius von 1,5 Meter auseinander, der pro Stufe des Anwenders 1 Schadenspunkt anrichtet. Ein Zauberer der 12. Stufe könnte beispielsweise zwei Kraftgeschosse herbeirufen, von denen jedes beim Treffer 2-8+12 Schadenspunkte anrichtet. Getroffene Wesen können einen Rettungswurf gegen Zauber versuchen, um den Schaden durch Erschütterung unwirksam zu machen; bei einem Treffer durch das Geschoss selbst ist jedoch kein Rettungswurf möglich. Der Magier-Zauber 1. Gra~ -@43=~Mordenkainens Kraftgeschosse~ -@42=~Hoffnungslosigkeit~ -@41=~Betäubt~ -@40=~Gefühl: Hoffnungslosigkeit~ -@39=~Gefühl: Hoffnungslosigkeit -(Verzauberung/Bezauberung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Phase -Zeitaufwand: 4 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: keine Wirkung -Dieser Zauberspruch bewirkt, dass sich innerhalb des Wirkungsbereiches ein Gefühl der Hoffnungslosigkeit ausbreitet. Alle Wesen, die von diesem Zauberspruch getroffen werden, bleiben einfach stehen und rühren sich die ganze Wirkungsdauer lang nicht.~ -@38=~Gefühl: Hoffnungslosigkeit~ -@37=~Panik~ -@36=~Gefühl: Furcht~ -@35=~Gefühl: Furcht -(Verzauberung/Bezauberung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 5 Runden -Zeitaufwand: 4 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: keine Wirkung -Dieser Zauberspruch ruft im Wirkungsbereich ein Gefühl der Furcht hervor. Alle betroffenen Wesen fliehen 5 Runden lang.~ -@34=~Gefühl: Furcht~ -@33=~Gefühl: Hoffnung~ -@32=~Gefühl: Hoffnung -(Verzauberung/Bezauberung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 5 Phasen -Zeitaufwand: 4 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: keine Wirkung -Dieser Zauberspruch ruft im Wirkungsbereich ein Gefühl der Hoffnung hervor. Alle betroffenen Wesen erhalten einen Moralschub und einen Zugewinn von +2 auf ihre Rettungs-, Angriffs- und Schadenswürfe.~ -@31=~Gefühl: Hoffnung~ -@30=~Gefühl: Mut~ -@29=~Gefühl: Mut -(Verzauberung/Bezauberung) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 5 Phasen -Zeitaufwand: 4 -Wirkungsbereich: Radius von 3 Metern -Rettungswurf: keine Wirkung -Dieser Zauberspruch ruft im Wirkungsbereich ein Gefühl des Mutes hervor. Alle betroffenen Wesen bekommen +1 auf ihre Trefferwürfe, +3 auf die Schadenswürfe und +5 auf die vorübergehenden Trefferpunkte (dadurch können sie ihre maximale Trefferpunktzahl überschreiten). Dieser Zauber annulliert alle Ängste im Wirkungsbereich, die wirkten, während der Zauber ausgesprochen wurde.~ -@28=~Gefühl: Mut~ -@27=~Tobend~ -@26=~Beltyns Brennendes Blut~ -@25=~Beltyns Brennendes Blut -(Nekromantie) -Grad: 4 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: 1 Runde/2 Stufen -Zeitaufwand: 4 -Wirkungsbereich: 1 Wesen -Rettungswurf: Keine Wirkung -Dieser Zauberspruch entzündet das Blut des Ziels und verursacht pro Runde 3-12 Schadenspunkte und raubt dem Opfer die Sinne vor Schmerz. Das Ziel kann jede Runde einen Rettungswurf gegen Zauber anwenden; gelingt dieser, werden Schaden und Berserkerzustand annulliert. Der Zauberspruch zeigt keine Wirkung bei Untoten oder Wesen von anderen Existenzebenen, die kein Blut haben (zum Beispiel Elementare). Bei Wesen, die gegen Feuer widerstandsfähig sind, wird der Schaden durch diesen Zauberspruch reduziert oder annulliert.~ -@24=~Beltyns Brennendes Blut~ -@23=~Lanze der Zerschlagung~ -@22=~Lanze der Zerschlagung (Anrufung) -Grad: 3 -Reichweite: 20 Meter -Wirkungsdauer: Augenblicklich -Zeitaufwand: 3 -Wirkungsbereich: Speziell -Rettungswurf: 1/2 -Dieser Zauber erzeugt eine Kraftlanze, die vom Anwender bis zu einem angegebenen Punkt in 18 Metern Entfernung reicht. Wesen, die in den Weg der Lanze geraten, erleiden 5-20 Schadenspunkte durch Wucht, +2 Schadenspunkte pro Stufe des Anwenders (maximal +30). Die Opfer können einen Rettungswurf gegen Zauber durchführen und den Schaden so halbieren.~ -@21=~Lanze der Zerschlagung~ -@20=~Betäubt~ -@19=~Eislanze~ -@18=~Eislanze -(Hervorrufung) -Grad: 3 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 3 -Wirkungsbereich: 1 Lanze -Rettungswurf: Speziell -Dieser Zauberspruch feuert eine Eislanze auf ein vom Anwender bestimmtes Ziel. Die Lanze trifft automatisch, verursacht 5-30 Schadenspunkte und zwingt das Ziel, einen Rettungswurf gegen Zauber auszuführen, wenn es nicht 1-4 Runden lang betäubt bleiben will.~ -@17=~Eislanze~ -@16=~Geschicklichkeits-Modifikation~ -@15=~Katzenanmut~ -@14=~Katzenanmut (Veränderung) -Grad: 2 -Reichweite: Berührung -Wirkungsdauer: 1 Stunde/Stufe -Zeitaufwand: 2 -Wirkungsbereich: 1 Wesen -Rettungswurf: Nein -Dieser Zauber erhöht auf magische Weise die Geschicklichkeit des Empfängers. In welchem Ausmaß, hängt von der Klasse des Ziels ab: Diebe gewinnen 1-8 Punkte hinzu, Kämpfer und Magier 1-6 Punkte, und Kleriker 1-4 Punkte. Die "Katzenanmut" kann die Geschicklichkeit des Ziels nicht auf mehr als 20 erhöhen.~ -@13=~Katzenanmut~ -@12=~Dekastab~ -@11=~Dekastab~ -@10=~Dekastab~ -@9=~Dekastab -(Hervorrufung) -Grad: 2 -Reichweite: Anwender -Wirkungsdauer: 1 Runde pro Stufe -Zeitaufwand: 2 -Wirkungsbereich: Anwender -Rettungswurf: Nein -Dieser Zauberspruch legt einen Kraftstab in die Hand des Anwenders. Dieser wird als magische Waffe benutzt, die 1-6 Schadenspunkte pro Treffer verursacht; außerdem kann er Wesen treffen, die gegen normale Waffen immun sind. Es handelt sich jedoch um einen Stab, für den Fertigkeiten im Umgang mit Stabwaffen erforderlich sind. Andernfalls führt die Verwendung des Dekastabs zu Strafpunkten. Der Stab kann seinem Ziel auch 1-2 Trefferpunkte auf einen Schlag entziehen. Diese Punkte gehen auf das Konto des Anwenders, können aber nur Schaden heilen; die Trefferpunkte werden nicht über die normale Höchstzahl hinaus erhöht.~ -@8=~Dekastab~ -@7=~Snillocs Schneeballschwarm -(Hervorrufung) -Grad: 2 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 2 -Wirkungsbereich: 8 Meter Radius -Rettungswurf: Halbierung des Schadens -Dieser Zauberspruch bewirkt, dass von einem bestimmten Punkt aus eine Ladung Schneebälle abgeschossen wird. Diese treffen alles, was sich im Wirkungsbereich befindet und verursachen 1-3 Trefferpunkte pro Stufe bis zu maximal 8-24 Trefferpunkten auf Stufe 8. Gegen feuerspeiende oder feuerbewohnende Wesen erzielen sie 1-6 Trefferpunkte pro Stufe.~ -@6=~~ -@5=~Snillocs Schneeballschwarm~ -@4=~Snillocs Schneeballschwarm -(Hervorrufung) -Grad: 2 -Reichweite: Sichtweite des Anwenders -Wirkungsdauer: Augenblicklich -Zeitaufwand: 2 -Wirkungsbereich: 8 Meter Radius -Rettungswurf: Halbierung des Schadens -Dieser Zauberspruch bewirkt, dass von einem bestimmten Punkt aus eine Ladung Schneebälle abgeschossen wird. Diese treffen alles, was sich im Wirkungsbereich befindet und verursachen 1-3 Trefferpunkte pro Stufe bis zu maximal 8-24 Trefferpunkten auf Stufe 8. Gegen feuerspeiende oder feuerbewohnende Wesen erzielen sie 1-6 Trefferpunkte pro Stufe.~ -@3=~~ -@2=~Snillocs Schneeballschwarm~ -@1=~Schriftrolle~ diff --git a/iwdification/dw/copyover/tra/en_us/iwdspells.tra b/iwdification/dw/copyover/tra/en_us/iwdspells.tra deleted file mode 100644 index d07e4a2..0000000 --- a/iwdification/dw/copyover/tra/en_us/iwdspells.tra +++ /dev/null @@ -1,1226 +0,0 @@ -@375=~War Chant of Sith—Armor Bonuses and Regeneration~ -@374=~"War Chant of Sith" -All allies within 30 ft. gain a +2 bonus to Armor Class, +10% resistance to slashing, piercing, crushing, and missile damage, and the ability to regenerate 2 Hit Points per round.~ -@373=~War Chant of Sith~ -@372=~Enthralled~ -@371=~The Siren's Yearning—Enthralls Creatures~ -@370=~"The Siren's Yearning" -All enemies within 30 ft. must save vs. Spell or become enthralled, unable to take action until 1 round passes or they take damage.~ -@369=~The Siren's Yearning~ -@368=~The Song of Kaudies—Resistant to Sound Attacks~ -@367=~"The Song of Kaudies" -All allies within 30 ft. have a 50% chance to shrug off the effects of spells such as Silence, Shout, Great Shout, Command, Greater Command, or any other sound-based attack.~ -@366=~The Song of Kaudies~ -@365=~Tymora's Melody—Luck and Skill Bonuses~ -@364=~"Tymora's Melody" -All allies within 30 ft. gain +1 to luck, +3 to Saving Throws, +10 to lore, and a +10% bonus to all of their thieving skills.~ -@363=~Tymora's Melody~ -@362=~The Tale of Curran Strongheart—Immunity to Fear~ -@361=~"The Tale of Curran Strongheart" -All allies within 30 ft. gain immunity to fear effects for as long as the song lasts, and any fear effects currently on them are removed.~ -@360=~The Tale of Curran Strongheart~ -@359=~The Ballad of Three Heroes—Combat Bonuses~ -@358=~"The Ballad of Three Heroes" -All allies within 30 ft. gain +1 to hit, +1 to damage, and +1 to all their Saving Throws.~ -@357=~The Ballad of Three Heroes~ -@356=~Chant -(Conjuration/Summoning) -Level: 2 -Sphere: Combat -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 9 -Area of Effect: 60-ft. radius -Saving Throw: None -By means of the Chant spell, the priest brings special favor upon self and party and causes harm to enemies. When the Chant spell is completed, all the priest's allies within the area of effect gain a +1 bonus to attack rolls, minimum damage rolls, and Saving Throws. Furthermore, damage dice for all effects outside a weapon's base damage is reduced by 1. For example, a 6d6 fireball will do 6d5 damage, and a flaming long sword that deals 1d8+2 slashing plus 1d3 fire damage will deal 1d8+2 slashing plus 1d2 fire damage instead. The priest's enemies suffer from the opposite effects. -Multiple chants are not cumulative. This spell requires a moderate amount of concentration by the caster, so the priest cannot cast any spells for the chant's duration, and movement is slowed by half.~ -@355=~Chant~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Boring Beetle~ -@352=~Boring Beetle~ -@351=~Bombardier Beetle~ -@350=~Bombardier Beetle~ -@349=~Giant Insect -(Alteration) -Level: 4 -Sphere: Animal -Range: Visual range of the caster -Duration: 8 hours -Casting Time: 7 -Area of Effect: Special -Saving Throw: None -This spell summons 2-3 boring beetles or bombardier beetles to the caster's side. The beetles will obey the caster until the spell expires or they are slain.~ -@348=~Giant Insect~ -@347=~Cause Critical Wounds -(Necromancy) -Level: 5 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 8 -Area of Effect: 1 creature -Saving Throw: 1/2 -By casting this spell and touching a creature, the priest deals 27 points of magic damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It can be cast only by evil-aligned characters.~ -@346=~Cause Critical Wounds~ -@345=~Cause Serious Wounds -(Necromancy) -Level: 4 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 -By casting this spell and touching a creature, the priest deals 17 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ -@344=~Cause Serious Wounds~ -@343=~Two Levels Drained~ -@342=~Energy Drain -(Necromancy) -Level: 7 -Sphere: Necromantic -Range: Touch -Duration: Permanent -Casting Time: 3 -Area of Effect: 1 creature -Saving Throw: None -Casting this spell opens a channel between the caster's plane and the Negative Energy Plane. The caster acts as a conduit between the two planes, sucking life from a victim and transferring it to the Negative Energy Plane, draining of 2 levels of experience. The target of this spell loses levels, Hit Dice, Hit Points, and abilities permanently. These levels can only be restored by a priest's Restoration spell. This spell has no effect on undead, constructs, or extraplanar creatures. It can only be cast by evil-aligned characters.~ -@341=~Energy Drain~ -@340=~Entangled~ -@339=~Shambling Mound~ -@338=~Shambling Mound~ -@337=~Stalker -(Conjuration) -Level: 7 -Sphere: Plant -Range: Visual range of the caster -Duration: 8 hours -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell creates two 11-HD shambling mounds. These creatures willingly aid the caster in combat or whatever other duties they are assigned and have the capability to carry out.~ -@336=~Stalker~ -@335=~Mist of Eldath -(Invocation) -Level: 7 -Sphere: Elemental -Range: Visual range of the caster -Duration: Instant -Casting Time: 9 -Area of Effect: 7-ft. radius -Saving Throw: None -This spell blankets the area of effect with a silver-blue mist—any creature within the mist will be cured of disease and poison and healed 25 Hit Points.~ -@334=~Mist of Eldath~ -@333=~Greater Shield of Lathander -(Conjuration) -Level: 7 -Sphere: Guardian -Range: Touch -Duration: 3 rounds -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None -This spell grants the recipient 100% Magic Resistance and immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Greater Shield of Lathander. This spell can only be cast by good-aligned characters.~ -@332=~Greater Shield of Lathander~ -@331=~Destruction -(Necromancy) -Level: 7 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 9 -Area of Effect: The caster -Saving Throw: Special -This spell instantly destroys a target, blasting it into small chunks. The victim is allowed a Save vs. Death at a penalty of -4; if successful, the target takes 8d6 points of magic damage instead of being destroyed. Destruction can only be cast by evil characters. Note that a character struck with a Destruction spell cannot be raised from the dead with a Raise Dead or Resurrection spell.~ -@330=~Destruction~ -@329=~Spell Ineffective~ -@328=~Impervious Sanctity of Mind -(Abjuration) -Level: 7 -Sphere: Protection -Range: 0 -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: The caster -Saving Throw: None -This spell steels the caster's mind against any outside influence. Charm, confusion, fear, feeblemindedness, hold, sleep, maze, berserk, and intoxication will not affect the caster as long as this spell is in effect.~ -@327=~Impervious Sanctity of Mind~ -@326=~Symbol, Hopelessness -(Conjuration/Summoning) -Level: 7 -Sphere: Guardian -Range: Visual range of the caster -Duration: 2 turns -Casting Time: 3 -Area of Effect: 15-ft. radius -Saving Throw: Neg. -Symbol, Hopelessness is a powerful enchantment that allows the priest to inscribe a symbol on the ground or any other surface. The symbol will remain there until an opponent comes too close, at which point it will explode, causing all enemies within the area of effect to make a Save vs. Spell with a -2 penalty or stand in place, overwhelmed by dejection and surrender. They will make no move to defend themselves from attack. This spell nullifies Emotion, Hope within the area of effect at the time of casting.~ -@325=~Symbol, Hopelessness~ -@324=~Wracking Pains~ -@323=~Symbol, Pain -(Conjuration/Summoning) -Level: 7 -Sphere: Guardian -Range: Visual range of the caster -Duration: 11 turns -Casting Time: 3 -Area of Effect: 15-ft. radius -Saving Throw: Neg. -All enemies within 15 ft. of the symbol of pain at the moment it is invoked must make a Save vs. Spell. Those who fail their Saving Throws are overwhelmed by pain, suffering a -4 penalty to their attack rolls, a -2 penalty to their Dexterity scores, and a -2 penalty to their Armor Class.~ -@322=~Symbol, Pain~ -@321=~Spiritual Wrath -(Invocation) -Level: 6 -Sphere: Combat -Range: Visual range of the caster -Duration: Instant -Casting Time: 2 -Area of Effect: Special -Saving Throw: 1/2 -Upon completion of this spell, the priest becomes a focus of spiritual energy, which then shoots out from the caster in four directions, like lightning bolts. All creatures in the bolts' paths take 4d10 points of magic damage (save vs. Spell for half). Creatures of the same moral alignment (good, neutral, evil) as the caster are unaffected by the spell.~ -@320=~Spiritual Wrath~ -@319=~Whirlwind -(Invocation) -Level: 6 -Sphere: Elemental Air -Range: Visual range of the caster -Duration: Special -Casting Time: 9 -Area of Effect: Special -Saving Throw: Special -This spell creates a small whirlwind within the caster's sight. The whirlwind will fly around randomly, harming friend and foe alike. The caster is immune to own spell, and elementals and other huge creatures are also unaffected. If a creature is caught in the path of the whirlwind, it takes 2d8 crushing damage, 2d8 slashing damage, and must make a Save vs. Breath Weapon or be stunned for 2 rounds. Creatures with 2 or fewer Hit Dice are automatically killed by this spell. A maximum of 8 targets can be affected, after which the whirlwind will dissipate.~ -@318=~Whirlwind~ -@317=~Entropy Shield -(Abjuration) -Level: 6 -Sphere: Protection -Range: 0 -Duration: 1 round/level -Casting Time: 9 -Area of Effect: The caster -Saving Throw: None -When cast, this spell surrounds the caster with a defensive maelstrom of energy that blocks or deflects many attacks. This gives the priest a +6 bonus to Armor Class, a +2 bonus to Saving Throws, and +50% resistance to electricity, fire, cold, and acid. The priest is also immune to Flamestrike and all missile-based attacks, including missiles created by spells such as Magic Missile.~ -@316=~Entropy Shield~ -@315=~Mass Cause Light Wounds -(Necromancy) -Level: 5 -Sphere: Healing -Range: 0 -Duration: Instant -Casting Time: 5 -Area of Effect: 15-ft. radius -Saving Throw: 1/2 -By casting this spell, the priest deals 1d8 + 1/level points of damage to nearby enemies. A successful Save vs. Spell halves the damage. This spell has no effect on undead, constructs, or extraplanar creatures. It can only be cast by evil-aligned characters.~ -@314=~Mass Cause Light Wounds~ -@313=~Animal Rage -(Enchantment) -Level: 5 -Sphere: Combat -Range: Touch -Duration: 15 rounds -Casting Time: 8 -Area of Effect: 1 creature -Saving Throw: None -This spell imbues the target creature with animal ferocity. The target creature gains a Strength score of 19, +20 Hit Points, +20% movement rate, and a +2 bonus to all Saving Throws. The target loses the ability to cast spells while Animal Rage is in effect; when enemies are within sight, immediately attacks in melee, using whatever is in hand. While this spell is in effect, there is a 5% chance per round that the target will go berserk, attacking friend and foe alike.~ -@312=~Animal Rage~ -@311=~Undead Ward -(Necromancy) -Level: 5 -Sphere: Wards -Range: 0 -Duration: 1 turn -Casting Time: 7 -Area of Effect: 10-ft. radius -Saving Throw: None -This spell amplifies the influence a priest has over undead, though it is tied to the area surrounding the priest at the moment of its casting and does not move. Any undead creature entering the area of effect is affected as if turned by the priest that cast this spell. If the turning fails, the undead creature is immune to further turning attempts by the spell unless it leaves and reenters the area of effect.~ -@310=~Undead Ward~ -@309=~Shield of Lathander -(Conjuration) -Level: 5 -Sphere: Guardian -Range: Touch -Duration: 2 rounds -Casting Time: 8 -Area of Effect: 1 creature -Saving Throw: None -This spell grants the recipient immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Shield of Lathander. This spell cannot be cast by evil-aligned characters.~ -@308=~Shield of Lathander~ -@307=~Spike Stones -(Alteration, Enchantment) -Level: 5 -Sphere: Elemental Earth -Range: Visual range of the caster -Duration: 12 rounds -Casting Time: 6 -Area of Effect: 8-ft. radius -Saving Throw: Special -This spell warps the surrounding rock, reshaping the terrain into spiked projections that blend into the background. Any creature entering the area takes 2d4 Hit Points of piercing damage per round and must make a Save vs. Spell or have its movement rate reduced by 30%.~ -@306=~Spike Stones~ -@305=~Righteous Wrath of the Faithful -(Enchantment/Charm) -Level: 5 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 8 -Area of Effect: 17-ft. radius -Saving Throw: None -This spell bestows a form of divine madness upon the priest's allies, improving their combat skills. All the priest's allies in the area of effect gain a +1 to attack rolls and Saving Throws, plus 8 bonus Hit Points for the duration of the spell (these Hit Points can take a target beyond Hit Point maximum). Allies of the same alignment, however, gain an extra attack every round (canceling haste), a +2 bonus to their attack rolls, damage rolls, and Saving Throws, and immunity to charm and hold spells. Anyone affected by Righteous Wrath of the Faithful will suffer fatigue when the spell wears off.~ -@304=~Righteous Wrath of the Faithful~ -@303=~Wall of Moonlight -(Invocation) -Level: 4 -Sphere: Protection, Sun -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 7 -Area of Effect: 8 ft. long, 2 ft. wide wall -Saving Throw: None -This spell invokes a shimmering tapestry of blue-white force. This wall is intangible, requiring no physical anchor, and can easily be passed through. Evil creatures passing through the wall take 2d10 magic damage; evil undead creatures take 5d10. A creature that has passed through the wall can only take damage from it once.~ -@302=~Wall of Moonlight~ -@301=~Thorn Spray -(Alteration) -Level: 4 -Sphere: Plant -Range: 30 ft. -Duration: Instant -Casting Time: 3 -Area of Effect: 17-ft. cone with 90-deg. arc -Saving Throw: 1/2 -By means of this spell, the caster can cause a spray of barbs, spikes, thorns, and spines to spring forth from hand. The thorn spray covers a 17-ft.-long cone, inflicting 2d10 points of piercing damage to all creatures within the area of effect, or 1d10 points of damage if a Save vs. Death is successful.~ -@300=~Thorn Spray~ -@299=~Unconscious~ -@298=~Smashing Wave -(Invocation) -Level: 4 -Sphere: Elemental Water -Range: 100 ft. -Duration: Instant -Casting Time: 9 -Area of Effect: Special -Saving Throw: Special -This spell summons a 5-ft. wide wave of water that moves in the direction willed by the caster, striking all in its path with massive force. The wave deals 4d10 points of crushing damage; in addition, struck creatures may be either stunned (25% chance) or knocked unconscious (5% chance) for 2 rounds. If the creature struck makes a successful Save vs. Breath Weapon, the damage is reduced by half and the creature avoids being stunned or knocked unconscious.~ -@297=~Smashing Wave~ -@296=~Star Metal Cudgel~ -@295=~Star Metal Cudgel~ -@294=~Star Metal Cudgel -(Conjuration) -Level: 4 -Sphere: Combat -Range: 0 -Duration: 3 turns -Casting Time: 7 -Area of Effect: The caster -Saving Throw: None -This spell creates a meteoric iron magical club that deals 1d6+2 points of crushing damage, confers a +2 bonus to attack rolls, and is treated as a +4 weapon for purposes of what it can hit. Strength, proficiency, and specialization bonuses and penalties apply normally. The club deals an additional 2d6 points of crushing damage against unnatural creatures (undead, elementals, golems, outer-planar creatures, etc.).~ -@293=~Star Metal Cudgel~ -@292=~Unfailing Endurance -(Necromancy) -Level: 4 -Sphere: Necromantic -Range: Touch -Duration: Instant -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None -This spell restores the stamina of the creature touched, eliminating any fatigue.~ -@291=~Unfailing Endurance~ -@290=~Cloud of Pestilence -(Alteration) -Level: 4 -Sphere: Combat, Elemental Air -Range: Visual range of the caster -Duration: 4 rounds -Casting Time: 7 -Area of Effect: 12-ft. radius -Saving Throw: Neg. -This spell transforms the air in a 12-ft. radius into sickening, grayish mists. The caster and non-living creatures are immune to the effects of the cloud. For every round of exposure to the disease-ridden air, a creature must save vs. Breath or suffer 3 points of magic damage, blindness, and the loss of 3 points of Strength and Dexterity. The blindness and ability score penalties last 1 turn. Cloud of Pestilence can only be cast by evil-aligned characters.~ -@289=~Cloud of Pestilence~ -@288=~Stun~ -@287=~Healed~ -@286=~Blood Rage -(Alteration) -Level: 4 -Sphere: Combat -Range: Visual range of the caster -Duration: 2 turns -Casting Time: 7 -Area of Effect: 1 creature -Saving Throw: None -This spell works only on player characters or allied creatures. When cast, the target of this spell goes berserk, attacking the nearest creature until that creature is dead, then moving on to the next target. While under Blood Rage, the target is immune to charm, sleep, fear, hold, stunning, confusion, emotion, symbol spells, and related effects. In addition, the target gains +2 to hit, +3 to damage, +2 to Strength, +10 to maximum Hit Points, and +2 to movement rate. The spell has several disadvantages, however: The Hit Points of the target are masked for the duration of the spell, and the target cannot benefit from any effect that heals Hit Points. At the end of the spell's duration, the target becomes fatigued and Strength drops to 3 for 2 turns. Blood Rage cannot affect—and cannot be cast by—creatures of lawful alignment.~ -@285=~Blood Rage~ -@284=~Recitation -(Abjuration, Invocation/Evocation) -Level: 4 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 7 -Area of Effect: 25-ft. radius -Saving Throw: None -By reciting a sacred passage or declaration, the priest invokes deity's blessing upon self and allies while sowing confusion and weakness among enemies. The priest's allies gain a +2 bonus to their attack rolls and Saving Throws, and the priest's enemies receive a -2 penalty to the same. Recitation does not nullify a Prayer spell—the two can be cast in tandem, and the effects are cumulative.~ -@283=~Recitation~ -@282=~Discharge of static electricity~ -@281=~Static Charge -(Alteration) -Level: 4 -Sphere: Weather -Range: 0 -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Visual range of the caster -Saving Throw: 1/2 -Static Charge is similar to Call Lightning, except it can be used indoors. This spell allows the caster to generate a static charge around any creature within the area of effect, dealing 2d8 points of electrical damage plus an additional 1d8 points per level of the caster (save vs. Spell for half). The charge keeps going off once every turn for the duration of the spell.~ -@280=~Static Charge~ -@279=~Produce Fire -(Alteration) -Level: 4 -Sphere: Elemental Fire -Range: Visual range of the caster -Duration: 1 round -Casting Time: 7 -Area of Effect: 4-ft. radius -Saving Throw: None -When cast, flames erupt from the target point, dealing 1d4 points of fire damage plus 1 point per level of the caster to all creatures within the spell's radius. Creatures will take damage once per round regardless of when they enter the area of effect.~ -@278=~Produce Fire~ -@277=~Favor of Ilmater -(Necromancy) -Level: 3 -Sphere: Necromantic, Protection -Range: 30 ft. -Duration: Instant -Casting Time: 6 -Area of Effect: 1 creature -Saving Throw: None -By invoking this spell, the caster switches own life force with that of the recipient, exchanging all physical injuries. The spell will only function if the caster has more Hit Points than the target before the switch is attempted. This switch is permanent until the caster uses normal methods to heal the damage. The exchange can be done from a distance so long as the spell range is not exceeded. Only the Hit Points are exchanged; the caster cannot take on other conditions from the target such as disease, poison, intoxication, and similar afflictions. -This spell cannot be cast by evil-aligned characters. It has no effect on undead, constructs, or extraplanar creatures.~ -@276=~Favor of Ilmater~ -@275=~Cause Medium Wounds -(Necromancy) -Level: 3 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 -By casting this spell and touching a creature, the priest deals 14 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. Cause Medium Wounds cannot be cast by good-aligned characters.~ -@274=~Cause Medium Wounds~ -@273=~Storm Shell -(Abjuration) -Level: 3 -Sphere: Protection, Weather -Range: 0 -Duration: 1 turn -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None -This spell surrounds the caster with a bright sphere of disruptive energy that moves with . The storm shell increases the caster's resistance to fire, cold, and electrical damage by 50%.~ -@272=~Storm Shell~ -@271=~Mold Touch -(Alteration) -Level: 3 -Sphere: Plant -Range: Touch -Duration: Special -Casting Time: 6 -Area of Effect: 10-ft. radius -Saving Throw: Special -This spell infects the creature the caster touches with a rapidly spreading brown mold. If the infected creature fails a Save vs. Spell, the infection is severe and the creature takes magic damage as follows: -1st round: 4d6 damage -2nd round: 3d6 damage -3rd round: 2d6 damage -4th round: 1d6 damage -If the Saving Throw is successful, the damage is reduced as follows: -1st round: 2d6 damage -2nd round: 1d6 damage -3rd round: 1d6 damage -Each round after the first, the nearest creature within 10 ft. of the victim must make a Save vs. Spell or be infected by the mold at full strength. This process continues until the mold fails to infect a suitable host in time. Creatures already under the effects of the mold cannot contract it again. The brown mold quickly dies once the spell expires.~ -@270=~Mold Touch~ -@269=~Cloudburst -(Invocation) -Level: 3 -Sphere: Elemental Water -Range: Visual range of the caster -Duration: 2 rounds -Casting Time: 6 -Area of Effect: 17-ft. radius -Saving Throw: None -This spell brings forth a magical rain that saturates the area of effect. All cold- and fire-dwelling creatures take 2d3 points of magic damage per round. In addition, all creatures in the area have a 50% chance per round of being struck by bolts of lightning that deal 2d6 electrical damage, with a Save vs. Spell for half. Flame Blade, Shroud of Flame, and salamander auras are extinguished by Cloudburst.~ -@268=~Cloudburst~ -@267=~Spike Growth -(Alteration) -Level: 3 -Sphere: Elemental Earth -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 6 -Area of Effect: 15-ft. radius -Saving Throw: None -This spell transforms the surrounding terrain into spiky plants. Any creature entering the area takes 1d4 points of piercing damage and 1d4 points of slashing damage every round until the spell expires.~ -@266=~Spike Growth~ -@265=~Circle of Bones -(Necromancy) -Level: 3 -Sphere: Guardian, Creation -Range: 0 -Duration: 3 rounds -Casting Time: 3 -Area of Effect: 3-ft. radius -Saving Throw: None -This spell conjures forth a barrier of floating bones that spin rapidly around the caster, who cannot move for the duration of the spell. Anyone entering the path of the bones takes 1d6 crushing damage and 1d6 slashing damage per round. Circle of Bones cannot be cast by good-aligned characters.~ -@264=~Circle of Bones~ -@263=~Moonblade~ -@262=~Moonblade~ -@261=~Moonblade -(Invocation) -Level: 3 -Sphere: Combat, Sun -Range: 0 -Duration: 2 turns -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None -This spell summons forth a silent, weightless sword-like construct made of moonlight that extends four feet from the caster's hand. The moonblade is considered a +4 weapon for determining what creatures it can hit, though the bonus does not apply to attack rolls made with it. In addition, due to the insubstantial nature of the moonblade, melee bonuses from Strength do not apply. -The strike of a moonblade drains a target's vitality, inflicting 1d12+4 points of magic damage, plus an additional 1d12 points to undead, who are particularly susceptible. A successful strike also temporarily scrambles magic, causing any spells the target casts in the next round to fail.~ -@260=~Moonblade~ -@259=~Sleep~ -@258=~Exaltation -(Abjuration) -Level: 3 -Sphere: Healing -Range: Touch -Duration: 1 turn -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None -This spell enables a priest to aid and protect any one being other than the priest. By touch, the caster removes the effects of fear, sleep, feeblemindedness, unconsciousness, and intoxication, as well as berserk and confused states of mind. In addition, the recipient is protected against spells and other attacks that cause these effects for the duration of the spell.~ -@257=~Exaltation~ -@256=~Cause Disease -(Necromancy) -Level: 3 -Sphere: Healing -Range: Touch -Duration: 8 hours -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: Neg. -This spell afflicts one creature the priest touches with a disease that saps the target of 5d4 points of Strength. A successful Save vs. Spell negates the effects. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ -@255=~Cause Disease~ -@254=~Combat Penalties~ -@253=~Combat Bonuses~ -@252=~Prayer -(Conjuration/Summoning) -Level: 3 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 6 -Area of Effect: 30-ft. radius -Saving Throw: None -Prayer bestows favor on the priest and allies, and curses their enemies. All attacks, damage, and Saving Throws by friendly characters gain a +1 bonus, while enemy attacks, damage rolls, and saves get a -1 penalty. Any creatures within the area of effect when the spell is cast will continue to be affected by the spell when they leave the area, so if the warriors want to chase down that fleeing goblin, the effects of the Prayer will follow them.~ -@251=~Prayer~ -@250=~Cause Moderate Wounds -(Necromancy) -Level: 2 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 -By casting this spell and touching a creature, the priest deals 11 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ -@249=~Cause Moderate Wounds~ -@248=~Beast Claw~ -@247=~Beast Claw~ -@246=~Beast Claw -(Alteration) -Level: 2 -Sphere: Combat -Range: 0 -Duration: 1 turn -Casting Time: 5 -Area of Effect: The caster -Saving Throw: None -This spell transforms the caster's arms into the claws of a mighty beast, giving the caster 18/72 Strength and the ability to rake an opponent for 2d4 (plus Strength bonus) points of slashing damage. The caster can attack twice per round with the beast claws, with a +2 bonus to hit.~ -@245=~Beast Claw~ -@244=~Outlined in a Silvery Radiance (AC penalty of 2)~ -@243=~Alicorn Lance -(Invocation) -Level: 2 -Sphere: Combat -Range: Visual range of the caster -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: Special -This spell creates a silver-hued, partially ethereal lance shaped in the form of an alicorn (a unicorn horn). The caster chooses a target, and the alicorn lance instantaneously fires at it, inflicting 3d6 points of piercing damage with a Save vs. Spell for half. Although the alicorn lance dissipates after it strikes, it always leaves a silvery radiance around the target that makes it easier to see and hit, giving it a -2 penalty to its Armor Class for 3 rounds.~ -@242=~Alicorn Lance~ -@241=~Healed~ -@240=~Cure Moderate Wounds -(Necromancy) -Level: 2 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: None -A stronger version of the 1st-level priest spell Cure Light Wounds, Cure Moderate Wounds heals 11 Hit Points and cures intoxication. This spell has no effect on undead, constructs, or extraplanar creatures.~ -@239=~Cure Moderate Wounds~ -@238=~Blinded~ -@237=~Sunscorch -(Invocation) -Level: 1 -Sphere: Sun -Range: Visual range of the caster -Duration: Instant -Casting Time: 4 -Area of Effect: 1 creature -Saving Throw: Special -When this spell is cast, a brilliant ray of scorching heat slants down from the sky and strikes one target of the caster's choice. Any creature struck by the ray takes 1d6 points of damage, plus 1 point per level of the caster; however, if the target is an undead creature or a monster vulnerable to bright light, the damage is 1d6, plus 2 points per level of the caster. In addition to sustaining damage, victims are also blinded for 3 rounds. The victim is allowed a Save vs. Spell for half damage and to avoid the blindness.~ -@236=~Sunscorch~ -@235=~Cause Light Wounds -(Necromancy) -Level: 1 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 -By casting this spell and touching a creature, the priest deals 8 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ -@234=~Cause Light Wounds~ -@233=~Cursed~ -@232=~Curse -(Conjuration/Summoning) -Level: 1 -Sphere: All -Range: Visual range of the caster -Duration: 6 rounds -Casting Time: 9 -Area of Effect: 15-ft. radius -Saving Throw: None -When uttering the Curse spell, the caster lowers the morale of enemy creatures and any Saving Throws and attack rolls they make by 1. At the instant the spell is completed, it affects all creatures in a 15-ft. radius centered on the point selected by the caster. Affected creatures leaving the area are still subject to the spell's effect; those entering the area after the casting is completed are not.~ -@231=~Curse~ -@230=~This spell heals the character by 11 Hit Points.~ -@229=~Eye of Stone -This eye shields the caster from a single petrification attack. -It can also be used as the 3rd-level wizard spell Hold Person, rendering humanoids of man-size or smaller immobile for 1 round/level (Save vs. Spell negates).~ -@228=~Eye of Stone~ -@227=~Eye of the Spirit -This eye blocks one instant-death magic attack (Death Spell; Finger of Death; Power Word, Kill; Slay Living; Destruction). -The wizard may instead choose to expend the eye's power as the 2nd-level wizard spell Ray of Enfeeblement, dropping a target's Strength to 5 (Save vs. Spell negates).~ -@226=~Eye of the Spirit~ -@225=~Eye of Fortitude -This eye blocks one stunning, deafness, blindness, or silence effect. -It may alternatively be expended as the 4th-level wizard spell Shout, dealing 4d6 magic damage and deafening creatures within a 35-ft. cone (Save vs. Spell halves damage and negates deafness).~ -@224=~Eye of Fortitude~ -@223=~Eye of Venom -This eye halts any one attack or effect that could poison the caster. -The eye can also be expended as the 4th-level priest spell Poison, dealing 20 points of damage to one creature over a period of 20 seconds (Save vs. Poison negates).~ -@222=~Eye of Venom~ -@221=~Eye of the Sword -This eye deflects the first physical damaging attack that strikes the caster. -The eye may be expended as the 1st-level wizard spell Magic Missile, creating up to 5 missiles (one for every two levels of experience besides the first) that each strike a target for 1d4+1 magic damage.~ -@220=~Eye of the Sword~ -@219=~Eye of the Mage -This eye absorbs one manifestation of fire, electrical, cold, or acid damage. -The eye can also be expended as the 3rd-level wizard spell Lightning Bolt, dealing 1d6 electrical damage per level (capped at 10d6) to all creatures in its path.~ -@218=~Eye of the Mage~ -@217=~Eye of the Mind -This orb protects the caster against mental attacks such as charm, emotion, and fear. -The eye can be expended as the 1st-level wizard spell Charm Person, bringing a humanoid creature under the caster's control for 1 turn (Save vs. Spell negates).~ -@216=~Eye of the Mind~ -@215=~You cannot cast this spell until the current casting has run out.~ -@214=~Seven Eyes~ -@213=~Seven Eyes -(Abjuration) -Level: 7 -Range: 0 -Duration: 2 turns -Casting Time: 7 -Area of Effect: The caster -Saving Throw: None -This spell conjures forth seven magical orbs that float in a ring above the caster's head. Each eye has a defensive and offensive ability, though once either one is used, the eye will lose its power. The powers of each eye are described below. -Eye of the Mind: This orb protects the caster against mental attacks such as charm, emotion, and fear. The eye can be expended as the 1st-level wizard spell Charm Person, bringing a humanoid creature under the caster's control for 1 turn (Save vs. Spell negates). -Eye of the Sword: This eye deflects the first physical damaging attack that strikes the caster. The eye may be expended as the 1st-level wizard spell Magic Missile, creating up to 5 missiles (one for every two levels of experience besides the first) that each strike a target for 1d4+1 magic damage. -Eye of the Mage: This eye absorbs one manifestation of fire, electrical, cold, or acid damage. The eye can also be expended as the 3rd-level wizard spell Lightning Bolt, dealing 1d6 electrical damage per level (capped at 10d6) to all creatures in its path. -Eye of Venom: This eye halts any one attack or effect that could poison the caster. The eye can also be expended as the 4th-level priest spell Poison, dealing 20 points of damage to one creature over a period of 20 seconds (Save vs. Poison negates). -Eye of the Spirit: This eye blocks one instant-death magic attack (Death Spell; Finger of Death; Power Word, Kill; Slay Living; Destruction). The wizard may instead choose to expend the eye's power as the 2nd-level wizard spell Ray of Enfeeblement, dropping a target's Strength to 5 (Save vs. Spell negates). -Eye of Fortitude: This eye blocks one stunning, deafness, blindness, or silence effect. It may alternatively be expended as the 4th-level wizard spell Shout, dealing 4d6 magic damage and deafening creatures within a 35-ft. cone (Save vs. Spell halves damage and negates deafness). -Eye of Stone: This eye shields the caster from a single petrification attack. It can also be used as the 3rd-level wizard spell Hold Person, rendering humanoids of man-size or smaller immobile for 1 round/level (Save vs. Spell negates).~ -@212=~Seven Eyes~ -@211=~Malavon's Rage~ -@210=~Malavon's Rage -(Evocation) -Level: 7 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 7-ft. radius -Saving Throw: 1/2 -Malavon's Rage was created by the dark elf sorcerer Malavon. It shoots darts of pure energy out from the caster's body in all directions, harming friend and foe alike. The small wedges of magic do 20d4 points of piercing damage (save vs. Spell for half) to everything caught in their path. This spell is especially useful when a wizard is surrounded by enemies.~ -@209=~Malavon's Rage~ -@208=~Vorpal Hit~ -@207=~Death~ -@206=~Undead destroyed~ -@205=~Outer planar destroyed~ -@204=~Shades~ -@203=~Shades -(Illusion/Phantasm) -Level: 6 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 6 -Area of Effect: Special -Saving Throw: None -Shades is similar to Shadow Monsters and Demi-Shadow Monsters—it allows the caster to shape material from the Demiplane of Shadow into illusionary creatures. These shadows are tougher than the shadows summoned by Shadow Monsters and Demi-Shadow Monsters, and they will obey the caster until the spell expires or they are slain.~ -@202=~Shades~ -@201=~Lich Touch~ -@200=~Lich Touch~ -@199=~Lich Touch -(Necromancy) -Level: 6 -Range: Touch -Duration: 1 round/level -Casting Time: 6 -Area of Effect: The caster -Saving Throw: Special -This spell confers the powers of a lich's touch and a lich's immunities upon the caster. The wizard gains immunity to paralysis and fear while the spell is in effect, and hands glow with an unearthly blue radiance that does 1d10 cold damage to a target and paralyzes them unless a Save vs. Paralysis is made. This spell has no effect on undead.~ -@198=~Lich Touch~ -@197=~Dispel Effects~ -@196=~Antimagic Shell~ -@195=~Antimagic Shell -(Abjuration) -Level: 6 -Range: 0 -Duration: 1 turn/level -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None -This spell surrounds the caster with an invisible barrier that moves with . This barrier makes the wizard immune to any magical attacks, but it prevents from casting spells. -Antimagic Shell also dispels deafness and feeblemindedness in the caster.~ -@194=~Antimagic Shell~ -@193=~Tough Lizard Man~ -@192=~Goblin Elite~ -@191=~Goblin Elite~ -@190=~Demi-Shadow Monsters~ -@189=~Demi-Shadow Monsters -(Illusion/Phantasm) -Level: 5 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 5 -Area of Effect: Special -Saving Throw: None -This spell is similar to the 4th-level wizard spell Shadow Monsters, except the summoned creatures are much more powerful.~ -@188=~Demi-Shadow Monsters~ -@187=~Troll Weapon~ -@186=~Troll~ -@185=~Troll~ -@184=~Shadow Monsters~ -@183=~Shadow Monsters -(Illusion/Phantasm) -Level: 4 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 4 -Area of Effect: Special -Saving Throw: None -This spell shapes material from the Demiplane of Shadow into illusionary monsters. Up to six shadowy creatures can be summoned at once, but their total Hit Dice will normally not exceed the spellcaster's level.~ -@182=~Shadow Monsters~ -@181=~Hasted~ -@180=~Slow~ -@179=~Slowed~ -@178=~Expeditious Retreat -(Alteration) -Level: 1 -Range: 0 -Duration: 3 rounds -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None -This spell doubles the caster's normal speed for a short period of time... usually long enough to escape. Other movement-altering effects, such as Haste and Slow, cannot affect the caster while this spell is in effect. While Expeditious Retreat is active, the caster cannot attack, cast spells, or use any items or special abilities... can only run.~ -@177=~Expeditious Retreat~ -@176=~Mordenkainen's Sword~ -@175=~Mordenkainen's Sword~ -@174=~Mordenkainen's Sword -(Evocation) -Level: 7 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 7 -Area of Effect: Special -Saving Throw: None -This spell summons a shimmering sword of force that can be mentally wielded by the caster. It strikes as if it were being used by a Fighter at half the level of the caster, and despite the fact it is held in the hand, it can hit creatures anywhere within the sight of the caster. Although the sword has no bonus to attack, it can hit creatures normally hit only by +2 weapons or lower and inflicts 5d6 points of slashing damage with every strike.~ -@173=~Mordenkainen's Sword~ -@172=~Water Elemental~ -@171=~Water Elemental~ -@170=~Conjure Water Elemental~ -@169=~Conjure Water Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Water and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@168=~Conjure Water Elemental~ -@167=~Air Elemental~ -@166=~Air Elemental~ -@165=~Conjure Air Elemental~ -@164=~Conjure Air Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Air and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@163=~Conjure Air Elemental~ -@162=~Fire Elemental~ -@161=~Fire Elemental~ -@160=~Conjure Fire Elemental~ -@159=~Conjure Fire Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Fire and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@158=~Conjure Fire Elemental~ -@157=~Earth Elemental~ -@156=~Earth Elemental~ -@155=~Conjure Earth Elemental~ -@154=~Conjure Earth Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Earth and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@153=~Conjure Earth Elemental~ -@152=~Monster Summoning III~ -@151=~Monster Summoning III -(Conjuration/Summoning) -Level: 5 -Range: 20 ft. -Duration: 4 rounds + 1 round/level -Casting Time: 5 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 1d4 3rd-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@150=~Monster Summoning III~ -@149=~Lizard Man~ -@148=~Lizard Man~ -@147=~Monster Summoning II~ -@146=~Monster Summoning II -(Conjuration/Summoning) -Level: 4 -Range: 20 ft. -Duration: 3 rounds + 1 round/level -Casting Time: 4 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 1d6 2nd-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@145=~Monster Summoning II~ -@144=~Goblin~ -@143=~Goblin~ -@142=~Monster Summoning I~ -@141=~Monster Summoning I -(Conjuration/Summoning) -Level: 3 -Range: 20 ft. -Duration: 2 rounds + 1 round/level -Casting Time: 3 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 2d3 1st-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@140=~Monster Summoning I~ -@139=~Attack~ -@138=~Minotaur~ -@137=~Minotaur~ -@136=~Monster Summoning V~ -@135=~Monster Summoning V -(Conjuration/Summoning) -Level: 7 -Range: 20 ft. -Duration: 6 rounds + 1 round/level -Casting Time: 7 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 1d3 5th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@134=~Monster Summoning V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamander~ -@130=~Salamander~ -@129=~Frost Salamander~ -@128=~Frost Salamander~ -@127=~Monster Summoning VI~ -@126=~Monster Summoning VI -(Conjuration/Summoning) -Level: 8 -Range: 20 ft. -Duration: 7 rounds + 1 round/level -Casting Time: 8 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 1d3 6th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@125=~Monster Summoning VI~ -@124=~Attack~ -@123=~Umber Hulk~ -@122=~Umber Hulk~ -@121=~Boneguard Skeleton~ -@120=~Boneguard Skeleton~ -@119=~Monster Summoning VII~ -@118=~Monster Summoning VII -(Conjuration/Summoning) -Level: 9 -Range: 20 ft. -Duration: 8 rounds + 1 round/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -With the casting of this spell, the wizard summons 1d2 7th- or 8th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@117=~Monster Summoning VII~ -@116=~Monster Summoning IV~ -@115=~Monster Summoning IV -(Conjuration/Summoning) -Level: 6 -Range: 20 ft. -Duration: 5 rounds + 1 round/level -Casting Time: 6 -Area of Effect: Special -Saving Throw: None -With the casting of this spell the wizard summons 1d3 4th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ -@114=~Monster Summoning IV~ -@113=~Skull~ -@112=~Monster Transparency -Do not translate~ -@111=~Monster Transparancy Item~ -@110=~Shadow~ -@109=~Shadow~ -@108=~Summon Shadow~ -@107=~Summon Shadow -(Conjuration/Summoning, Necromancy) -Level: 5 -Range: Visual range of the caster -Duration: 1 round + 1 round/level -Casting Time: 5 -Area of Effect: Special -Saving Throw: None -This spell summons three 4-HD shadows. The shadows will obey the orders of the caster, attacking enemies or performing tasks until the spell expires or the shadows are slain.~ -@106=~Summon Shadow~ -@105=~Iron Fist~ -@104=~Iron Fist~ -@103=~Stricken by a foul disease~ -@102=~Diseased~ -@101=~Poisoned~ -@100=~Poison~ -@99=~Iron Body~ -@98=~Iron Body -(Alteration) -Level: 8 -Range: 0 -Duration: 2 turns -Casting Time: 8 -Area of Effect: The caster -Saving Throw: None -This spell transforms the caster's body into living iron, granting several powerful resistances and abilities. While the spell is in effect, the caster is 100% resistant to electricity and poison, 50% resistant to fire, and 25% resistant to crushing damage. Spells that affect respiration or the physiology of the caster are ignored. In addition, the caster's Strength is raised to 25, and the caster can attack twice per round with iron fists for 2d4 points of damage plus appropriate Strength bonuses. -Unfortunately, the caster's movement becomes slow and awkward, setting movement rate to 25% of normal, and cannot cast spells while Iron Body is in effect.~ -@97=~Iron Body~ -@96=~Unconscious~ -@95=~Great Shout~ -@94=~Great Shout -(Invocation) -Level: 8 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 17-ft. cone with 15-deg. arc -Saving Throw: 1/2 -Upon uttering the Great Shout, the caster releases a stunning force from mouth in a 17-ft. cone. The Great Shout is extremely taxing and dangerous to the user. The shout drains 2d4 Hit Points from the caster, and must make a Save vs. Spell or fall unconscious for 1 turn. Creatures 5 Hit Dice and under caught within the Great Shout instantly die. All other creatures within the area of effect must save vs. Spell. Those who fail the save are stunned for 2 rounds, deafened for 4 rounds, and suffer 4d12 points of magic damage. Those who make the save are stunned for 1 round, deafened for 2 rounds, and suffer 2d12 points of magic damage.~ -@93=~Great Shout~ -@92=~~ -@91=~Charmed~ -@90=~Dire Charmed~ -@89=~Dominated~ -@88=~Morale Failure: Panic~ -@87=~Intoxicated~ -@86=~Confused~ -@85=~Rigid Thinking~ -@84=~Held~ -@83=~Paralyzed~ -@82=~Held~ -@81=~Mind Blank~ -@80=~Mind Blank -(Abjuration) -Level: 8 -Range: 0 -Duration: 24 hours -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None -In the interests of one's self-control and privacy, Mind Blank shields a creature's mind from almost any mental effect—charm, maze, feeblemind, confusion, fear, intoxication, berserk, hold, and petrification.~ -@79=~Mind Blank~ -@78=~Suffocate~ -@77=~Suffocate -(Alteration) -Level: 7 -Range: Visual range of the caster -Duration: 4 rounds -Casting Time: 7 -Area of Effect: 7-ft. radius -Saving Throw: Special -This spell draws the breath out of all creatures within the area of effect. Creatures that do not breathe are unaffected. Suffocating creatures suffer -4 to Armor Class, -4 to hit, -6 to Dexterity, one less attack per round, half movement rate, and take 4d8 points of magic damage per round. A successful Saving Throw negates all effects but 2d8 points of damage for one round. The effects begin to fade when the creature moves out of the area of effect, although it can take a round for a character to catch their second wind.~ -@76=~Suffocate~ -@75=~Acid Storm~ -@74=~Acid Storm -(Evocation) -Level: 7 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 7 -Area of Effect: 12-ft. radius -Saving Throw: 1/2 -This spell unleashes an acidic downpour on the area of effect, doing 1d4 points of acid damage each round for the first three rounds, 1d6 points for the next three rounds, and 1d8 points for each round thereafter. Moving out of the area of effect does not stop the damage—the acid adheres to the skin, and any creatures in the area of effect when Acid Storm is cast continue to suffer acid damage as long as the spell duration lasts. Creatures make a Save vs. Spell every round after they have been hit by the cloud—if successful, they only take half damage (for that round only).~ -@73=~Acid Storm~ -@72=~Trollish Fortitude~ -@71=~Trollish Fortitude -(Necromancy) -Level: 6 -Range: 0 -Duration: 2 turns -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None -This spell imbues the caster with the resilience of a troll, allowing the caster to regenerate 5 Hit Points per round up to maximum Hit Points.~ -@70=~Trollish Fortitude~ -@69=~Skeleton~ -@68=~Skeleton~ -@67=~Soul Eater~ -@66=~Soul Eater -(Necromancy) -Level: 6 -Range: Visual range of the caster -Duration: Instant -Casting Time: 5 -Area of Effect: 7-ft. radius -Saving Throw: None -This spell deals 3d8 magic damage to all living creatures within a 14-ft. radius. Any creatures that die as a result of this damage are obliterated, and their essence is transformed into a 3-Hit-Dice skeleton under control of the caster. Also, for each creature that dies in this manner, the caster receives a +1 bonus to Strength, Dexterity, and Constitution for 1 turn. Soul Eater has no effect on undead, constructs, and elemental creatures.~ -@65=~Soul Eater~ -@64=~Dart of Bone +3~ -@63=~Dart of Bone~ -@62=~Darts of Bone~ -@61=~Darts of Bone -(Necromancy) -Level: 6 -Range: 0 -Duration: 5 rounds -Casting Time: 5 -Area of Effect: The caster -Saving Throw: None -This spell creates nine darts that can be used by the caster and cannot be unequipped so long as the spell is in effect. The darts are +3, do 1d4+3 missile damage, and a creature struck by a dart must save vs. Death or take 2d6 magic damage and have its Strength reduced by 3 for 5 rounds. Strength reduction is noncumulative, and failing a save while the reduction is in effect will not extend its duration. The caster's weapon proficiency with darts (or lack thereof) has no effect on the darts' chances to hit a target.~ -@60=~Darts of Bone~ -@59=~Otiluke's Freezing Sphere~ -@58=~Otiluke's Freezing Sphere -(Alteration, Evocation) -Level: 6 -Range: Visual range of the caster -Duration: Instant -Casting Time: 6 -Area of Effect: 1 creature -Saving Throw: Neg. -This spell fires an orb of cold at a creature that inflicts 1d4+2 points of cold damage per level of the caster. If the target makes its Save vs. Spell, however, they have dodged the orb and avoided all damage.~ -@57=~Otiluke's Freezing Sphere~ -@56=~Shroud of Flame~ -@55=~Shroud of Flame -(Invocation) -Level: 5 -Range: Visual range of the caster -Duration: 1 round/2 levels (special) -Casting Time: 5 -Area of Effect: 5-ft. radius -Saving Throw: Neg. -This spell causes a creature to burst into flames if it fails a Save vs. Spell. The creature will burn for 2d6 points of fire damage every round, and gouts of flame erupt from the burning target, causing any creatures within 5 ft. to take 1d4 points of fire damage from the flames. Anyone hit by the victim's flames must also make a Save vs. Spell to avoid contracting the shroud themselves. The shroud of flame dissipates if the caster and target are no longer in the same area. This spell is particularly useful in dispersing packs of trolls and frost salamanders.~ -@54=~Shroud of Flame~ -@53=~~ -@52=~Vitriolic Sphere~ -@51=~Vitriolic Sphere -(Conjuration) -Level: 4 -Range: Visual range of the caster -Duration: Special -Casting Time: 4 -Area of Effect: 5-ft. radius -Saving Throw: Special -This spell conjures a sphere of glowing emerald acid that the caster can direct to strike any target within range. When it reaches its target, the sphere explodes and drenches the victim in potent acid. The victim suffers 1d4 points of acid damage per caster level, to a maximum of 12d4 points of damage. After the initial damage, the victim must save vs. Spell to avoid more damage. If unsuccessful, the victim continues to suffer acid damage in the following rounds, sustaining two less dice of damage each round. For example, an 8th-level wizard inflicts 8d4 damage with this spell on the first round, 6d4 on the second round, 4d4 on the third round, 2d4 on the fourth round, and the spell ends on the fifth round. Each round after the first, the victim is entitled to a Save vs. Spell to avoid further damage. -The vitriolic sphere also splashes acid in a 5-ft. radius around the primary target. Any creatures within the splash radius must save vs. Petrification/Polymorph or suffer a splash hit that inflicts 1d4 points of damage per every five levels of the caster. Splash hits do not cause continuing damage.~ -@50=~Vitriolic Sphere~ -@49=~Deafness~ -@48=~Shout~ -@47=~Shout -(Invocation) -Level: 4 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 17-ft. cone with 15-deg. arc -Saving Throw: Special -Shout grants the wizard tremendous vocal powers, allowing to emit an earsplitting roar from mouth in a cone-shaped area of effect. Any creature within this area is deafened for 9 rounds and suffers 4d6 points of magic damage. A successful Save vs. Spell negates the deafness and reduces the damage by half.~ -@46=~Shout~ -@45=~Mordenkainen's Force Missiles~ -@44=~Mordenkainen's Force Missiles -(Invocation) -Level: 4 -Range: Visual range of the caster -Duration: Instant -Casting Time: 4 -Area of Effect: 2-ft. radius -Saving Throw: Special -This spell creates a brilliant globe of magical energy that streaks forth from the caster's hand to unerringly strike its target, much like a Magic Missile spell. The wizard creates one missile at 7th level and an additional missile at every third level after 7th—in other words, two missiles at 10th level, three at 13th, four at 16th, and so on, to a maximum of seven missiles at 25th level. Each missile inflicts 2d4 points of damage to the target and then bursts in a 2-ft. radius concussive blast that inflicts 1 point of damage per level of the caster—for example, a 12th-level wizard could conjure two force missiles, each of which strikes for 2d4+12 points of magic damage. Creatures taking damage can attempt a Save vs. Spell to negate the concussion damage, but the impact of the missile itself allows no Saving Throw. The 1st-level wizard spell Shield will absorb the force missiles harmlessly, including the concussion damage.~ -@43=~Mordenkainen's Force Missiles~ -@42=~Hopelessness~ -@41=~Stunned~ -@40=~Emotion, Hopelessness~ -@39=~Emotion, Hopelessness -(Enchantment/Charm) -Level: 4 -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: Neg. -This spell creates the emotion of hopelessness within the area of effect. All enemies who fail to save vs. Spell just stand and do nothing for 1 turn. This spell nullifies Emotion, Hope within the area of effect at the time of casting.~ -@38=~Emotion, Hopelessness~ -@37=~Panic~ -@36=~Emotion, Fear~ -@35=~Emotion, Fear -(Enchantment/Charm) -Level: 4 -Range: Visual range of the caster -Duration: 5 rounds -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: Neg. -This spell creates the emotion of fear within the area of effect. All enemies who fail to save vs. Spell flee for 5 rounds. This spell nullifies Emotion, Courage within the area of effect at the time of casting.~ -@34=~Emotion, Fear~ -@33=~Emotion, Hope~ -@32=~Emotion, Hope -(Enchantment/Charm) -Level: 4 -Range: Visual range of the caster -Duration: 1 hour -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: None -This spell creates the emotion of hope within the area of effect. All creatures affected by the spell gain a morale boost and +2 on their Saving Throws, attack rolls, and damage rolls. This spell nullifies all hopelessness effects within the area of effect at the time of casting.~ -@31=~Emotion, Hope~ -@30=~Emotion, Courage~ -@29=~Emotion, Courage -(Enchantment/Charm) -Level: 4 -Range: Visual range of the caster -Duration: 1 hour -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: None -This spell creates the emotion of courage within the area of effect. All creatures affected by the spell gain +1 to hit, +3 to their damage rolls, and +5 temporary Hit Points (which can put them above their maximum Hit Points). This spell nullifies all fear effects within the area of effect at the time of casting.~ -@28=~Emotion, Courage~ -@27=~Berserk~ -@26=~Beltyn's Burning Blood~ -@25=~Beltyn's Burning Blood -(Necromancy) -Level: 4 -Range: Visual range of the caster -Duration: 1 round/2 levels -Casting Time: 4 -Area of Effect: 1 creature -Saving Throw: Neg. -This spell turns a target's blood to flame, doing 3d4 Hit Points of damage every round and driving the victim berserk with pain. The target gets to save vs. Spell every round; if successful, the damage and berserk state are negated. This spell does not work against undead or extraplanar creatures that do not have blood (such as elementals). If the creature is resistant to fire, this resistance will lower or nullify the damage from this spell.~ -@24=~Beltyn's Burning Blood~ -@23=~Lance of Disruption~ -@22=~Lance of Disruption -(Invocation) -Level: 3 -Range: 100 ft. -Duration: Instant -Casting Time: 3 -Area of Effect: Special -Saving Throw: 1/2 -This spell shoots a lance of force, which travels from the caster to a specified point 100 ft. in the distance. Any creatures in the lance's path take 5d4 points of crushing damage plus 2 points of damage per level of the caster (maximum of +30). Victims can save vs. Spell for half damage.~ -@21=~Lance of Disruption~ -@20=~Stunned~ -@19=~Icelance~ -@18=~Icelance -(Evocation) -Level: 3 -Range: Visual range of the caster -Duration: Instant -Casting Time: 3 -Area of Effect: 1 creature -Saving Throw: Special -This spell fires a magical lance of ice at a target of the caster's choosing. It automatically hits, inflicting 5d6 points of cold damage and forcing the target to make a Save vs. Spell or be stunned for 3 rounds.~ -@17=~Icelance~ -@16=~Dexterity Modification~ -@15=~Cat's Grace~ -@14=~Cat's Grace -(Alteration) -Level: 2 -Range: Touch -Duration: 1 hour/level -Casting Time: 2 -Area of Effect: 1 creature -Saving Throw: None -This spell magically increases a target's Dexterity. The amount depends on the target's class: Rogues gain 1d8 points, warriors and wizards gain 1d6 points, and priests gain 1d4 points. If a character has more than one class, the larger die is used. Cat's Grace cannot raise a target's Dexterity past 20.~ -@13=~Cat's Grace~ -@12=~Decastave~ -@11=~Decastave~ -@10=~Decastave~ -@9=~Decastave -(Evocation) -Level: 2 -Range: 0 -Duration: 3 rounds + 1 round/level -Casting Time: 2 -Area of Effect: The caster -Saving Throw: None -This spell creates a staff of force in the caster's hand. It is treated as a magical weapon, doing 1d6 Hit Points of damage per hit, and it can hit creatures that require +1 weapons to hit. It is a staff, however, so if the caster does not have a proficiency in staff weapons, then the Decastave is used at a penalty. The staff also has the power to drain a target of 1d2 Hit Points on every strike. These Hit Points are added to the caster's, but they can only heal damage the caster has taken; they will not raise Hit Points beyond normal maximum.~ -@8=~Decastave~ -@7=~Snilloc's Snowball Swarm -(Evocation) -Level: 2 -Range: Visual range of the caster -Duration: Instant -Casting Time: 2 -Area of Effect: 15-ft. radius -Saving Throw: 1/2 -This spell causes a flurry of snowballs to erupt from a point within range. These snowballs will hit everything within the area of effect, doing 1d3 points of cold damage per level, up to a maximum of 8d3 points at level 8. Against fire-using or fire-dwelling creatures, it inflicts 1d6 points of cold damage per level, up to a maximum of 8d6 points at level 8.~ -@6=~~ -@5=~Snilloc's Snowball Swarm~ -@4=~Snilloc's Snowball Swarm -(Evocation) -Level: 2 -Range: Visual range of the caster -Duration: Instant -Casting Time: 2 -Area of Effect: 15-ft. radius -Saving Throw: 1/2 -This spell causes a flurry of snowballs to erupt from a point within range. These snowballs will hit everything within the area of effect, doing 1d3 points of cold damage per level, up to a maximum of 8d3 points at level 8. Against fire-using or fire-dwelling creatures, it inflicts 1d6 points of cold damage per level, up to a maximum of 8d6 points at level 8.~ -@3=~~ -@2=~Snilloc's Snowball Swarm~ -@1=~Scroll~ diff --git a/iwdification/dw/copyover/tra/es_ES/iwdspells.tra b/iwdification/dw/copyover/tra/es_ES/iwdspells.tra deleted file mode 100644 index 15cf469..0000000 --- a/iwdification/dw/copyover/tra/es_ES/iwdspells.tra +++ /dev/null @@ -1,1336 +0,0 @@ -@375=~Cántico de guerra de Sith: Bonificaciones a la armadura y regeneración~ -@374=~"Canto de guerra de Sith" -Todos los aliados en un radio de 9m ganan +2 a la Clase de Armadura, +10% resistencia al daño cortante, punzante, aplastante y de misil; y la habilidad de regenerar 2 puntos de daño por asalto.~ -@373=~Cántico de Guerra de Sith~ -@372=~Cautivado~ -@371=~El anhelo de la sirena: Cautiva a las criaturas~ -@370=~"El anhelo de la sirena" -Todos los enemigos en un radio de 9m deven salvar contra Hechizos o ser Cautivados e incapaces de tomar acción hasta que pase un asalto o sean dañados.~ -@369=~El Anhelo de la Sirena~ -@368=~La canción de Kaudies: Resistencia a los ataques sonoros~ -@367=~"La canción de Kaudies" -Todos los aliados en un radio de 9m ganan la posibilidad de curar los efectos de Silencio, Alarido, Gran Alarido, Orden Imperiosa o cualquier otro ataque de sonido. ~ -@366=~La Canción de Kaudies~ -@365=~Melodía de Tymora: Suerte y bonificaciones de habilidad~ -@364=~"La melodía de Tymora" -Todos los aliados en un radio de 9m ganan +1 a la suerte, +3 a las tiradas de salvación, +10 al conocimiento y +10% a sus habilidades de ladrón.~ -@363=~Melodía de Tymora~ -@362=~El relato de Curran Fortecorazón: Inmunidad al miedo~ -@361=~"El cuento de Curran Fortecor" -Todos los aliados en un radio de 9m ganan inmunidad al miedo y todos los efectos del miedo actualmente sobre ellos son curados.~ -@360=~El Relato de Curran Fortecorazón~ -@359=~La balada de los tres héroes: Bonificaciones al combate~ -@358=~"La balada de los tres héroes" -Todos los aliados en un radio de 9m ganan +1 al golpe, +1 al daño y +1 a todas las tiradas de salvación.~ -@357=~La balada de los tres héroes~ -@356=~Salmo -(Conjuración/Convocación) -Nivel: 2 -Esfera: Combate -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Radio de 9 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Mediante el conjuro Salmo, al sacerdote y a su grupo se les otorga un favor especial, y también daña a sus enemigos. Al terminar de vocalizar el conjuro Salmo, todos los aliados del sacerdote en el área de efecto obtienen una bonificación +1 al ataque y a las tiradas de salvación, mientras que los enemigos del sacerdote sufren una penalización -1 a sus ataques y a sus tiradas de salvación. Si se lanzan varios Salmos no se acumulan. Este conjuro necesita cierta concentración por parte del lanzador, así que el sacerdote no puede lanzar ningún conjuro mientras dura el conjuro Salmo y su tasa de movimiento se reduce a la mitad.~ -@355=~Salmo~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Escarabajo tedioso~ -@352=~Escarabajo tedioso~ -@351=~Escarabajo bombardero~ -@350=~Escarabajo bombardero~ -@349=~Insecto gigante -(Alteración) -Nivel: 4 -Esfera: Animal -Alcance: Rango visual del lanzador -Duración: 8 horas -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: 1-6 insectos -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro convoca unos insectos pequeños para el hechicero, después los agranda a tamaño gigante, lo cual hace que se conviertan en unos aliados temibles. La fuerza y el tipo de insectos varía según el nivel del lanzador; cuanto más alto sea el nivel del lanzador, más fuertes serán los insectos que se convocan.~ -@348=~Insecto gigante~ -@347=~Causar heridas críticas -(Nigromancia) -Nivel: 5 -Esfera: Curación -Alcance: Toque -Duración: Permanente -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Cuando se lanza este conjuro y se toca a la criatura, el sacerdote propina 27 puntos de daño (la tirada de salvación hace la mitad del daño) al cuerpo de la criatura. Este conjuro no afecta a los muertos vivientes, constructos, o criaturas extraplanares. El conjuro Causar heridas críticas solo lo pueden lanzar personajes de alineamiento maligno.~ -@346=~Causar heridas críticas~ -@345=~Causar heridas graves -(Nigromancia) -Nivel: 4 -Esfera: Curación -Alcance: Toque -Duración: Permanente -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Cuando se lanza este conjuro y se toca a la criatura, el sacerdote propina 17 puntos de daño (la tirada de salvación hace la mitad del daño) al cuerpo de la criatura. Este conjuro no afecta a los muertos vivientes, constructos, o criaturas extraplanares. El conjuro Causar heridas graves no puede ser lanzado por personajes de alineamiento bueno.~ -@344=~Causar heridas graves~ -@343=~Dos niveles consumidos~ -@342=~Consumir energía (Nigromancia) -Nivel: 7 -Alcance: Toque -Duración: Permanente -Tiempo de lanzamiento: 3 -Ãrea de efecto: Criatura objetivo -Tirada de salvación: Ninguna -DESCRIPCIÓN: -La ejecución de este conjuro abre un canal entre el plano del lanzador y el plano de energía negativa. El mago hará las veces de vínculo entre ambos planos, extrayendo la fuerza vital de una víctima (haciendo que pierda 2 niveles de experiencia) y enviándola al plano de energía negativa. La víctima de este conjuro perderá los niveles de forma permanente y, por tanto, también perderá dados de golpe, puntos de golpe y aptitudes. Los niveles perdidos solo pueden recuperarse gracias al conjuro de sacerdote llamado Restablecimiento.~ -@341=~Consumir energía~ -@340=~Enredado~ -@339=~Masa bamboleante~ -@338=~Masa bamboleante~ -@337=~Acechador -(Conjuración) -Nivel: 7 -Esfera: Vegetal -Alcance: Rango visual del lanzador -Duración: 8 horas -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro crea dos montículos que se arrastran por el suelo. Estas criaturas estarán dispuestas a ayudar en combate al lanzador, o a cualquier otra tarea que se les asigne y sean capaces de cumplir.~ -@336=~Acechador~ -@335=~Niebla de Eldath -(Invocación) -Nivel: 7 -Esfera: Elemental -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Radio de 3 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro cubre el área de efecto con una niebla azul-plateada. Cualquier criatura que se encuentre dentro de la niebla se le curarán la enfermedad y el veneno, y se le reestablecerán 25 puntos de golpe.~ -@334=~Niebla de Eldath~ -@333=~Escudo mayor de Lazhánder -(Conjuración) -Nivel: 7 -Esfera: Guardián -Alcance: Toque -Duración: 3 asaltos -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro otorga al objetivo una resistencia a la magia del 100% e inmunidad al daño mientras dure el conjuro. Las criaturas malignas no pueden recibir la protección del conjuro Escudo mayor de Lazhánder. Este conjuro solo lo pueden lanzar personajes de alineamiento bueno.~ -@332=~Escudo mayor de Lazhánder~ -@331=~Destrucción -(Nigromancia) -Nivel: 7 -Esfera: Curación -Alcance: Toque -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: El lanzador -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro destruye al instante a un objetivo, de forma que explota en mil pedazos. A la víctima se le permite una tirada de salvación contra muerte con un penalizador -4; si tiene éxito, el objetivo recibe 8D6 puntos de daño en vez de ser destruido. El conjuro Destrucción solo lo pueden lanzar personajes de alineamiento maligno. Cabe mencionar que un personaje muerto con el conjuro Destrucción no puede volver a la vida con los conjuros Revivir a los muertos o Resurrección.~ -@330=~Destrucción~ -@329=~Conjuro ineficaz~ -@328=~Impenetrable santidad de la mente -(Abjuración) -Nivel: 7 -Esfera: Protección -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro endurece la mente del lanzador contra cualquier influencia externa. Los conjuros de Hechizo, Orden imperiosa, Confusión, Dominación, Capa de miedo, Debilidad mental, Inmovilizar persona, Sueño y cualquier ataque psiónico dirigido al lanzador fallarán mientras este conjuro sea efectivo.~ -@327=~Impenetrable santidad de la mente~ -@326=~Símbolo de la desesperación -(Conjuración/Convocación) -Nivel: 7 -Esfera: Guardián -Alcance: Rango visual del lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: Radio de 18 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Cuando se invoca, todas las criaturas dentro de un radio de 18 metros del Símbolo de la desesperación deben hacer una tirada de salvación contra conjuros con un penalizador -2. Si se falla, se quedarán quietas en su sitio, sobrecogidas por el abatimiento y la resignación. No harán ningún movimiento para defenderse de los ataques.~ -@325=~Símbolo de la desesperación~ -@324=~Dolores devastadores~ -@323=~Símbolo del dolor -(Conjuración/Convocación) -Nivel: 7 -Esfera: Guardián -Alcance: Rango visual del lanzador -Duración: 2-20 asaltos -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: Radio de 18 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Cuando se invoca, todas las criaturas dentro de un radio de 18 metros del Símbolo del dolor deben hacer una tirada de salvación contra conjuros. Si se falla, se sobrecogen de dolor, sufriendo varias penalizaciones, -4 a sus tiradas de ataque, -2 a la destreza y -2 a su clase de armadura.~ -@322=~Símbolo del dolor~ -@321=~Ira espiritual -(Invocación) -Nivel: 6 -Esfera: Combate -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 2 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Mitad -DESCRIPCIÓN: -Tras acabar de lanzar este conjuro, el sacerdote se convierte en un foco de energía espiritual, el cual sale disparado de lanzador en cuatro direcciones, como si fueran rayos relampagueantes. El lanzador indica la dirección de uno de los rayos y los otros se disparan de forma opuesta y perpendicular a esa dirección, en forma de una cruz. Todas las criaturas que se encuentran en la trayectoria de los rayos, reciben 6-42 puntos de daño mágico, y si tienen éxito en la tirada de salvación, solo reciben la mitad del daño. A las criaturas de un mismo alineamiento (bueno, neutral o maligno) que el lanzador no les afecta el conjuro.~ -@320=~Ira espiritual~ -@319=~Torbellino -(Invocación) -Nivel: 6 -Esfera: Invocación -Alcance: Rango visual del lanzador -Duración: Especial -Tiempo de lanzamiento: 9 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro crea un pequeño torbellino cerca de lanzador, el cual puede direccionar hacia una localización dentro de su rango visual. -Una vez el torbellino alcanza su destino, el lanzador pierde el control y el torbellino volará al azar por los alrededores, dañando por igual a amigos y a enemigos. -El lanzador es inmune a su propio conjuro, y a los elementales y a otras criaturas enormes tampoco les afecta. Si una criatura se cruza en el camino del torbellino, recibe 2D8 puntos de daño contundente y debe hacer una tirada de salvación contra aliento o quedará aturdida durante 2 asaltos. -Las criaturas con 2 dados de golpe o menos mueren automáticamente por el conjuro. Puede afectar a un máximo de 8 objetivos, tras los cuales el torbellino se disipa.~ -@318=~Torbellino~ -@317=~Escudo de entropía -(Abjuración) -Nivel: 6 -Esfera: Protección -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 9 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza, este conjuro rodea al lanzador con una vorágine defensiva de energía que bloquea o desvía muchos ataques. Esto le da al sacerdote un bonificador a la clase de armadura de +6 y una resistencia del 50% a la mayoría de los tipos de ataque: electricidad, fuego, frío y demás. También otorga al lanzador un bonificador +2 a todas sus tiradas de salvación e inmunidad a todos los ataques basados en proyectiles.~ -@316=~Escudo de entropía~ -@315=~Causar heridas leves en masa -(Nigromancia) -Nivel: 5 -Esfera: Curación -Alcance: 0 -Duración: Permanente -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 9 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -Gracias a este conjuro, el sacerdote causa 1d8 +1 puntos de herida a los enemigos cercanos a menos que salven contra conjuros. Esta curación poco tiene que ver con las criaturas que carecen de entidad corpórea, así como tampoco puede sanar las heridas de criaturas no vivientes o que sean originarias de otro plano.~ -@314=~Causar heridas leves en masa~ -@313=~Rabia animal -(Encantamiento) -Nivel: 5 -Esfera: Combate -Alcance: Toque -Duración: 15 asaltos -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro infunde a la criatura objetivo con una ferocidad animal. La criatura objetivo obtiene una Fuerza de 19, +20 puntos de golpe, +20% a la tasa de movimiento y una bonificación +2 a todas las tiradas de salvación. El objetivo pierde la habilidad de lanzar conjuros mientras sea efectiva la Rabia animal. Al personaje se le puede controlar normalmente hasta que haya enemigos en su rango visual, en cuyo caso el objetivo atacará de inmediato en combate cuerpo a cuerpo, usando cualquier cosa que tenga a mano. Hay un 5% de probabilidad en cada asalto de que el objetivo se vuelva Furioso, y ataque tanto a enemigos como amigos.~ -@312=~Rabia animal~ -@311=~Guarda contra los muertos vivientes -(Nigromancia) -Nivel: 5 -Esfera: Custodias -Alcance: El lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro amplifica la influencia que el sacerdote tiene sobre los muertos vivientes, aunque el efecto estará sujeto al área que rodea al lanzador y no se desplaza con él. Cualquier criatura muerto viviente que entra en el área resultará afectada igual que si hubiera sido rechazada por el sacerdote. Si el primer rechazo resultara fallido, la criatura muerto viviente es inmune a cualquier intento posterior de rechazarla con el conjuro a menos que deje y vuelva a entrar en el área de efecto.~ -@310=~Guarda contra los muertos vivientes~ -@309=~Escudo de Lazhánder -(Conjuración) -Nivel: 5 -Esfera: Guardián -Alcance: Toque -Duración: 2 asaltos -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro otorga al objetivo inmunidad al daño mientras dure el conjuro. Las criaturas malignas no pueden recibir la protección del conjuro Escudo de Lazhánder. Solo pueden lanzar el conjuro Escudo de Lazhánder personajes no malignos.~ -@308=~Escudo de Lazhánder~ -@307=~Piedras puntiagudas -(Alteración, Encantamiento) -Nivel: 5 -Esfera: Elemental (tierra) -Alcance: Rango visual del lanzador -Duración: 12 asaltos -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Radio de 3 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro manipula las rocas de alrededor, reformando el terreno en forma de salientes puntiagudos que se combinan con el entorno. Cualquier criatura que entra en el área recibe 2D4 puntos de daño perforante por asalto y debe hacer una tirada de salvación contra conjuros o su tasa de movimiento se verá reducida en un 30%.~ -@306=~Piedras puntiagudas~ -@305=~Ira honesta de los fieles -(Encantamiento/Hechizo) -Nivel: 5 -Esfera: Combate -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: Radio de 9 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro concede una especie de locura divina sobre los aliados del sacerdote, mejorando sus habilidades de combate. Todos los aliados del sacerdote dentro del área de efecto ganan +1 a las tiradas de ataque y a las tiradas de salvación, además de una bonificación de 1-8 a los puntos de golpe mientras dure el conjuro (estos puntos de golpe pueden sumarse a los puntos de golpe máximos del objetivo). Sin embargo, todas las criaturas del mismo alineamiento ganan un ataque adicional en cada asalto y +2 a las tiradas de ataque, daño y tiradas de salvación. A cualquiera que le afecte la Ira honesta de los fieles sufrirá de fatiga cuando el conjuro termine.~ -@304=~Ira honesta de los fieles~ -@303=~Muro de luz de luna -(Invocación) -Nivel: 4 -Esfera: Protección, Sol -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Muro de 6 metros de largo y 1'5 metros de ancho -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro conjura un tapiz brillante de energía de color blanco-azulado. Este muro es intangible, sin necesidad de un amarre físico, y por el que se puede pasar a través fácilmente. Las criaturas malignas que cruza a través del muro reciben 2D10 puntos de daño y los muertos vivientes malignos reciben 5D10. Una criatura que cruza a través del muro, solo recibe el daño una vez. Solo puede haber efectivo un único Muro de luz de luna al mismo tiempo.~ -@302=~Muro de luz de luna~ -@301=~Rociada de espinas -(Alteración) -Nivel: 4 -Esfera: Vegetal -Alcance: Especial -Duración: Instantáneo -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: Cono de 9 metros de largo y 7'5 metros de diámetro -Tirada de salvación: Mitad -DESCRIPCIÓN: -Mediante este conjuro el lanzador descarga desde su mano una rociada de púas, pinchos, agujas y espinas. La rociada de espinas cubre un cono de 9 metros de largo y 7'5 metros de diámetro, infligiendo 2D10 puntos de daño perforante a todas las criaturas dentro del área de efecto, o 1D10 puntos de daño si tienen éxito en una tirada de salvación contra muerte.~ -@300=~Rociada de espinas~ -@299=~Inconsciente~ -@298=~Maretazo -(Invocación) -Nivel: 4 -Esfera: Elemental (agua) -Alcance: 12 metros -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Ola de 1'5 metros de ancho -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro convoca una ola de agua que se desplaza en la dirección deseada por el lanzador, golpeando con tremenda fuerza todo lo que encuentra en su camino. La ola inflige 4D10 puntos de daño contundente, y además, hay un 25% de probabilidad de aturdir a una criatura golpeada durante 2 asaltos, y un 5% de probabilidad de que quede inconsciente. Si la criatura golpeada tiene éxito en una tirada de salvación contra alientos, el daño se reduce a la mitad y evita ser aturdida o quedar inconsciente.~ -@297=~Maretazo~ -@296=~Garrote de metal de las estrellas~ -@295=~Garrote de metal de las estrellas~ -@294=~Garrote de metal de las estrellas -(Conjuración) -Nivel: 4 -Esfera: Combate -Alcance: El lanzador -Duración: 3 asaltos -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro crea un garrote mágico, hecho de hierro meteórico, con un bonificador +2 al GAC0 y al daño, y se considera un arma +4 a efectos de saber a qué criaturas puede golpear. Se aplican las bonificaciones y penalizaciones en lo que respecta a los talentos marciales, a la fuerza, y a la especialización. Inflige 2D6 puntos de daño contundente adicionales contra las criaturas sobrenaturales (los muertos vivientes, los elementales, los gólems, las criaturas de los Planos exteriores, etc.).~ -@293=~Garrote de metal de las estrellas~ -@292=~Resistencia inagotable -(Nigromancia) -Nivel: 4 -Esfera: Necromántica -Alcance: Toque -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro restablece la resistencia de la criatura tocada, devolviéndole la energía perdida correspondiente a un día y medio. Hay que tener en cuenta que esto puede que no sea suficiente para eliminar el estado de "Fatiga" de un personaje.~ -@291=~Resistencia inagotable~ -@290=~Nube de pestilencia -(Alteración) -Nivel: 4 -Esfera: Combate, Elemental (aire) -Alcance: Rango visual del lanzador -Duración: 4 asaltos -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro transforma el aire, de un Radio de 6 metros, en una bruma grisácea y repugnante. El lanzador y las criaturas muertos vivientes son inmunes a los efectos de la nube. Cada asalto de exposición al aire malsano causará la pérdida de 3 puntos de Fuerza y de Destreza, 3 puntos de daño y el estado de ceguera. Estos efectos duran 1 asalto. El conjuro Nube de pestilencia solo lo pueden lanzar personajes de alineamiento maligno.~ -@289=~Nube de pestilencia~ -@288=~Aturdir~ -@287=~Sanado~ -@286=~Rabia sangrienta -(Alteración) -Nivel: 4 -Esfera: Combate -Alcance: Rango visual del lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro solo surte efecto en las criaturas aliadas o en los personajes controlados por el jugador. Cuando se lanza, el objetivo del conjuro se vuelve Furioso, y ataca a la criatura más cercana hasta que muere, y después se desplaza hasta la siguiente. -Mientras la criatura se encuentra bajo el efecto del conjuro Rabia sangrienta es inmune a Hechizar, Sueño, Miedo, Inmovilizar, Aturdir, Emoción, conjuros de tipo Símbolo y a toda esa clase de efectos. Además, el objetivo obtiene ciertas bonificaciones, como +2 al golpe, +3 al daño, +2 a la Fuerza, 10 puntos de golpe adicionales, y a la tasa de movimiento. -Sin embargo, este conjuro tiene algunas desventajas. El objetivo no sabe los puntos de golpe que le quedan mientras dure el conjuro y no puede beneficiarse con los efectos de los conjuros que reestablezcan puntos de golpe. Al finalizar la duración del conjuro, el objetivo queda fatigado y su Fuerza se reduce a 3 durante 2 asaltos. El conjuro Rabia sangrienta no afecta ni pueden lanzarlo los personajes de alineamiento neutral.~ -@285=~Rabia sangrienta~ -@284=~Recitación -(Abjuración, Invocación/Evocación) -Nivel: 4 -Esfera: Combate -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 18 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Al recitar un pasaje sagrado o una predicación, el sacerdote invoca la bendición de su deidad sobre sí mismo y a sus aliados, mientras siembra la confusión y la debilidad entre sus enemigos. Los aliados del sacerdote ganan una bonificación +2 a su ataque y a las tiradas de salvación, y los enemigos del sacerdote reciben una penalización -2 a los mismos. Este conjuro no anula un cojuro Rezo... ambos pueden lanzarse en tándem, y los efectos son acumulativos.~ -@283=~Recitación~ -@282=~Descargar electricidad estática~ -@281=~Carga estática -(Alteración) -Nivel: 4 -Esfera: Clima -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Rango visual del lanzador -Tirada de salvación: Mitad -DESCRIPCIÓN: -El conjuro Carga estática es parecido al conjuro Clamar al relámpago con la excepción de que puede usarse en interiores. Este conjuro permite al lanzador generar una carga estática alrededor de cualquier criatura dentro del área de efecto, haciendo 2-16 puntos de daño eléctrico, y 1-8 puntos de daño adicionales por cada nivel del lanzador. La carga se enciende y se apaga una vez en cada asalto, mientras dure el conjuro.~ -@280=~Carga estática~ -@279=~Producir fuego -(Alteración) -Nivel: 4 -Esfera: Elemental (fuego) -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 3'6 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza, brotan llamas desde un punto objetivo, haciendo 1-4 puntos de daño por fuego más 1 punto por nivel del lanzador a todas las criaturas dentro del área de efecto.~ -@278=~Producir fuego~ -@277=~Favor de Ilmater -(Nigromancia) -Nivel: 3 -Esfera: Nigromántica, Protección -Rango: Visual del lanzador -Duración: Instantánea -Tiempo de lanzamiento: 6 -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -El lanzador intercambia su propia vida por la del recipiente, intercambiando heridas físicas. El hechizo sólo tendrá efecto si el lanzador tiene más puntos de golpe que el objetivo. El intercambio es permanente hasta que se cure por otros métodos. Solo se intercambian puntos de golpe, no otras propiedades. -Este hechizo solo puede ser lanzado por personajes no-malvados. No tiene efecto sobre no-muertos, criaturas conjuradas o extra planares.~ -@276=~Favor de Ilmáter~ -@275=~Causar heridas medias (Nigromancia) -Nivel: 3 -Esfera: Curación -Alcance: Toque -Duración: Instantánea -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: Criatura tocada -Tirada de salvación: 1/2 -DESCRIPCIÓN: -Este conjuro es el reverso de Curar heridas graves. En lugar de sanar a la criatura tocada, este efecto le inflige daño. Si el sacerdote tiene éxito en la tirada y logra tocar a su víctima, el conjuro le infligirá directamente 14 puntos de daño. El hechizo no afecta a no-muertos, criaturas convocadas o extraplanares. Este hechizo no puede ser lanzado por personajes de alineación buena.~ -@274=~Causar heridas medias~ -@273=~Caparazón de la tormenta -(Abjuración) -Nivel: 3 -Esfera: Protección, Clima -Alcance: El lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro rodea al lanzador con una esfera oscura de energía disruptiva que se desplaza con él. El caparazón reduce al lanzador el daño por fuego, por frío y eléctrico en un 50%.~ -@272=~Caparazón de la tormenta~ -@271=~Toque mohoso -(Alteración) -Nivel: 3 -Esfera: Vegetal -Alcance: Toque -Duración: 3 ó 4 asaltos (especial) -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro infecta a la criatura tocada por el lanzador con un moho marrón que se extiende rápidamente. La criatura infectada tendrá derecho a realizar una tirada de salvación contra conjuros. Si no tiene éxito, la infección será grave y la criatura recibirá el siguiente daño: -1r asalto: 4D6 puntos de daño -2o asalto: 3D6 puntos de daño -3r asalto: 2D6 puntos de daño -4o asalto: 1D6 puntos de daño -Si tiene éxito en la tirada de salvación, el daño se reduce: -1r asalto: 2D6 puntos de daño -2o asalto: 1D6 puntos de daño -3r asalto: 1D6 puntos de daño -Cada asalto después del primero, la criatura más cercana a la víctima (a 3 metros o menos) debe realizar una tirada de salvación contra conjuros o quedará afectada por el moho a plena potencia. Este proceso continúa hasta que el moho no logra infectar a tiempo a una víctima apropiada. Las criaturas que ya se encuentran bajo los efectos del moho no pueden contraerlo de nuevo. El moho marrón muere una vez expira la duración del conjuro.~ -@270=~Toque mohoso~ -@269=~Aguacero -(Invocación) -Nivel: 3 -Esfera: Elemental (agua) -Alcance: Rango visual del lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Radio de 9 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro levanta una lluvia mágica que satura el área de efecto. Todas las criaturas que usen o moren en el fuego o en el frío recibirán 2D3 puntos de daño por asalto. Además, todas las criaturas del área tendrán un 50% de probabilidad en cada asalto de ser golpeadas por un relámpago que hace 2D6 de daño, quedando este reducido a la mitad si logran tener éxito en una tirada de salvación. El Aguacero extingue los conjuros Hoja de fuego, Sudario de fuego y el aura de las salamandras.~ -@268=~Aguacero~ -@267=~Brotar de espinas -(Alteración) -Nivel: 3 -Esfera: Elemental (tierra) -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Radio de 5 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro transforma el terreno circundante en unas plantas espinosas. Cualquier criatura que entre en el área recibirá 1D4 puntos de daño perforante y 1D4 puntos de daño cortante en cada asalto, hasta que se termine la duración del conjuro.~ -@266=~Brotar de espinas~ -@265=~Círculo de huesos -(Nigromancia) -Nivel: 3 -Esfera: Guardián/Creación -Alcance: El lanzador -Duración: 3 asaltos -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: Radio de 1 metro -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro genera una barrera de huesos flotantes que giran rápidamente en torno al lanzador. Cualquiera que se cruza en su camino recibe 1D6 puntos de daño contundente y 1D6 puntos de daño cortante por asalto. El lanzador no puede moverse mientras dure el conjuro. El conjuro Círculo de huesos no pueden lanzarlo personajes de alineamiento bueno.~ -@264=~Círculo de huesos~ -@263=~Espada lunar~ -@262=~Espada lunar~ -@261=~Filo lunar -(Invocación) -Nivel: 3 -Esfera: Combate, Sol -Alcance: El lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro convoca una espada tipo constructo, silenciosa e ingrávida, hecha con la esencia de la luz de la luna, y con una longitud de 1'2 metros desde la mano del lanzador. El filo lunar se considera un arma +4 a efectos de saber a qué criaturas puede golpear, aunque no se aplica ningún bonificador al GAC0. Además, dada la naturaleza inmaterial del filo lunar, no se aplican las bonificaciones de la fuerza en los ataques cuerpo a cuerpo. -Un golpe del filo lunar desgasta la vitalidad del objetivo, infligiendo 1D12+4 puntos de daño, además de 1D12 puntos de daño adicionales a los muertos vivientes que son particularmente susceptibles. Un golpe con éxito también provoca que la magia sea equívoca temporalmente, y como efecto, cualquier conjuro que quiera lanzar el objetivo en el siguiente asalto fallará.~ -@260=~Filo lunar~ -@259=~Sueño~ -@258=~Exaltación -(Abjuración) -Nivel: 3 -Esfera: Curación -Alcance: Toque -Duración: 1 asalto -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro permite al sacerdote ayudar y proteger a una criatura cualquiera que no sea él mismo. Al tocar al objetivo, el lanzador elimina los efectos de miedo, sueño, debilidad mental, pérdida del conocimiento, intoxicación, y también la furia y los estados mentales de confusión. Además, el receptor está protegido contra conjuros y otros ataques que provocan estos efectos durante el tiempo que dura el conjuro.~ -@257=~Exaltación~ -@256=~Causar enfermedad -(Nigromancia) -Nivel: 3 -Esfera: Curación -Alcance: Toque -Duración: 8 horas -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 1 criatura -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro aflige una enfermedad a una criatura que toca el sacerdote y que consume entre 5-20 puntos de fuerza al objetivo. Una tirada de salvación contra conjuros con éxito niega el efecto. Este conjuro no afecta a muertos vivientes, constructos o criaturas extraplanares. El conjuro Causar enfermedad no lo pueden lanzar personajes de alineamiento bueno.~ -@255=~Causar enfermedad~ -@254=~Penalizaciones de combate~ -@253=~Bonificaciones de combate~ -@252=~Rezo -(Conjuración/Convocación) -Nivel: 3 -Esfera: Combate -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Radio de 18 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -El conjuro Rezo concede un beneficio al sacerdote y a sus aliados, y maldice a sus enemigos. Todos los ataques, el daño y las tiradas de salvación de los personajes amistosos ganan un +1, mientras que los ataques enemigos, el daño de las tiradas de dados y las tiradas de salvación se penalizan todas con -1. Cualquier criatura que se encuentre en el área de efecto cuando se lance el conjuro continuará afectada por este aunque se marchen del área, así, si los guerreros quieren ir a por los trasgos que huyen, los efectos del conjuro Rezo se mantendrán.~ -@251=~Rezo~ -@250=~Causar heridas moderadas -(Nigromancia) -Nivel: 2 -Esfera: Curación -Alcance: Toque -Duración: Permanente -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Cuando se lanza este conjuro y se toca a una criatura, el sacerdote inflige 11 puntos de daño en el cuerpo de la criatura (tirada de salvación exitosa para la mitad del daño). Este conjuro no tiene efecto en muertos vivientes, constructos o criaturas de los Planos exteriores. El conjuro Causar heridas moderadas no lo pueden lanzar personajes de alineamiento bueno.~ -@249=~Causar heridas moderadas~ -@248=~Garra de la bestia~ -@247=~Garra de la bestia~ -@246=~Garra de la bestia -(Alteración) -Nivel: 2 -Esfera: Combate -Alcance: El lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro transforma los brazos del lanzador en unas garras de una poderosa bestia, concediéndole al lanzador una Fuerza de 18/72 y la capacidad de arañar a su oponente infligiendo 2D4 puntos de daño cortante (más el bonificador a la Fuerza). El lanzador puede atacar dos veces por asalto con las garras de la bestia, con un bonificador +2 al golpe.~ -@245=~Garra de la bestia~ -@244=~Un reflejo plateado cubre su silueta (penalizador -2 a la CA).~ -@243=~Lanza de alicornio -(Invocación) -Nivel: 2 -Esfera: Combate -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro crea una lanza de matiz plateado y parcialmente etérea, con la forma de un alicornio (un cuerno de unicornio). El lanzador elige un objetivo y la lanza de alicornio se dispara al instante hacia él, infligiendo 3D6 puntos de daño perforante, con posibilidad de una tirada de salvación haciendo la mitad del daño. Aunque la lanza de alicornio se disipa una vez impacta, deja una brillo plateado alrededor del objetivo que hace que sea más fácil verlo y golpearlo, penalizando en -2 su CA durante 3 asaltos.~ -@242=~Lanza de alicornio~ -@241=~Sanado~ -@240=~Curar heridas moderadas -(Nigromancia) -Esfera: Curación -Nivel: 2 -Alcance: Toque -Duración: Instantáneo -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Una versión más potente del conjuro de 1er nivel de sacerdote Curar heridas leves, Curar heridas moderadas reestablece 11 puntos de golpe a una criatura viva.~ -@239=~Curar heridas moderadas~ -@238=~Cegado~ -@237=~Quemadura solar -(Invocación) -Nivel: 1 -Esfera: Sol -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Cuando se lanza este conjuro, un rayo brillante de un calor abrasador cae vertical desde el cielo y golpea un objetivo que elija el lanzador. A la víctima se le permite una tirada de salvación contra conjuros para recibir solo la mitad del daño. Cualquier criatura golpeada por el rayo recibe 1D6 puntos de daño, y 1 punto adicional por nivel del lanzador. Las criaturas muertos vivientes y los monstruos vulnerables a la luz brillante reciben 1D6 puntos de daño, y 2 puntos adicionales por nivel de lanzador. Además de recibir el daño, las víctimas también son cegadas por el conjuro durante 3 asaltos.~ -@236=~Quemadura solar~ -@235=~Causar heridas leves -(Nigromancia) -Nivel: 1 -Esfera: Curación -Alcance: Toque -Duración: Permanente -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Mitad -DESCRIPCIÓN: -Cuando se lanza este conjuro y se toca a una criatura, el sacerdote inflige 8 puntos de daño (la mitad con una tirada de salvación exitosa) al cuerpo de la criatura. Este conjuro no tiene efecto en los muertos vivientes, constructos o criaturas de los Planos exteriores. El conjuro Causar heridas leves no puede ser lanzado por personajes de alineamiento bueno.~ -@234=~Causar heridas leves~ -@233=~Maldito~ -@232=~Maldecir -(Conjuración/Convocación) -Nivel: 1 -Esfera: Todas -Alcance: Rango visual del lanzador -Duración: 6 asaltos -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Radio de 7'5 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se vocaliza el conjuro Maldecir, el lanzador hace disminuir la moral de las criaturas enemigas y penaliza sus tiradas de salvación y las tiradas de dados de los ataques en -1. En el momento que el conjuro se ha completado, afecta a todas las criaturas en un cubo de 15 metros de lado, cuyo punto central es el seleccionado por el lanzador (y debido a eso, las criaturas que se marchan del área todavía siguen con el efecto del conjuro; y aquellas que entran en el área cuando se completa el conjuro, en cambio, no).~ -@231=~Maldecir~ -@230=~Este conjuro cura al personaje seleccionado. Se reestablecen 11 puntos de golpe.~ -@229=~Ojo de piedra -Este ojo escuda al lanzador de un ataque de petrificación. -Puede ser usado como el hechizo de tercer nivel de mago Inmovilizar persona durante 1 asalto por nivel (negación al salvar contra conjuros).~ -@228=~Ojo de la piedra~ -@227=~Ojo del espíritu -Este ojo bloquea la muerte mágica instantánea (Dedo de la muerte, Muerte, Palabra de poder, Muerte, etc). -El ojo puede ser usado como el hechizo de segundo nivel de mago Rayo de debilitamiento, reduciendo la fuerza del objetivo en 5 (negación con salvación contra conjuros).~ -@226=~Ojo del espíritu~ -@225=~Ojo de fortitud -El ojo bloquea atontamiento, sordera, ceguera o efectos de silencio. -Puede ser usado como el hechizo de cuarto nivel Alarido, provocando 4d6 de daño mágico y ensordeciendo criaturas dentro de un radio de 15m (salvación contra conjuros por la mitad de daño y negación de sordera).~ -@224=~Ojo de la fortaleza~ -@223=~Ojo de veneno -El ojo detiene un ataque o efecto que pueda envenenar al lanzador. -El ojo puede ser usado como el hechizo de cuarto nivel de clérigo, Veneno, provocando 20 puntos de daño a una criatura durante 20 segundos (negación con salvación contra veneno).~ -@222=~Ojo del veneno~ -@221=~Ojo de la espada -Este ojo desvía el pimer ataque físico que golpea al lanzador. -El ojo puede ser usado como el hechizo de primer nivel de mago, Misil mágico, creando hasta cinco misiles (uno por cada dos niveles de experiencia), que golpean con 1d4+1 de daño mágico.~ -@220=~Ojo de la espada~ -@219=~Ojo del mago -Este ojo absorbe una manifestación del fuego, frío o ácido. -El ojo puede ser usado como el hechizo de tercer nivel de mago Rayo relampagueante, provocando 1d6 de daño por nivel del lanzador a todas las criaturas a su paso (máximo 10d6).~ -@218=~Ojo del mago~ -@217=~Ojo de la mente -Este orbe protege al lanzador contra ataques mentales como emoción y miedo. -El ojo puede ser usado como el hechizo de mago de primer nivel Hechizar persona, pudiendo el lanzador controlar al objetivo durante un asalto (negado con salvación contra conjuros).~ -@216=~Ojo de la mente~ -@215=~No podéis lanzar este hechizo hasta que no se haya agotado el conjuro actual.~ -@214=~Siete ojos~ -@213=~Siete ojos -(Abjuración) -Nivel: 7 -Alcance: El lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro convoca siete orbes mágicos que flotan en forma de anillo por encima de la cabeza del lanzador. Cada ojo tiene una habilidad ofensiva y una defensiva, aunque una vez se usa una de ellas, el ojo pierde su poder. Cada lanzamiento siguiente el conjuro Siete ojos fallará si se lanza antes de terminar su duración, queden o no ojos. Los poderes de cada ojo se describen a continuación: -Ojo de la mente: -Este ojo protege al lanzador contra los ataques mentales, como Hechizo, Emoción o Miedo. El ojo puede abrirse para lanzar el conjuro de primer nivel de mago, Hechizar persona. -Ojo de la espada: -Este ojo desvía el primer ataque físico dañino que golpea al lanzador. El ojo puede abrirse para lanzar el conjuro de primer nivel de mago, Proyectil mágico (5 proyectiles). -Ojo del mago: -Este ojo absorbe una manifestación de daño por fuego, electricidad, frío o ácido. El ojo también puede abrirse para lanzar el conjuro de tercer nivel de mago, Rayo relampagueante (4D8 de daño). -Ojo del veneno: -Este ojo interrumpe cualquier ataque o efecto que pueda envenenar al lanzador. El ojo también puede abrirse para envenenar a una criatura, haciendo 30 puntos de daño durante un periodo de 30 segundos. -Ojo del espíritu: -Este ojo bloquea un ataque mágico de muerte instantánea (Conjuro de muerte, Dedo de la muerte, Palabra de poder: matar, Rematar a los vivos o Destrucción). El mago puede elegir abrir el ojo para lanzar el conjuro Rayo de debilitamiento que reduce la fuerza del objetivo en 5, su probabilidad del golpe certero, y el daño que provoca. -Ojo de la fortaleza: -Este ojo bloquea un efecto de aturdimiento, sordera, ceguera o silencio. O sino, se puede abrir el ojo para lanzar el conjuro de cuarto nivel de mago, Alarido. -Ojo de la piedra: -Este ojo escuda al lanzador de un único ataque petrificante. También puede abrirse el ojo para lanzar un conjuro de tercer nivel de mago, Inmovilizar persona. -Cualquier lanzamiento siguiente del conjuro Siete ojos fallará si se lanza antes de que haya expirado el conjuro original, queden o no ojos.~ -@212=~Siete ojos~ -@211=~Furia de Malavón~ -@210=~Furia de Malavón -(Evocación) -Nivel: 7 -Alcance: El lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Radio de 4,5 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -El conjuro Furia de Malavón lo creó Malavón, el hechicero elfo oscuro. Dispara dardos de energía pura desde el cuerpo del lanzador en todas direcciones, dañando por igual a amigos y a enemigos. Los pequeños tacos de magia hacen 20-80 puntos de daño perforante a todo lo que encuentran en su trayectoria. Este conjuro es especialmente útil cuando un mago está rodeado de enemigos.~ -@209=~Furia de Malavón~ -@208=~Golpe vorpalino~ -@207=~Muerte~ -@206=~Muerto viviente destruido~ -@205=~Planar destruído~ -@204=~Sambres~ -@203=~Sombras -(Ilusión/Fantasmagoría) -Nivel: 6 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Cubo de 6 metros de lado -Tirada de salvación: Ninguna -DESCRIPCIÓN: -El conjuro Sombras es parecido al de Monstruos de la sombra y al de Monstruos de la penumbra... permite al lanzador moldear la materia del Semiplano de las Sombras y transformarlo en criaturas ilusorias. Estas sombras son más fuertes que las sombras convocadas con los conjuros Monstruos de la sombra y Monstruos de la penumbra, y obedecerán al lanzador hasta que el conjuro expire o las maten.~ -@202=~Sombras~ -@201=~Toque de Liche~ -@200=~Toque de Liche~ -@199=~Toque de liche -(Nigromancia) -Nivel: 6 -Alcance: Toque -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro confiere al lanzador los poderes del toque y de las inmunidades de un liche. El mago obtiene la inmunidad a la parálisis y al miedo mientras el conjuro sea efectivo, y sus manos brillan con un resplandor verde sobrenatural que hacen 1-10 puntos de daño a un objetivo y lo paralizan a menos de tener éxito en una tirada de salvación contra parálisis. Este conjuro no es efectivo contra muertos vivientes.~ -@198=~Toque de liche~ -@197=~Disipar magia~ -@196=~Escudo antimagia~ -@195=~Escudo antimagia -(Abjuración) -Nivel: 6 -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: El lanzador -Tiro: Ninguna -DESCRIPCIÓN: -Este conjuro rodea al lanzador con una barrera invisible que se mueve con él. Esta barrera hace inmune al mago a cualquier ataque mágico, pero impide al mago poder lanzar conjuros fuera del escudo.~ -@194=~Escudo antimagia~ -@193=~Hombre lagarto violento~ -@192=~Trasgo de élite~ -@191=~Trasgo de élite~ -@190=~Monstruos de la penumbra~ -@189=~Monstruos de la penumbra -(Ilusión/Fantasmagoría) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: Cubo de 6 metros de lado -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro es parecido al conjuro de mago del 4º nivel, Monstruos de la sombra, excepto que las criaturas convocadas son mucho más poderosas, con el 40% de los puntos de golpe que tienen sus homónimos del mundo real.~ -@188=~Monstruos de la penumbra~ -@187=~Arma de troll~ -@186=~Troll~ -@185=~Troll~ -@184=~Monstruos de la sombra~ -@183=~Monstruos de la sombra -(Ilusión/Fantasmagoría) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Cubo de 6 metros de lado -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro moldea el material del Semiplano de las Sombras para convertirlo en monstruos ilusorios. Estos monstruos se convocan aleatoriamente uno por uno con los puntos de una tirada de dados entre 1 y el nivel del lanzador, hasta que los niveles de las criaturas convocadas suman en total el nivel que tiene el lanzador. (Por ejemplo, un mago de nivel 15 podría convocar a una criatura de nivel 10 en un asalto, entonces, en el siguiente asalto, la criatura que aparecería tendría una tirada de dados entre 1 y 5, y así sucesivamente). Estas criaturas de la sombra solo consiguen el 20% de los puntos de golpe que tienen sus homónimos del mundo real, aunque sus ataques provocan el daño en su totalidad.~ -@182=~Monstruos de la sombra~ -@181=~Acelerado~ -@180=~Lentificar~ -@179=~Ralentizado~ -@178=~Retirada expeditiva -(Alteración) -Nivel: 1 -Alcance: El lanzador -Duración: 3 asaltos -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro duplica la velocidad normal del lanzador durante un breve periodo de tiempo... normalmente, lo suficiente para poder escapar. Otros efectos que alteren el movimiento, como los conjuros Celeridad y Lentificar, no pueden afectar al lanzador mientras este conjuro sea efectivo.~ -@177=~Retirada expeditiva~ -@176=~Espada de Mordenkainen~ -@175=~Espada de Mordenkainen~ -@174=~Espada de Mordenkainen -(Evocación) -Nivel: 7 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro convoca una brillante espada de fuerza que puede ser blandida mentalmente por el lanzador. Golpea como si fuera usada por un guerrero con un nivel a la mitad del que tiene el lanzador, y a pesar del hecho de que se sostiene con la mano, puede golpear a criaturas en cualquier lugar dentro del rango visual del lanzador. Aunque la espada no tiene bonificaciones para el ataque, puede golpear a criaturas que normalmente se aciertan solamente con armas +2 o mejores, e inflige 5-30 puntos de daño en cada golpe.~ -@173=~Espada de Mordenkainen~ -@172=~Elemental de agua~ -@171=~Elemental de agua~ -@170=~Conjurar elemental de agua~ -@169=~Conjurar elemental de agua -(Conjuración/Convocación) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro permite al lanzador conjurar un elemental desde el Plano elemental del agua y vincularlo a su voluntad. Este elemental luchará en beneficio del lanzador hasta que la duración del conjuro expire o se destruya al elemental.~ -@168=~Conjurar elemental de agua~ -@167=~Elemental de aire~ -@166=~Elemental de aire~ -@165=~Conjurar elemental de aire~ -@164=~Conjure Air Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Air and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@163=~Conjurar elemental de aire~ -@162=~Elemental de fuego~ -@161=~Elemental de fuego~ -@160=~Conjurar elemental de fuego~ -@159=~Conjurar elemental de fuego -(Conjuración/Convocación) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro permite al lanzador convocar a un elemental del Plano elemental del fuego y lo vincula a su voluntad. Este elemental luchará en beneficio del lanzador hasta que finalice la duración del conjuro o se destruya al elemental.~ -@158=~Conjurar elemental de fuego~ -@157=~Elemental de tierra~ -@156=~Elemental de tierra~ -@155=~Conjurar elemental de tierra~ -@154=~Conjurar elemental de tierra -(Conjuración/Convocación) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro permite al lanzador convocar a un elemental del Plano elemental de tierra y lo vincula a su voluntad. Este elemental luchará en beneficio del lanzador hasta que finalice la duración del conjuro o se destruya al elemental.~ -@153=~Conjurar elemental de tierra~ -@152=~Convocar monstruos III~ -@151=~Convocar monstruos III -(Conjuración/Convocación) -Nivel: 5 -Alcance: 36 metros -Duración: 4 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-4 monstruos de tercer nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@150=~Convocar monstruos III~ -@149=~Hombre lagarto~ -@148=~Hombre lagarto~ -@147=~Convocar monstruos II~ -@146=~Convocar monstruos II -(Conjuración/Convocación) -Nivel: 4 -Alcance: 36 metros -Duración: 3 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-6 monstruos de segundo nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@145=~Convocar monstruos II~ -@144=~Trasgo~ -@143=~Trasgo~ -@142=~Convocar monstruos I~ -@141=~Convocar monstruos I -(Conjuración/Convocación) -Nivel: 3 -Alcance: 36 metros -Duración: 2 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 2-6 monstruos de primer nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@140=~Convocar monstruos I~ -@139=~Atacar~ -@138=~Minotauro~ -@137=~Minotauro~ -@136=~Convocar monstruos V~ -@135=~Convocar monstruos V -(Conjuración/Convocación) -Nivel: 7 -Alcance: 40 metros -Duración: 6 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-3 monstruos de quinto nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@134=~Convocar monstruos V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamandra~ -@130=~Salamandra~ -@129=~Salamandra de la escarcha~ -@128=~Salamandra de la escarcha~ -@127=~Convocar monstruos VI~ -@126=~Convocar monstruos VI -(Conjuración/Convocación) -Nivel: 8 -Alcance: 40 metros -Duración: 7 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-3 monstruos de sexto nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@125=~Convocar monstruos VI~ -@124=~Atacar~ -@123=~Mole sombría~ -@122=~Mole sombría~ -@121=~Esqueleto guardián~ -@120=~Esqueleto guardián~ -@119=~Convocar monstruos VII~ -@118=~Convocar monstruos VII -(Conjuración/Convocación) -Nivel: 9 -Alcance: 40 metros -Duración: 7 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 9 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-2 monstruos de séptimo u octavo nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@117=~Convocar monstruos VII~ -@116=~Convocar monstruos IV~ -@115=~Convocar monstruos IV -(Conjuración/Convocación) -Nivel: 6 -Alcance: 40 metros -Duración: 5 asaltos + 1 asalto por nivel -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Cuando se lanza este conjuro, el mago convoca entre 1-3 monstruos de cuarto nivel. Estos aparecen dentro del alcance del conjuro y se les puede ordenar que ataquen a los oponentes del lanzador hasta que termine la duración del conjuro o mueran los monstruos.~ -@114=~Convocar monstruos IV~ -@113=~Calavera~ -@112=~Monster Transparency -Do not translate~ -@111=~Objeto para transparentar monstruos~ -@110=~Sombra~ -@109=~Sombra~ -@108=~Invocar a la sombra~ -@107=~Invocar a la sombra -(Conjuración/Convocación, Nigromancia) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto + 1 asalto por nivel -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: Cubo de 3 metros de lado -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro convoca a una sombra por cada tres niveles del lanzador. Esta sombra obedecerá las ordenes del lanzador, atacando a sus enemigos o desempeñando tareas hasta que el conjuro expire o se mate a las sombras.~ -@106=~Invocar a la sombra~ -@105=~Puño de hierro~ -@104=~Puño de hierro~ -@103=~Aquejado de una terrible enfermedad.~ -@102=~Enfermo~ -@101=~Envenenado~ -@100=~Veneno~ -@99=~Cuerpo de hierro~ -@98=~Cuerpo de hierro -(Alteración) -Nivel: 8 -Alcance: El lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 8 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro transforma el cuerpo del lanzador en hierro viviente, otorgándole varias resistencias y habilidades poderosas. Mientras el conjuro sea efectivo, el lanzador obtiene una resistencia a la electricidad del 100%, del 50% al fuego y del 25% al daño contundente. -Los conjuros que afectan a la respiración o a la fisiología del lanzador se ignoran. Además, la fuerza del lanzador aumenta hasta 25, y puede atacar dos veces por asalto con unos puños de hierro que hacen 2D4 puntos de daño, y a esto hay que añadir las bonificaciones a la fuerza pertinentes. -Por desgracia, el movimiento del lanzador se lentifica y se vuelve torpe, situando su tasa de movimiento al 25% de su actual, y no puede lanzar conjuros mientras sea efectivo el conjuro Cuerpo de hierro.~ -@97=~Cuerpo de hierro~ -@96=~Inconsciente~ -@95=~Gran alarido~ -@94=~Gran alarido -(Invocación) -Nivel: 8 -Alcance: El lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 10 metros de largo por 3 metros de diámetro -Tirada de salvación: Mitad -DESCRIPCIÓN: -Tras vocalizar el conjuro Gran alarido, el lanzador libera por la boca una fuerza cónica espectacular de 10 metros de largo por 3 metros de diámetro. -El conjuro Gran alarido resulta extremadamente agotador y peligroso para el usuario. El alarido absorbe 2D4 puntos de golpe al lanzador y debe hacer una tirada de salvación contra conjuros o quedará inconsciente durante un asalto. -Las criaturas con 5 dados de golpe a las que afecta el conjuro Gran alarido, mueren al instante. Todas las otras criaturas dentro del área de efecto deben hacer una tirada de salvación contra conjuros. Las que la fallan, son aturdidas durante 2 asaltos, ensordecidas durante 4 asaltos y reciben 4D12 puntos de daño. Las que tienen éxito en la tirada, son aturdidas durante 1 asalto, ensordecidas durante 2 asaltos y reciben 2D12 puntos de daño.~ -@93=~Gran alarido~ -@92=~Escarabajo~ -@91=~Hechizado~ -@90=~Horrendamente hechizada~ -@89=~Dominado~ -@88=~Bajada de moral: pánico~ -@87=~Bebido~ -@86=~Confuso~ -@85=~Pensamiento estricto~ -@84=~Inmóvil~ -@83=~Paralizado~ -@82=~Inmóvil~ -@81=~Mente en blanco~ -@80=~Mente en blanco -(Abjuración) -Nivel: 8 -Alcance: El lanzador -Duración: 1 día -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -En lo referente al autocontrol y a la privacidad de uno mismo, el conjuro Mente en blanco escuda a la mente de la criatura de casi cualquier efecto mental... Hechizar, Orden imperiosa, Dominación, Miedo, Debilidad mental, y cualquier visión por bolas de cristal u otros métodos de adivinación.~ -@79=~Mente en blanco~ -@78=~Asfixiar~ -@77=~Asfixiar -(Alteración) -Nivel: 7 -Alcance: Rango visual del lanzador -Duración: 4 asaltos -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 3 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro extrae el aliento de todas las criaturas dentro del área de efecto. No afecta a las criaturas que no respiran. Las criaturas asfixiadas experimentan un penalizador -4 a la clase de armadura, -4 al golpe, -6 a la destreza, un ataque menos por asalto, la mitad de la tasa del movimiento, y recbien 4D8 puntos de daño por asalto. Una tirada de salvación con éxito niega todos los efectos, excepto que reciben 2D8 puntos de daño durante un asalto. Los efectos empiezan a disiparse cuando la criatura sale del área de efecto, aunque un personaje puede necesitar un asalto para recuperar el aliento.~ -@76=~Asfixiar~ -@75=~Tormenta ácida~ -@74=~Tormenta ácida -(Evocación) -Nivel: 7 -Alcance: Rango visual del lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 7 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro desata un aguacero ácido sobre el área de efecto, haciendo 1-4 puntos de daño en cada asalto durante los tres primeros asaltos, 1-6 puntos de daño durante los tres siguientes asaltos y 1-8 puntos de daño por cada asalto posterior. Apartarse del área de efecto no detiene el daño... el ácido se adhiere a la piel y todas las criaturas que se encontraban dentro del área de efecto cuando se lanzó la Tormenta ácida continúan sufriendo daño mientras el conjuro dure. Las criaturas hacen una tirada de salvación contra conjuros en cada asalto después de haber sido golpeadas por la tormenta... y si se tiene éxito, solamente reciben la mitad de daño (en ese asalto en concreto).~ -@73=~Tormenta ácida~ -@72=~Fortaleza de troll~ -@71=~Fortaleza de troll -(Nigromancia) -Nivel: 6 -Alcance: El lanzador -Duración: 2 asaltos -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro imbuye al lanzador con la capacidad de un troll, y le permite regenerar 5 puntos de golpe por asalto, hasta alcanzar sus puntos de golpe máximos.~ -@70=~Fortaleza de troll~ -@69=~Esqueleto~ -@68=~Esqueleto~ -@67=~Devorador de almas~ -@66=~Devorador de almas -(Nigromancia) -Nivel: 6 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: Radio de 3 metros -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro inflige 3D8 puntos de daño a todas las criaturas vivas en un radio de 3 metros. Toda criatura que muera como resultado de este daño se extinguirá, y su esencia se transformará en un esqueleto de 3 dados de golpe bajo el control del lanzador. Además, por cada criatura que muera de esta forma, el lanzador recibe una bonificación +1 a la fuerza, destreza y constitución durante 1 asalto. El conjuro Devorador de almas no tiene efecto en los muertos vivientes, constructos y criaturas elementales.~ -@65=~Devorador de almas~ -@64=~Dardo de hueso~ -@63=~Dardo de hueso~ -@62=~Dardos de hueso~ -@61=~Dardos de hueso -(Nigromancia) -Nivel: 6 -Alcance: El lanzador -Duración: 5 asaltos -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro crea nueve dardos que pueden usarse por el lanzador y no pueden desequiparse mientras el conjuro sea efectivo. Estos dardos poseen un bonificador +3, infligen 1D4 puntos de daño, y toda criatura que resulte alcanzada por un dardo debe hacer una tirada de salvación contra muerte exitosa, sino recibirá 2D6 puntos de daño y su fuerza se reducirá durante 3-5 asaltos. El talento marcial del lanzador con proyectiles (o su carencia), no tiene efecto en la probabilidad de que el dardo golpee un objetivo.~ -@60=~Dardos de hueso~ -@59=~Esfera congelante de Otiluke~ -@58=~Esfera congelante de Otiluke -(Alteración, Evocación) -Nivel: 6 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 6 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro dispara a una criatura un orbe de frío que inflige 3-6 puntos de daño por frío por cada nivel del lanzador. Sin embargo, si el objetivo tiene éxito en su tirada de salvación contra conjuros, puede esquivar el orbe y evitar todo el daño.~ -@57=~Esfera congelante de Otiluke~ -@56=~Sudario de fuego~ -@55=~Sudario de fuego -(Invocación) -Nivel: 5 -Alcance: Rango visual del lanzador -Duración: 1 asalto cada 2 niveles (especial) -Tiempo de lanzamiento: 5 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro hace que una criatura comience a arder si falla una tirada de salvación contra conjuros. La criatura arderá recibiendo 2D6 puntos de daño en cada asalto, y del objetivo ardiendo eruptan gotas de fuego que causan a las criaturas dentro de un radio de 3 metros del objetivo que reciban 1D4 puntos de daño por fuego. Cualquiera que sea golpeado por las llamas de la víctima también debe hacer una tirada de salvación contra conjuros para evitar contraer el sudario. El sudario de fuego se disipa si el lanzador y el objetivo ya no están en la misma área. Este conjuro es particularmente útil para dispersar grupos de trolls o salamandras de la escarcha.~ -@54=~Sudario de fuego~ -@53=~~ -@52=~Esfera vitriólica~ -@51=~Esfera vitriólica -(Conjuración) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: Especial -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro convoca una esfera de ácido de color esmeralda brillante que el lanzador puede dirigir para que golpee a cualquier objetivo dentro de su alcance. -Cuando acierta en el objetivo, la esfera explota y empapa a la víctima con un potente ácido. La víctima sufre 1D4 puntos de daño por ácido por nivel del lanzador, hasta un máximo de 12D4 puntos de daño. Tras el daño inicial, la víctima debe hacer una tirada de salvación para evitar el daño. Si no tiene éxito, la víctima continúa sufriendo daño por ácido en los asaltos siguientes, soportando dos dados menos de daño en cada asalto que transcurre. Por ejemplo, un mago de octavo nivel inflige 8D4 puntos de daño con este conjuro en el primer asalto, 6D4 en el segundo asalto, 4D4 en el tercero, 2D4 en el cuarto, y en el quinto asalto finaliza el conjuro. A la víctima se le permite una tirada de salvación contra conjuros en cada ronda para evitar más daño. -El conjuro Esfera vitriólica también salpica ácido en un radio de 1'5 metros alrededor del primer objetivo. Las criaturas dentro del radio donde salpica, deben hacer una tirada de salvación contra polimorfismo/petrificación o sufrirán un golpe por salpicadura que inflige 1D4 puntos de daño por cada cinco niveles del lanzador. Los golpes por salpicadura no provocan un daño continuado.~ -@50=~Esfera vitriólica~ -@49=~Sordera~ -@48=~Alarido~ -@47=~Alarido -(Invocación) -Nivel: 4 -Alcance: El lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 1 asalto -Ãrea de efecto: 10 metros de largo por 3 metros de diámetro -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro otorga al mago un tremendo poder vocal, permitiéndole emitir desde la boca un rugido ensordecedor que cubre un área de efecto cónica de 10 metros de largo por 3 metros de diámetro en su punto más lejano. Cualquier criatura dentro del área queda ensordecida durante 2D6 asaltos y recibe 4D6 puntos de daño. Una tirada de salvación contra conjuros con éxito niega la sordera y reduce el daño a la mitad.~ -@46=~Alarido~ -@45=~Proyectiles de fuerza de Mordenkainen~ -@44=~Proyectiles de fuerza de Mordenkainen -(Invocación) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro crea un globo brillante de energía mágica que surge de la mano del lanzador y alcanza a su objetivo sin posibilidad de error, de forma muy parecida al conjuro Proyectil mágico. El mago crea un proyectil en el séptimo nivel, y un proyectil adicional cada tres niveles después del séptimo... en otras palabras, dos proyectiles a nivel 10, tres a nivel 13, cuatro a nivel 16, y así, hasta un máximo de siete proyectiles a nivel 25. Cada proyectil inflige 2D4 puntos de daño al objetivo y, a continuación, brota en un radio de 1'5 metros una explosión violenta que inflige 1 punto de daño por nivel del lanzador... por ejemplo, un mago de nivel 12, podría convocar dos proyectiles de fuerza, y cada uno de ellos haría 2D4+12 puntos de daño. -Las criaturas que reciben el daño pueden intentar una tirada de salvación contra conjuros para evitar el daño de la explosión, pero el propio proyectil no permite ninguna tirada de salvación. El conjuro Escudo del primer nivel de mago absorbe el daño del proyectil de fuerza, incluído el daño de la explosión.~ -@43=~Proyectiles de fuerza de Mordenkainen~ -@42=~Desesperación~ -@41=~Aturdido~ -@40=~Emoción: desesperación~ -@39=~Emoción: desesperación -(Encantamiento/Hechizo) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 1 asalto -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro crea la emoción de la desesperanza dentro del área de efecto. Todas las criaturas afectadas por el conjuro se detienen y no hacen nada mientras dura el conjuro.~ -@38=~Emoción: desesperación~ -@37=~Pánico~ -@36=~Emoción: temor~ -@35=~Emoción: temor -(Encantamiento/Hechizo) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 5 asaltos -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro provoca la emoción de temor dentro del área de efecto. Todas las criaturas afectadas por el conjuro huyen durante 5 asaltos.~ -@34=~Emoción: temor~ -@33=~Emoción: esperanza~ -@32=~Emoción: esperanza -(Encantamiento/Hechizo) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 5 asaltos -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro crea la emoción de esperanza dentro del área de efecto. Todas las criaturas afectadas por el conjuro ganan un aumento de la moral, y +2 a las tiradas de salvación, tiradas de dado para el ataque y tiradas de dado para el daño.~ -@31=~Emoción: esperanza~ -@30=~Emoción: valentía~ -@29=~Emoción: valentía -(Encantamiento/Hechizo) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 5 asaltos -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: Radio de 6 metros -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro provoca la emoción de valentía dentro del área de efecto. Todas las criaturas afectadas por el conjuro ganan +1 al acierto del golpe, +3 a las tiradas de dado al daño y +5 a los puntos de golpe temporales (que pueden superar los puntos de golpe máximos). Este conjuro anula todos los efectos de miedo dentro del área de efecto en el momento de ser lanzado.~ -@28=~Emoción: valentía~ -@27=~Furia~ -@26=~Sangre ardiente de Beltyn~ -@25=~Sangre ardiente de Beltyn -(Nigromancia) -Nivel: 4 -Alcance: Rango visual del lanzador -Duración: 1 asalto cada 2 niveles -Tiempo de lanzamiento: 4 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Negación -DESCRIPCIÓN: -Este conjuro convierte la sangre del objetivo en fuego, y a causa de eso, recibe 3-12 puntos de daño en cada asalto y hace que se enfurezca debido al dolor. El objetivo debe hacer una tirada de salvación contra conjuros en cada asalto; si tiene éxito, el daño y el estar enfurecido se niegan. Este conjuro no funciona en muertos vivientes o en criaturas de los Planos exteriores que no tengan sangre (como los elementales). Si la criatura es resistente al fuego, esta resistencia disminuirá o anulará el daño de este conjuro.~ -@24=~Sangre ardiente de Beltyn~ -@23=~Lanza de disrupción~ -@22=~Lanza de disrupción -(Invocación) -Nivel: 3 -Alcance: 18 metros -Duración: Instantáneo -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: Especial -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro crea una lanza de energía, que se extiende desde el lanzador hasta un punto concreto situado a una distancia de 18 metros. Cualquier criatura que se encuentre en el camino de la lanza sufrirá 5D4 puntos de daño contundente, y adicionalmente, +2 puntos de daño por nivel del lanzador (hasta un máximo de +30). -Las víctimas pueden hacer una tirada de salvación contra conjuros para recibir solamente la mitad del daño.~ -@21=~Lanza de disrupción~ -@20=~Atontado~ -@19=~Lanza de hielo~ -@18=~Lanza de hielo -(Evocación) -Nivel: 3 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 3 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Especial -DESCRIPCIÓN: -Este conjuro dispara una lanza mágica de hielo al objetivo que elije el lanzador. Golpea de forma automática, infligiendo 5-30 puntos de daño y forzando al objetivo a hacer una tirada de salvación contra conjuros, sino quedará aturdido durante 1-4 asaltos.~ -@17=~Lanza de hielo~ -@16=~Modificación de la Destreza~ -@15=~Gracia felina~ -@14=~Gracia felina -(Alteración) -Nivel: 2 -Alcance: Toque -Duración: 1 hora por nivel -Tiempo de lanzamiento: 2 asaltos -Ãrea de efecto: 1 criatura -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro incrementa mágicamente la Destreza del objetivo, aunque la cantidad depende de su clase: -Los ladrones ganan 1-8 puntos -Los guerreros y magos ganan 1-6 puntos -Los clérigos ganan 1-4 puntos -El conjuro Gracia felina no puede aumentar en más de 20 la destreza del objetivo.~ -@13=~Gracia felina~ -@12=~Decaestaca~ -@11=~Decaestaca~ -@10=~Decaestaca~ -@9=~Decaestaca -(Evocación) -Nivel: 2 -Alcance: El lanzador -Duración: 1 asalto por nivel -Tiempo de lanzamiento: 2 asaltos -Ãrea de efecto: El lanzador -Tirada de salvación: Ninguna -DESCRIPCIÓN: -Este conjuro crea un bastón de energía en la mano del lanzador. Se considera un arma mágica, y hace 1-6 puntos de daño por golpe y puede golpear a criaturas inmunes a armas normales. Sin embargo es una bastón, así que si el lanzador no tiene ningún talento marcial en bastones, entonces la Decaestaca se usa con penalizadores. El bastón también tiene el poder para drenar 1-2 puntos de golpe del objetivo en el primer golpe. Estos puntos de golpe se añaden al lanzador, pero solo pueden curar el daño que el lanzador ha recibido; no aumentarán sus puntos de golpe máximos.~ -@8=~Decaestaca~ -@7=~Enjambre de bolas de nieve de Snilloc -(Evocación) -Nivel: 2 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 2 asaltos -Ãrea de efecto: Radio de 7,5 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro ocasiona unos remolinos de bolas de nieve que brotan desde un punto dentro de una zona determinada. Estas bolas de nieve golpearán a todo lo que se encuentre dentro del área de efecto, haciendo 1-3 puntos de daño por nivel, hasta un máximo de 8-24 puntos de daño en el nivel 8. Contra criaturas que usan o moran en el fuego, inflige 1-6 puntos de daño por nivel.~ -@6=~~ -@5=~Enjambre de bolas de nieve de Snilloc~ -@4=~Enjambre de bolas de nieve de Snilloc -(Evocación) -Nivel: 2 -Alcance: Rango visual del lanzador -Duración: Instantáneo -Tiempo de lanzamiento: 2 asaltos -Ãrea de efecto: Radio de 7,5 metros -Tirada de salvación: Mitad -DESCRIPCIÓN: -Este conjuro ocasiona unos remolinos de bolas de nieve que brotan desde un punto dentro de una zona determinada. Estas bolas de nieve golpearán a todo lo que se encuentre dentro del área de efecto, haciendo 1-3 puntos de daño por nivel, hasta un máximo de 8-24 puntos de daño en el nivel 8. Contra criaturas que usan o moran en el fuego, inflige 1-6 puntos de daño por nivel.~ -@3=~~ -@2=~Enjambre de bolas de nieve de Snilloc~ -@1=~Pergamino~ diff --git a/iwdification/dw/copyover/tra/fr_FR/iwdspells.tra b/iwdification/dw/copyover/tra/fr_FR/iwdspells.tra deleted file mode 100644 index d91aba7..0000000 --- a/iwdification/dw/copyover/tra/fr_FR/iwdspells.tra +++ /dev/null @@ -1,1225 +0,0 @@ -@375=~Chant de guerre de Sith - bonus à l'armure et régénération~ -@374=~"Le chant de Guerre de Sith" -Tous les alliés à 9 mètres de distance gagnent un bonus de +2 à la classe d'armure, 10% de résistance aux dégâts tranchants, perforants, contondants et projectiles, ainsi qu'une capacité de régénération de 2 points de vie par round.~ -@373=~Chant de guerre de Sith~ -@372=~Captivé~ -@371=~Chant des sirènes - fascine qui l'entend~ -@370=~"Le chant des Sirènes" -Tous les adversaires à 9 mètres de distance doivent réussir un jet de sauvegarde contre les sorts ou perdre leur action pendant un round, ou jusqu'à ce qu'ils subissent des dégâts.~ -@369=~Chant des sirènes~ -@368=~Chant de Kaudiès - résistance aux attaques soniques~ -@367=~"Le chant de Kaudiès" -Tous les alliés à 9 mètres de distance ont 50% de chances de résister aux effets des sorts de Silence, Cri, Grand Cri, Injonction, Injonction majeure et tout autre attaque à base de son.~ -@366=~Chant de Kaudiès~ -@365=~Mélodie de Tymora - bonus de chance et de compétence~ -@364=~"La mélodie de Tymora" -Tous les alliés à 9 mètres de distance gagnent un bonus de +1 à la chance, +3 aux jets de sauvegarde, +10 au score de connaissance et +10% aux talents de voleur.~ -@363=~Mélodie de Tymora~ -@362=~Ballade de Curran CÅ“urvaillant - immunité contre la terreur~ -@361=~"La ballade de Curran CÅ“urvaillant" -Tous les alliés à 9 mètres de distance sont immunisés à la terreur aussi longtemps que dure la musique, et tout effet de terreur est dissipé instantanément.~ -@360=~Ballade de Curran CÅ“urvaillant~ -@359=~Ballade des Trois Héros - bonus au combat~ -@358=~"La ballade des Trois Héros" -Tous les alliés à 9 mètres de distance gagnent un bonus de +1 à l'attaque, aux dégâts et aux jets de sauvegarde.~ -@357=~Ballade des Trois Héros~ -@356=~Cantique -(Conjuration/Convocation) -Niveau : 2 -Sphère : Combat -Portée : champ visuel du lanceur -Durée : 1 tour -Temps d'incantation : 9 -Zone d'effet : rayon de 18 mètres -Jet de sauvegarde : aucun -Avec le sort de Cantique, le prêtre attire une faveur spéciale sur lui-même et sur son groupe, et inflige des dégâts à ses ennemis. Au terme de l'incantation, tous les jets d'attaque et de sauvegarde, ainsi que les dégâts minimum effectués par les alliés du prêtre situés dans la zone d'effet reçoivent un bonus de +1. En outre, tous les dommages infligés par les adversaires, à l'exception des dégâts de base des armes, diminuent d'une face de dé. Par exemple, une boule de feu de 6d6 dégâts de feu n'en infligera que 6d5, et une épée longue infligeant 1d8 +2 dégâts, +1d3 dégâts de feu n'en infligera que 1d8 +2, +1d2 dégâts de feu. Les ennemis du prêtre souffrent des effets opposés. -Les cantiques multiples ne sont pas cumulatifs. Le sort requiert une certaine concentration de la part du prêtre, qui est incapable de faire appel à sa magie et dont la vitesse de déplacement est réduite de moitié.~ -@355=~Cantique~ -@354=~Pommade anti-scarabées bombardiers -Do not translate~ -@353=~Scarabée scolyte~ -@352=~Scarabée scolyte~ -@351=~Scarabée bombardier~ -@350=~Scarabée bombardier~ -@349=~Insecte géant -(Transmutation) -Niveau : 4 -Sphère : Faune -Portée : champ visuel du lanceur -Durée : 8 heures -Temps d'incantation : 7 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort invoque 2 ou 3 scarabées scolytes ou scarabées bombardiers. Les insectes seront aux ordres du lanceur jusqu'à leur mort ou l'expiration de la durée du sort.~ -@348=~Insecte géant~ -@347=~Blessure critique -(Nécromancie) -Niveau : 5 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 8 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -En lançant ce sort, le personnage peut, en touchant la créature ciblée, lui infliger 27 points de dégâts (jet de sauvegarde contre les sorts pour demi-dégâts). Ce sort reste sans effet sur les morts-vivants, les créatures artificielles ou extra-planaires. Il ne peut être lancé que par des personnages d'alignement mauvais.~ -@346=~Blessure critique~ -@345=~Blessure grave -(Nécromancie) -Niveau : 4 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -En lançant ce sort, le personnage peut, en touchant la créature ciblée, lui infliger 17 points de dégâts (jet de sauvegarde contre les sorts pour demi-dégâts). Ce sort reste sans effet sur les morts-vivants, les créatures artificielles ou extra-planaires. Il ne peut être lancé par des personnages d'alignement bons.~ -@344=~Blessure grave~ -@343=~Deux niveaux absorbés~ -@342=~Drain d'énergie -(Nécromancie) -Niveau : 7 -Sphère : Nécromancie -Portée : contact -Durée : permanente -Temps d'incantation : 3 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort permet de transformer le lanceur en un conduit d'énergie entre son plan et le Plan de l'Énergie Négative. En touchant une créature, le personnage aspire son essence vitale en direction du Plan de l'Énergie Négative, lui drainant 2 niveaux d'expérience. La cible perd ainsi des niveaux, des points de vie et des capacités de manière permanente. Ces niveaux ne peuvent être restaurés que par le sort de clerc de Restauration. Ce sort reste sans effet contre les morts-vivants, les créatures artificielles et extra-planaires. Il ne peut être lancé que par un personnage d'alignement mauvais.~ -@341=~Absorption d'énergie~ -@340=~Enchevêtré(e)~ -@339=~Tertre errant.~ -@338=~Tertre errant.~ -@337=~Traqueur -(Conjuration) -Niveau : 7 -Sphère : Flore -Portée : champ visuel du lanceur -Durée : 8 heures -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 11 DV de tertres errants, qui servent fidèlement le personnage, soit au combat, soit en lui rendant les services dont ils sont capables de se charger.~ -@336=~Traqueur~ -@335=~Brume d'Eldath -(Évocation) -Niveau : 7 -Sphère : Élémentaire -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 9 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : aucun -Une brume bleutée parée de reflets d'argent baigne la zone d'effet. Elle soigne toutes les maladies, vient à bout de tous les empoisonnements et rend 25 points de vie à chaque créature qu'elle enveloppe.~ -@334=~Brume d'Eldath~ -@333=~Bouclier suprême de Lathandre -(Conjuration) -Niveau : 7 -Sphère : Garde -Portée : contact -Durée : 3 rounds -Temps d'incantation : 9 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Le sujet bénéficie d'une résistance à la magie de 100 % et d'une immunité totale contre les dégâts jusqu'au terme de la durée indiquée. Bouclier suprême de Lathandre ne peut protéger une créature d'alignement mauvais. Seul un personnage d'alignement bon peut lancer ce sort.~ -@332=~Bouclier suprême de Lathandre~ -@331=~Destruction -(Nécromancie) -Niveau : 7 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 9 -Zone d'effet : le lanceur -Jet de sauvegarde : spécial -Ce sort détruit la cible et la fait tomber en débris. La victime a droit à un jet de sauvegarde contre la mort magique, à -4. En cas de succès, elle n'est pas détruite mais perd 8d6 points de vie. Ce sort ne peut être lancé que par les personnages d'alignement mauvais. À noter qu'un individu tué par Destruction ne peut être ramené à la vie grâce à Rappel à la vie ou Résurrection.~ -@330=~Destruction~ -@329=~Sort inefficace~ -@328=~Citadelle de l'âme -(Abjuration) -Niveau : 7 -Sphère : Protection -Portée : personnelle -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort immunise l'esprit du prêtre contre toute influence extérieure. Tant que le sort fait effet, le personnage est immunisé aux effets de charme, confusion, terreur, débilité mentale, immobilisation, sommeil, sort de Labyrinthe et ébriété.~ -@327=~Citadelle de l'âme~ -@326=~Symbole : désespoir -(Conjuration/Convocation) -Niveau : 7 -Sphère : Garde -Portée : champ visuel du lanceur -Durée : 2 tours -Temps d'incantation : 3 -Zone d'effet : 4,50 mètres de rayon -Jet de sauvegarde : annule -Ce puissant enchantement permet au prêtre d'inscrire, à même le sol ou sur toute autre surface, un symbole qui y reste jusqu'à ce que quelqu'un approche. À ce moment, le symbole explose et toutes les créatures comprises dans la zone d'effet doivent réussir un jet de sauvegarde contre les sorts avec une pénalité de -2 sous peine de rester immobiles, tellement dépitées et découragées qu'elles ne se défendent même pas lorsqu'on les attaque. Ce sort dissipe l'influence d'Émotion, espoir dans la zone d'effet au moment de son lancement.~ -@325=~Symbole : désespoir~ -@324=~Douleurs atroces~ -@323=~Symbole, douleur -(Conjuration/Convocation) -Niveau : 7 -Sphère : Garde -Portée : champ visuel du lanceur -Durée : 11 tours -Temps d'incantation : 3 -Zone d'effet : 4,50 mètres de rayon -Jet de sauvegarde : annule -Toutes les créatures situées à moins de 4,50 mètres du symbole doivent effectuer un jet de sauvegarde contre les sorts. En cas d'échec, la douleur qu'elles ressentent se traduit par -4 aux jets d'attaque et -2 en Dextérité et à la CA.~ -@322=~Symbole : douleur~ -@321=~Courroux spirituel -(Évocation) -Niveau : 6 -Sphère : Combat -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 2 -Zone d'effet : spéciale -Jet de sauvegarde : demi-dégâts -Au terme de l'incantation, le prêtre canalise l'énergie spirituelle pour la libérer sous forme d'éclairs dans quatre directions. Le personnage en choisit une, les autres éclairs partant à angle droit du premier (en forme de croix). Toute créature touchée par un éclair subit 4d10 points de dégâts, total réduit de moitié en cas de jet de sauvegarde réussi. Les créatures ayant la même composante morale d'alignement que le lanceur (bien, mal ou neutralité) ne sont pas affectées.~ -@320=~Courroux spirituel~ -@319=~Tourbillon -(Évocation) -Niveau : 6 -Sphère : Élémentaire (air) -Portée : champ visuel du lanceur -Durée : spéciale -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de sauvegarde : spécial -Ce sort génère un petit tourbillon à proximité du personnage, lequel peut l'envoyer en n'importe quel point de son champ de vision. Une fois que le cyclone atteint sa destination, le prêtre peut cesser de le contrôler et le tourbillon se déplace alors au hasard, affectant toutes les créatures qu'il touche. Le personnage est immunisé contre l'effet du sort, de même que les élémentaux et les créatures énormes ou plus. Toute autre créature prise dans le tourbillon subit 2d8 points de dégâts contondant et 2d8 points de dégâts tranchants. Elle doit également réussir un jet de sauvegarde contre les souffles pour ne pas être étourdie pendant 2 rounds. Les créatures de 2 DV ou moins sont automatiquement tuées par ce sort. Le tourbillon peut affecter un maximum de 8 cibles, après quoi il se dissipe.~ -@318=~Tourbillon~ -@317=~Bouclier entropique -(Abjuration) -Niveau : 6 -Sphère : Protection -Portée : personnelle -Durée : 1 round par niveau -Temps d'incantation : 9 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort entoure le prêtre d'une aura d'énergie stoppant ou détournant la plupart des attaques. Elle confère un bonus de +6 à la CA et 50 % de résistance à la magie contre la plupart des attaques (feu, froid, électricité, etc.). Enfin, le prêtre bénéficie d'un bonus de +2 à tous ses jets de sauvegarde, tout en étant immunisé contre les projectiles.~ -@316=~Bouclier entropique~ -@315=~Blessure légère de masse -(Nécromancie) -Niveau : 5 -Sphère : Guérison -Portée : personnelle -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : rayon de 4,50 mètres -Jet de sauvegarde : demi-dégâts -Avec ce sort, le lanceur inflige 1d8 dégâts, +1 point de dégât par niveau aux adversaires à proximité. Un jet de sauvegarde contre les sorts permet de diviser les dégâts par 2. Ce sort reste sans effet contre les morts-vivants, les créatures artificielles et extra-planaires. Ce sort ne peut être lancé que par des personnages d'alignement mauvais.~ -@314=~Blessure légère de masse~ -@313=~Rage animale -(Enchantement) -Niveau : 5 -Sphère : Combat -Portée : contact -Durée : 15 rounds -Temps d'incantation : 8 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort confère au sujet la férocité d'une bête sauvage, ce qui se traduit par les avantages suivants : 19 en force, +20 points de vie, +20 % en vitesse de déplacement et +2 à tous les jets de sauvegarde. Par contre, le sujet ne peut jeter le moindre sort tant que Rage animale fait effet. Il peut être contrôlé normalement, sauf s'il aperçoit le moindre ennemi, auquel cas il se rue sur lui en utilisant toutes les armes possibles et imaginables. Chaque round, il y a 5 % de chances que le personnage devienne totalement enragé et attaque tout le monde, amis comme ennemis.~ -@312=~Rage animale~ -@311=~Vigilance contre les morts-vivants -(Nécromancie) -Niveau : 5 -Sphère : Glyphes -Portée : personelle -Durée : 1 tour -Temps d'incantation : 7 -Zone d'effet : 3 mètres de rayon -Jet de sauvegarde : aucun -Ce sort amplifie l'influence que le prêtre a sur les morts-vivants, mais il est lié à la zone autour du prêtre au moment du lancement. Tout mort-vivant pénétrant dans la zone d'effet est automatiquement affecté comme si le prêtre venait d'essayer de le repousser. En cas d'échec, le mort-vivant est immunisé contre le sort, sauf s'il quitte la zone d'effet pour y revenir par la suite.~ -@310=~Vigilance contre les morts-vivants~ -@309=~Bouclier de Lathandre -(Conjuration) -Niveau : 5 -Sphère : Garde -Portée : contact -Durée : 2 rounds -Temps d'incantation : 8 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Le sujet est immunisé contre les dégâts jusqu'au terme de la durée indiquée. Bouclier de Lathandre ne peut protéger une créature d'alignement mauvais. Seul un personnage d'alignement non-mauvais peut lancer ce sort.~ -@308=~Bouclier de Lathandre~ -@307=~Pierres acérées -(Transmutation, Enchantement) -Niveau : 5 -Sphère : Élémentaire (terre) -Portée : champ visuel du lanceur -Durée : 12 rounds -Temps d'incantation : 6 -Zone d'effet : 2,40 mètres de rayon -Jet de sauvegarde : spécial -Ce sort déforme la roche pour faire apparaître des pointes camouflées et invisibles. Toute créature pénétrant dans la zone d'effet perd 2d4 points de vie par round et doit réussir un jet de sauvegarde contre les sorts ou voir sa vitesse de déplacement diminuer de 30%.~ -@306=~Pierres acérées~ -@305=~Juste courroux des fidèles -(Enchantement/Charme) -Niveau : 5 -Sphère : Combat -Portée : personnelle -Durée : 1 round par niveau -Temps d'incantation : 8 -Zone d'effet : 5,10 mètres de rayon -Jet de sauvegarde : aucun -Ce sort confère une sorte de folie divine aux alliés du prêtre, ce qui améliore leurs facultés martiales. Tous les compagnons du prêtre se trouvant dans la zone d'effet bénéficient d'un bonus de +1 aux jets d'attaque et de sauvegarde, tout en gagnant 8 points de vie supplémentaires (pouvant leur permettre de dépasser temporairement leur maximum de points de vie). Cependant, s'ils ont le même alignement que le prêtre, ils gagnent une attaque supplémentaire par round (qui annule Hâte), un bonus de +2 aux jets d'attaque, de dégâts et de sauvegarde, ainsi qu'une immunité aux sorts de charme et d'immobilisation. Les bénéficiaires du sort seront sujets à la fatigue une fois que l'enchantement prend fin.~ -@304=~Juste courroux des fidèles~ -@303=~Mur de lune -(Évocation) -Niveau : 4 -Sphère : Protection, Soleil -Portée : champ visuel du lanceur -Durée : 1 tour -Temps d'incantation : 7 -Zone d'effet : mur de 2,40 mètres de long sur 60 centimètres d'épaisseur -Jet de sauvegarde : aucun -Ce sort fait apparaître un mur luisant d'énergie blanc-bleu. Il est intangible et n'a pas besoin d'être ancré à des points fixes. On peut passer librement au travers, mais les créatures d'alignement mauvais qui s'y risquent subissent 2d10 points de dégâts (5d10 pour les morts-vivants d'alignement mauvais). Une créature blessée par le mur ne peut être affectée une seconde fois, même si elle le retraverse. Plusieurs Murs de lune ne peuvent fonctionner en même temps.~ -@302=~Mur de lune~ -@301=~Projection d'épines -(Transmutation) -Niveau : 4 -Sphère : Flore -Portée : 9 mètres -Durée : instantanée -Temps d'incantation : 3 -Zone d'effet : cône de 5,10 mètres de long et de 90 degrés d'angle -Jet de sauvegarde : demi-dégâts -Par le biais de ce sort, le lanceur fait jaillir une gerbe d'épines, pics, barbillons et pointes de sa main. Les projectiles couvrent une zone conique de 5,10 mètres de long et de 90 degrés d'angle. Ils infligent 2d10 points de dégâts perforants à toutes les créatures dans la zone d'effet, ou 1d10 en cas de jet de sauvegarde réussi contre la mort.~ -@300=~Projection d'épines~ -@299=~Inconscient~ -@298=~Vague destructrice -(Évocation) -Niveau : 4 -Sphère : Élémentaire (eau) -Portée : 30 mètres -Durée : instantanée -Temps d'incantation : 1 round -Zone d'effet : spéciale -Jet de sauvegarde : spécial -Le sort appelle une vague d'eau qui se dirige dans la direction déterminée par le personnage, occasionnant de terribles ravages sur son passage. Toute créature touchée subit 4d10 points de dégâts contondants et a 25 % de chances de se retrouver étourdie pour 2 rounds, ainsi que 5 % de chances de perdre connaissance. En cas de jet de sauvegarde réussi contre les souffles, les dégâts sont réduits de moitié et il n'y a aucun risque d'étourdissement ou de perte de connaissance.~ -@297=~Vague destructrice~ -@296=~Masse d'armes météorique~ -@295=~Masse d'armes météorique~ -@294=~Masse d'armes météorique -(Conjuration) -Niveau : 4 -Sphère : Combat -Portée : personnelle -Durée : 3 tours -Temps d'incantation : 7 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort crée une masse d'armes en fer météorique infligeant 1d6 +2 dégâts contondants, bénéficiant d'un bonus de +2 à l'attaque et considérée comme une arme +4 afin de déterminer ce qu'elle peut toucher. Tous les bonus habituels s'appliquent normalement (Force, compétence et spécialisation). La masse inflige 2d6 points de dégâts contondants supplémentaires aux créatures qui ne sont pas d'origine naturelle (morts-vivants, élémentaux, golems, entités extra-planaires, etc.)~ -@293=~Masse d'armes météorique~ -@292=~Endurance infaillible -(Nécromancie) -Niveau : 4 -Sphère : Nécromancie -Portée : contact -Durée : instantanée -Temps d'incantation : 9 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort permet à la créature touchée de recouvrer les forces perdues au cours des 36 dernières heures (par une succession d'efforts physiques). Notez qu'il n'est pas forcément suffisant pour sortir d'un état fatigué.~ -@291=~Endurance infaillible~ -@290=~Nuage de pestilence -(Transmutation) -Niveau : 4 -Sphère : Combat, Élémentaire (air) -Portée : champ visuel du lanceur -Durée : 4 rounds -Temps d'incantation : 7 -Zone d'effet : 3,60 mètres de rayon -Jet de sauvegarde : annule -Ce sort transforme l'air en brume gris-vert nauséabonde à 3,60 mètres à la ronde. Le lanceur est immunisé contre l'effet des vapeurs, de même que les créatures qui ne respirent pas. A chaque round d'exposition à l'air infesté de maladies, une créature doit réussir un jet de sauvegarde contre les souffles sous peine de subir 3 points de dégâts magiques, d'être aveuglée et de perdre 3 points de Force et de Dextérité. La cécité et la perte de point de caractéristiques durent 1 tour. Nuage de pestilence ne peut être lancé que par les personnages mauvais.~ -@289=~Nuage de pestilence~ -@288=~Étourdir~ -@287=~Guéri(e)~ -@286=~Rage sanguinaire -(Transmutation) -Niveau : 4 -Sphère : Combat -Portée : champ visuel du lanceur -Durée : 2 tours -Temps d'incantation : 7 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort ne fonctionne que sur les personnages et leurs alliés. Le sujet est aussitôt pris d'une rage meurtrière : il s'acharne sur la créature la plus proche jusqu'à la tuer, puis passe à la suivante. Sous l'emprise de ce sort, le sujet est immunisé contre l'étourdissement et les effets de type Charme, Sommeil, Terreur, Immobilisation, Confusion, Émotion et Symbole. De plus, il gagne +2 à l'attaque, +3 aux dégâts, +2 en force, 10 points de vie et un bonus à sa vitesse de déplacement. Cela étant, le sort présente également certains inconvénients : les points de vie du sujet sont masqués jusqu'au terme de la durée indiquée et il ne peut bénéficier d'aucun effet permettant de récupérer des points de vie. Quand le sort s'achève, le personnage se sent pris d'une grande fatigue et tombe à 3 de Force pendant 2 tours. Les créatures d'alignement loyal ne peuvent ni avoir recours à Rage sanguinaire, ni être affecté par ce sort.~ -@285=~Rage sanguinaire~ -@284=~Récitation -(Abjuration, Invocation/Évocation) -Niveau : 4 -Sphère : Combat -Portée : personnelle -Durée : 1 round par niveau -Temps d'incantation : 7 -Zone d'effet : rayon de 7,50 mètres -Jet de sauvegarde : aucun -En récitant un passage de texte sacré, le prêtre invoque la bénédiction de son dieu sur lui-même et ses alliés, tout en affaiblissant ses ennemis et en semant la confusion dans leurs rangs. Les compagnons du prêtre bénéficient d'un bonus de +2 à leurs jets d'attaque et de sauvegarde, tandis que ses adversaires subissent une pénalité de -2. Ce sort n'annule pas Prière ; tous deux peuvent être jetés en même temps, auquel cas leurs effets se cumulent.~ -@283=~Récitation~ -@282=~Décharge d'électricité statique~ -@281=~Électricité statique -(Transmutation) -Niveau : 4 -Sphère : Climat -Portée : personnelle -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : champ visuel du lanceur -Jet de sauvegarde : demi-dégâts -Électricité statique est similaire à Appel de la foudre, si ce n'est qu'il est possible de l'utiliser en intérieur. Le sort permet de générer une charge d'électricité statique dans la zone d'effet, ce qui inflige 2d8 points de dégâts plus 1d8 par niveau du prêtre. La charge se déclenche une fois par tour jusqu'à ce que le sort arrive à son terme.~ -@280=~Électricité statique~ -@279=~Flammes -(Transmutation) -Niveau : 4 -Sphère : Élémentaire (feu) -Portée : champ visuel du lanceur -Durée : 1 round -Temps d'incantation : 7 -Zone d'effet : rayon de 1,20 mètre -Jet de sauvegarde : aucun -Ce sort fait apparaître des flammes causant 1d4 points de dégâts plus 1 point par niveau du prêtre à toutes les créatures comprises dans la zone d'effet. Les créatures subiront les dommages une fois par round quel que soit le moment où elles sont entrées dans la zone d'effet.~ -@278=~Flammes~ -@277=~Faveur d'Ilmater -(Nécromancie) -Niveau : 3 -Sphère : Nécromancie, Protection -Portée : 9 mètres -Durée : instantanée -Temps d'incantation : 6 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -En lançant ce sort, le personnage échange sa force de vie avec celle de la cible, ce qui échange également leurs blessures physiques. Ce sort fonctionnera uniquement si le lanceur dispose de plus de points de vie que la cible. L'échange est permanent, et le lanceur peut soigner les blessures acquises avec les méthodes habituelles. L'échange peut être fait à distance, dans la limite de la portée du sort. Seuls les points de vie sont échangés, le lanceur ne peut pas "prendre" à la cible d'autres types de dommages, tels que le poison, la maladie, l'ébriété, etc. Ce sort reste sans effet sur les morts-vivants, les créatures artificielles et extra-planaires. Il ne peut être lancé par un personnage d'alignement mauvais.~ -@276=~Faveur d'Ilmater~ -@275=~Blessure moyenne -(Nécromancie) -Niveau : 3 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -En lançant ce sort, le personnage peut, en touchant la créature ciblée, lui infliger 14 points de dégâts (jet de sauvegarde contre les sorts pour demi-dégâts). Ce sort reste sans effet sur les morts-vivants, les créatures artificielles et extra-planaires. Il ne peut être lancé par des personnages d'alignement bons.~ -@274=~Blessure moyenne~ -@273=~Protection anti-tempêtes -(Abjuration) -Niveau : 3 -Sphère : Climat, Protection -Portée : personnelle -Durée : 1 tour -Temps d'incantation : 6 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Le personnage se retrouve entouré d'une sphère d'énergie noire qui se déplace avec lui. Toutes les attaques de type feu, froid ou électricité lui infligent automatiquement des dégâts réduits de moitié.~ -@272=~Protection anti-tempête~ -@271=~Moisissure -(Transmutation) -Niveau : 3 -Sphère : Flore -Portée : contact -Durée : spéciale -Temps d'incantation : 6 -Zone d'effet : rayon de 3 mètres -Jet de sauvegarde : spécial -Ce sort couvre rapidement la créature touchée par le lanceur d'une moisissure brune à même sa peau. La créature infectée a droit à un jet de sauvegarde contre les sorts. En cas d'échec, l'infection est sévère et les dégâts subis sont les suivants : -1er round : 4d6 points -2e round : 3d6 points -3e round : 2d6 points -4e round : 1d6 points -Si le jet de sauvegarde est réussi, les dégâts sont moins importants : -1er round : 2d6 points -2e round : 1d6 points -3e round : 1d6 points -Chaque round après le premier, la plus proche créature (dans un rayon de 3 mètres) doit réussir un jet de sauvegarde sous peine d'être affectée à son tour. Le processus se poursuit jusqu'à ce que la moisissure soit incapable d'infecter un nouvel hôte dans le temps imparti. Les créatures déjà affectées ne peuvent l'être une nouvelle fois. La moisissure brune meurt rapidement au terme de la durée du sort.~ -@270=~Moisissure~ -@269=~Trombes d'eau -(Évocation) -Niveau : 3 -Sphère : Élémentaire (eau) -Portée : champ visuel du lanceur -Durée : 2 rounds -Temps d'incantation : 6 -Zone d'effet : 5,10 mètres de rayon -Jet de sauvegarde : aucun -Ce sort génère une pluie diluvienne dans la zone d'effet. Toutes les créatures à base de feu ou de froid (ou vivant dans ces éléments) perdent 2d3 points de vie par round. De plus, toutes les créatures comprises dans la zone d'effet ont 50 % de chances par round d'être frappées par la foudre (2d6 points de dégâts, ou deux fois moins en cas de jet de sauvegarde réussi). Les sorts de Lame de feu et de Linceul de flammes, ainsi que l'aura des salamandres, sont éteints par Trombes d'eau.~ -@268=~Trombes d'eau~ -@267=~Croissance d'épines -(Transmutation) -Niveau : 3 -Sphère : Élémentaire (terre) -Portée : champ visuel du lanceur -Durée : 1 tour -Temps d'incantation : 6 -Zone d'effet : 4,50 mètres de rayon -Jet de sauvegarde : aucun -Ce sort transforme la végétation affectée en plantes épineuses. Toute créature pénétrant dans la zone d'effet subit 1d4 points de dégâts tranchants et 1d4 points de dégâts perforants par round, jusqu'au terme du sort.~ -@266=~Croissance d'épines~ -@265=~Cercle d'ossements -(Nécromancie) -Niveau : 3 -Sphère : Création, Garde -Portée : personnelle -Durée : 3 rounds -Temps d'incantation : 3 -Zone d'effet : 1 mètre de rayon -Jet de sauvegarde : aucun -Ce sort fait apparaître une barrière d'ossements flottants qui tourbillonnent rapidement autour du personnage. Quiconque tente de la franchir subit 1d6 points de dégâts contondants et 1d6 points de dégâts tranchants par round. Le personnage ne peut pas se déplacer tant que le sort fait effet. Cercle d'ossements ne peut être lancé par les personnages d'alignement bon.~ -@264=~Cercle d'ossements~ -@263=~Lame de lune +3~ -@262=~Lame de lune~ -@261=~Lame de lune -(Invocation) -Niveau : 3 -Sphère : Combat, Soleil -Portée : personnelle -Durée : 2 tours -Temps d'incantation : 6 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort fait apparaître une épée silencieuse entièrement constituée de clarté lunaire et s'étendant à 1,20 mètre de la main du personnage. Elle est considérée comme une arme +4 afin de déterminer ce qu'elle peut toucher, même si ce bonus ne s'applique pas au TAC0. Comme il s'agit d'une arme dénuée de substance, les bonus de Force du personnage ne s'appliquent ni à l'attaque ni aux dégâts. -La lame de lune absorbe l'énergie de la cible, ce qui se traduit par un total de 1d12 +4 points de dégâts à chaque coup, +1d12 points pour les morts-vivants, qui sont particulièrement vulnérables à ce sort. De plus, la lame a une action négative sur le flux des énergies magiques, avec pour conséquence que tout sort que la cible cherche à lancer lors du prochain round échoue automatiquement.~ -@260=~Lame de lune~ -@259=~Sommeil~ -@258=~Exaltation -(Abjuration) -Niveau : 3 -Sphère : Guérison -Portée : contact -Durée : 1 tour -Temps d'incantation : 9 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort permet au prêtre d'aider et de protéger un compagnon (mais pas lui-même). D'un simple contact, le prêtre fait disparaître les effets de la peur, de la fatigue, de la débilité, de l'inconscience, de l'ébriété, de la confusion et de la rage sanguinaire. De plus, le sujet est protégé contre les sorts et attaques provoquant ces effets jusqu'au terme de la durée indiquée.~ -@257=~Exaltation~ -@256=~Contagion -(Nécromancie) -Niveau : 3 -Sphère : Guérison -Portée : contact -Durée : 8 heures -Temps d'incantation : 9 -Zone d'effet : 1 créature -Jet de sauvegarde : annule -La créature touchée par le prêtre contracte une maladie qui lui fait perdre 5d4 points de Force si elle rate son jet de sauvegarde contre les sorts. Contagion reste sans effet sur les morts-vivants, créatures artificielles et créatures extra-planaires. Ce sort ne peut être jeté par les personnages d'alignement bon.~ -@255=~Contamination~ -@254=~Pénalités de combat~ -@253=~Bonus de combat~ -@252=~Prière -(Conjuration/Convocation) -Niveau : 3 -Sphère : Combat -Portée : personnelle -Durée : 1 round par niveau -Temps d'incantation : 6 -Zone d'effet : 9 mètres de rayon -Jet de sauvegarde : aucun -Prière favorise le prêtre et ses alliés, tout en maudissant leurs ennemis. Tous les jets d'attaque, de dégâts et de sauvegarde des compagnons du prêtre bénéficient d'un bonus de +1, tandis que ses adversaires subissent un malus de -1. Les créatures comprises dans la zone d'effet au moment où le sort est lancé continuent d'être affectées même si elles la quittent. Autrement dit, si le guerrier du groupe décide de poursuivre un gobelin, Prière l'aide toujours.~ -@251=~Prière~ -@250=~Blessure modérée -(Nécromancie) -Niveau : 2 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -En lançant ce sort, le personnage peut, en touchant la créature ciblée, lui infliger 11 points de dégâts (jet de sauvegarde contre les sorts pour demi-dégâts). Ce sort reste sans effet sur les morts-vivants, les créatures artificielles et extra-planaires. Il ne peut être lancé par des personnages d'alignement bons.~ -@249=~Blessure modérée~ -@248=~Griffes~ -@247=~Griffes~ -@246=~Griffes -(Transmutation) -Niveau : 2 -Sphère : Combat -Portée : personnelle -Durée : 1 tour -Temps d'incantation : 5 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort transforme les bras du personnage en pattes musclées et dotées de griffes, qui lui confèrent une Force de 18/72 et la faculté de lacérer ses adversaires (2d4 points de dégâts + bonus de Force). Le personnage peut frapper deux fois par round, avec un bonus de +2 à l'attaque.~ -@245=~Griffes~ -@244=~Entouré d'une aura argentée (-2 à la CA)~ -@243=~Lance d'alicorne -(Évocation) -Niveau : 2 -Sphère : Combat -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : spécial -Ce sort fait apparaître une lance argentée et partiellement éthérée en forme d'alicorne (une corne de licorne). Le personnage choisit sa cible, qui va aussitôt la transpercer, lui infligeant 3d6 points de dégâts perforants (ou deux fois moins en cas de jet de sauvegarde réussi). Même si la lance se dissipe instantanément après l'impact, elle laisse une aura argentée autour de la cible, rendant celle-ci plus facile à toucher (-2 à la CA pendant 3 rounds).~ -@242=~Lance d'alicorne~ -@241=~Guéri(e)~ -@240=~Soin des blessures modérées -(Nécromancie) -Niveau : 2 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Cette version plus puissante de Soin des blessures légères permet à la créature touchée de récupérer 11 points de vie et de soigner l'ébriété. Ce sort reste sans effet sur les morts-vivants, les créatures artificielles ou extra-planaires.~ -@239=~Soin des blessures modérées~ -@238=~Aveuglé(e)~ -@237=~Soleil ardent -(Évocation) -Niveau : 1 -Sphère : Soleil -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 4 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -Au terme de l'incantation, un rayon de soleil tombe du ciel et va frapper la cible désignée par le prêtre. La victime réduit les dégâts de moitié si elle réussit un jet de sauvegarde contre les sorts. Si elle est touchée, elle subit 1d6 points de dégâts, +1 par niveau du prêtre. Les morts-vivants et autres créatures vulnérables à la lumière du jour encaissent 1d6 points de dégâts, +2 par niveau du personnage. De plus, victimes sont aveuglées pendant 3 rounds.~ -@236=~Soleil ardent~ -@235=~Blessure légère -(Nécromancie) -Niveau : 1 -Sphère : Guérison -Portée : contact -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 1 créature -Jet de sauvegarde : demi-dégâts -Une fois qu'il a lancé ce sort, le prêtre inflige 8 points de dégâts à la première créature qu'il touche (4 points en cas de jet de sauvegarde réussi). Ce sort reste sans effet sur les morts-vivants, les créatures artificielles ou extra-planaires. Il ne peut être lancé par un personnage d'alignement bon.~ -@234=~Blessure légère~ -@233=~Maudit(e)~ -@232=~Imprécation -(Conjuration/Convocation) -Niveau : 1 -Sphère : Générale -Portée : champ visuel du lanceur -Durée : 6 rounds -Temps d'incantation : 1 round -Zone d'effet : rayon de 4,50 mètres -Jet de sauvegarde : aucun -Grâce à ce sort, le prêtre diminue le moral de ses adversaires et pénalise de -1 leurs jets de sauvegarde et d'attaque. Dès que l'incantation s'achève, le sort affecte toutes les créatures se trouvant dans un rayon de 4,50 mètres, dont le centre est choisi par le prêtre (les créatures quittant la zone d'effet sont toujours affectées ; par contre, celles qui y entrent par la suite ne le sont pas).~ -@231=~Imprécation~ -@230=~Ce sort soigne le personnage de 11 points de vie.~ -@229=~Å’il de la pierre -Cet Å“il protège le personnage contre une seule attaque pétrifiante. -Il peut également être dépensé pour lancer le sort de magicien de troisième niveau : Immobilisation des personnes, qui immobilise des créatures humanoïdes pendant un round par niveau (jet de sauvegarde contre les sorts pour annuler).~ -@228=~Å’il de la pierre~ -@227=~Å’il de l'âme -Cet Å“il annule un sort causant une mort instantanée (Sort de mort, Doigt de mort, Mot de pouvoir mortel, Mise à mort ou Destruction). -Il peut également être transformé en un Rayon débilitant, similaire au sort de magicien de deuxième niveau, qui abaisse la force de la cible à 5 (jet de sauvegarde contre les sorts pour annuler).~ -@226=~Å’il de l'âme~ -@225=~Å’il de la résistance -Cet Å“il bloque une attaque étourdissante, assourdissante, aveuglante ou de type silence. -Il peut également être dépensé pour lancer le sort de magicien de quatrième niveau Cri, qui inflige 4d6 points de dégâts magiques et assourdit les créatures prises dans un cône de 10,5 mètres (jet de sauvegarde contre les sorts pour diviser les dégâts par deux et annuler la surdité).~ -@224=~Å’il de la résistance~ -@223=~Å’il du venin -Cet Å“il bloque une attaque ou un sort pouvant empoisonner le personnage. -Il peut à la place être dépensé pour empoisonner une créature (20 points de dégâts en 20 secondes, jet de sauvegarde contre le poison pour annuler).~ -@222=~Å’il du venin~ -@221=~Å’il de l'épée -Cet Å“il détourne la première attaque physique infligeant des dégâts au personnage. -L'Å“il peut également être dépensé pour jeter le sort de magicien de premier niveau : Projectile magique, créant un projectile tous les deux niveaux d'expérience après le premier (5 projectiles maximum) qui infligent 1d4 +1 points de dégâts magiques.~ -@220=~Å’il de l'épée~ -@219=~Å’il du mage -Cet Å“il absorbe une attaque de type feu, électricité, froid ou acide. -Il peut également être dépensé pour jeter le sort de magicien de troisième niveau Éclair, qui inflige 1d6 dégâts électriques par niveau (10d6 maximum) à toutes les créatures se trouvant sur son chemin.~ -@218=~Å’il du mage~ -@217=~Å’il de l'esprit -Cet Å“il protège contre les attaques mentales, telles que Charme, Émotion et Terreur. -Il peut être dépensé pour lancer le sort de magicien de premier niveau Charme-personne (durée d'un tour, jet de sauvegarde contre les sorts pour annuler).~ -@216=~Å’il de l'esprit~ -@215=~Vous ne pouvez pas lancer ce sort tant que le précédent fait encore effet.~ -@214=~Cercle d'yeux~ -@213=~Cercle d'yeux -(Abjuration) -Niveau : 7 -Portée : personnelle -Durée : 2 tours -Temps d'incantation : 7 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort fait apparaître sept yeux magiques flottant en cercle autour de la tête du personnage. Chacun a une vertu défensive et une autre offensive, mais chaque Å“il perd tout pouvoir dès qu'on s'en sert une fois. On ne peut lancer ce sort une seconde fois tant que le premier continue de faire effet, et ce même si tous les yeux ont disparu. Voici quels sont les pouvoirs de chaque Å“il : -- Å’il de l'esprit : Cet Å“il protège contre les attaques mentales, telles que Charme, Émotion et Terreur. Il peut être dépensé pour lancer le sort de magicien de premier niveau : Charme-personne (durée d'un tour, jet de sauvegarde contre les sorts pour annuler). -- Å’il de l'épée : Cet Å“il détourne la première attaque physique infligeant des dégâts au personnage. L'Å“il peut également être dépensé pour jeter le sort de magicien de premier niveau : Projectile magique, créant un projectile tous les deux niveaux d'expérience après le premier (5 projectiles maximum) qui infligent 1d4 +1 dégâts magiques. -- Å’il du mage : Cet Å“il absorbe une attaque de type feu, électricité, froid ou acide. Il peut également être dépensé pour jeter le sort de magicien de troisième niveau ; Éclair, qui inflige 1d6 dégâts électriques par niveau (10d6 maximum) à toutes les créatures se trouvant sur son chemin. -- Å’il du venin : Cet Å“il bloque une attaque ou un sort pouvant empoisonner le personnage. Il peut à la place être dépensé pour empoisonner une créature (20 points de dégâts en 20 secondes, jet de sauvegarde contre le poison pour annuler). -- Å’il de l'âme : Cet Å“il annule un sort causant une mort instantanée (Sort de mort, Doigt de mort, Mot de pouvoir : mort, Mise à mort ou Destruction). Il peut également être transformé en un Rayon débilitant, similaire au sort de magicien de deuxième niveau, qui abaisse la force de la cible à 5 (jet de sauvegarde contre les sorts pour annuler). -- Å’il de la résistance : Cet Å“il bloque une attaque étourdissante, assourdissante, aveuglante ou de type silence. Il peut également être dépensé pour lancer le sort de magicien de quatrième niveau : Cri, qui inflige 4d6 dégâts magiques et assourdit les créatures prises dans un cône de 10,5 mètres (jet de sauvegarde contre les sorts pour diviser les dégâts par deux et annuler la surdité). -- Å’il de la pierre : Cet Å“il protège le personnage contre une seule attaque pétrifiante. Il peut également être dépensé pour lancer le sort de magicien de troisième niveau : Immobilisation des personnes, qui immobilise des créatures humanoïdes pendant un round par niveau (jet de sauvegarde contre les sorts pour annuler).~ -@212=~Cercle d'yeux~ -@211=~Rage de Malavon~ -@210=~Rage de Malavon -(Invocation) -Niveau : 7 -Portée : personnelle -Durée : instantanée -Temps d'incantation : 1 -Zone d'effet : rayon de 2,10 mètres -Jet de sauvegarde : demi-dégâts -Rage de Malavon a été inventé par un elfe noir du nom de Malavon. Sous l'effet du sort, le corps du magicien projette dans toutes les directions des rayons d'énergie noire, nuisibles pour ses alliés comme pour ses ennemis. Les barbillons magiques infligent 20d4 points de dégâts perforants à tout ce qu'ils touchent. Ce sort est particulièrement utile lorsque l'on se retrouve environné d'adversaires.~ -@209=~Rage de Malavon~ -@208=~Coup vorpal~ -@207=~Mort~ -@206=~Mort-vivant détruit~ -@205=~Créature extra-planaire détruite~ -@204=~Reflets~ -@203=~Reflets -(Illusion/Fantasme) -Niveau : 6 -Portée : champ visuel du lanceur -Durée : 1 round par niveau -Temps d'incantation : 6 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Reflets est similaire aux sorts Monstres d'ombre et Demi-ombres, en ce sens qu'il permet de former des créatures illusoires à partir de matière prise au Demi-plan des Ombres. Ces monstres sont plus puissants que ceux qu'appellent les deux sorts mentionnés ci-dessus. Ils obéissent au mage jusqu'au terme de la durée du sort ou jusqu'à ce qu'ils soient détruits.~ -@202=~Reflets~ -@201=~Toucher de la liche~ -@200=~Toucher de la liche~ -@199=~Toucher de la liche -(Nécromancie) -Niveau : 6 -Portée : contact -Durée : 1 round par niveau -Temps d'incantation : 6 -Zone d'effet : le lanceur -Jet de sauvegarde : spécial -Ce sort confère les pouvoirs et les immunités d'une liche au mage. Ce dernier n'a plus rien à craindre de la paralysie ou de la terreur tant que l'enchantement fait effet. Dans le même temps, ses mains luisent d'un éclat vert surnaturel qui inflige 1d10 points de dégâts à toute créature qu'il touche et la paralyse à moins qu'elle ne réussisse son jet de sauvegarde. Ce sort n'affecte pas les morts-vivants. -~ -@198=~Toucher de la liche~ -@197=~Dissipation des effets~ -@196=~Coquille antimagique~ -@195=~Coquille antimagique -(Abjuration) -Niveau : 6 -Portée : personnelle -Durée : 1 tour par niveau -Temps d'incantation : 1 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort entoure le magicien d'une barrière invisible se déplaçant avec lui. Elle l'immunise contre toutes les attaques magiques, mais l'empêche dans le même temps de jeter le moindre sort. Ce sort dissipe également les effets de surdité et de débilité mentale sur le lanceur.~ -@194=~Coquille antimagique~ -@193=~Homme-lézard coriace~ -@192=~Gobelin d'élite~ -@191=~Gobelin d'élite~ -@190=~Demi-ombres~ -@189=~Demi-ombres -(Illusion/Fantasme) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 round par niveau -Temps d'incantation : 5 -Zone d'effet : spécial -Jet de sauvegarde : aucun -Ce sort est semblable à Monstres d'ombre (4e niveau), si ce n'est que les créatures invoquées sont bien plus puissantes.~ -@188=~Demi-ombres~ -@187=~Arme de troll~ -@186=~Troll~ -@185=~Troll~ -@184=~Monstres d'ombre~ -@183=~Monstres d'ombre -(Illusion/Fantasme) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 1 round par niveau -Temps d'incantation : 4 -Zone d'effet : spécial -Jet de sauvegarde : aucun -Ce sort façonne la matière du Demi-plan de l'Ombre pour créer des monstres illusoires. Jusqu'à 6 créatures peuvent être invoquées, dont le total des dés de vie ne pourra dépasser le niveau du lanceur.~ -@182=~Monstres d'ombre~ -@181=~Hâte~ -@180=~Lenteur~ -@179=~Ralenti(e)~ -@178=~Repli expéditif -(Transmutation) -Niveau : 1 -Portée : personnelle -Durée : 3 rounds -Temps d'incantation : 1 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort double la vitesse de déplacement du sujet pendant un bref instant, ce qui lui permet généralement de s'enfuir. Les autres enchantements affectant la vitesse, comme Hâte et Lenteur, cessent de faire effet jusqu'au terme de la durée de Repli expéditif. Lorsqu'il est sous l'effet de ce sort, le lanceur ne peut ni attaquer, ni incanter, ni utiliser d'objets magiques ou avoir recours à des capacités spéciales... il ne peut que fuir.~ -@177=~Repli expéditif~ -@176=~Épée de Mordenkainen~ -@175=~Épée de Mordenkainen~ -@174=~Épée de Mordenkainen -(Invocation) -Niveau : 7 -Portée : champ visuel du lanceur -Durée : 1 round par niveau -Temps d'incantation : 7 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître une épée de force que le magicien peut utiliser par la seule force de son esprit. Elle frappe comme si elle était maniée par un guerrier de la moitié du niveau du mage et, bien que ce dernier la tienne en main, il peut s'en servir pour attaquer n'importe quelle créature se trouvant dans son champ de vision. L'épée ne possède aucun bonus au jet d'attaque, mais elle peut atteindre les créatures uniquement touchées par les armes +2 et inflige 5d6 points de dégâts à chaque coup.~ -@173=~Épée de Mordenkainen~ -@172=~Élémental d'eau~ -@171=~Élémental d'eau~ -@170=~Conjuration d'un élémental d'eau~ -@169=~Conjuration d'un élémental d'eau -(Conjuration/Convocation) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort invoque un Élémental d'Eau de 8 DV au service du personnage en ouvrant un portail magique vers le Plan Élémentaire de l'Eau. L'Élémental se battra pour le personnage jusqu'à sa destruction ou la fin du sort.~ -@168=~Conjuration d'un élémental d'eau~ -@167=~Élémentaire d'air~ -@166=~Élémentaire d'air~ -@165=~Conjuration d'un élémental d'air~ -@164=~Conjuration d'un élémental d'air -(Conjuration/Convocation) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de Sauvegarde : aucun -Ce sort invoque un Élémental d'Air de 8 DV au service du personnage en ouvrant un portail magique vers le Plan Élémentaire de l'Air. L'Élémental se battra pour le personnage jusqu'à sa destruction ou la fin du sort.~ -@163=~Conjuration d'un élémental d'air~ -@162=~Élémentaire de feu~ -@161=~Élémental de feu~ -@160=~Conjuration d'un élémental de feu~ -@159=~Conjuration d'un élémental de feu -(Conjuration/Convocation) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de Sauvegarde : aucun -Ce sort invoque un Élémental de Feu de 8 DV au service du personnage en ouvrant un portail magique vers le Plan Élémentaire du Feu. L'Élémental se battra pour le personnage jusqu'à sa destruction ou la fin du sort.~ -@158=~Conjuration d'un élémental de feu~ -@157=~Élémentaire de terre~ -@156=~Élémental de terre~ -@155=~Conjuration d'un élémental de terre~ -@154=~Conjuration d'un élémental de terre -(Conjuration/Convocation) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 tour par niveau -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de Sauvegarde : aucun -Ce sort invoque un Élémental de Terre de 8 DV au service du personnage en ouvrant un portail magique vers le Plan Élémentaire de la Terre. L'Élémental se battra pour le personnage jusqu'à sa destruction ou la fin du sort.~ -@153=~Conjuration d'un élémental de terre~ -@152=~Convocation de monstres III~ -@151=~Convocation de monstres III -(Conjuration/Convocation) -Niveau : 5 -Portée : 6 mètres -Durée : 4 rounds + 1 round par niveau -Temps d'incantation : 5 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d4 monstres de niveau 3. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@150=~Convocation de monstres III~ -@149=~Homme-lézard~ -@148=~Homme-lézard~ -@147=~Convocation de monstres II~ -@146=~Convocation de monstres II -(Conjuration/Convocation) -Niveau : 4 -Portée : 6 mètres -Durée : 3 rounds + 1 round par niveau -Temps d'incantation : 4 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d6 monstres de niveau 2. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@145=~Convocation de monstres II~ -@144=~Gobelin~ -@143=~Gobelin~ -@142=~Convocation de monstres I~ -@141=~Convocation de monstres I -(Conjuration/Convocation) -Niveau : 3 -Portée : 6 mètres -Durée : 2 rounds + 1 round par niveau -Temps d'incantation : 4 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 2d3 monstres de niveau 1. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@140=~Convocation de monstres I~ -@139=~Attaquer~ -@138=~Minotaure~ -@137=~Minotaure~ -@136=~Convocation de monstres V~ -@135=~Convocation de monstres V -(Conjuration/Convocation) -Niveau : 7 -Portée : 6 mètres -Durée : 6 rounds + 1 round par niveau -Temps d'incantation : 6 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d3 monstres de niveau 5. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@134=~Convocation de monstres V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamandre~ -@130=~Salamandre~ -@129=~Salamandre du givre~ -@128=~Salamandre du givre~ -@127=~Convocation de monstres VI~ -@126=~Convocation de monstres VI -(Conjuration/Convocation) -Niveau : 8 -Portée : 6 mètres -Durée : 7 rounds + 1 round par niveau -Temps d'incantation : 8 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d3 monstres de niveau 6. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@125=~Convocation de monstres VI~ -@124=~Attaquer~ -@123=~Ombre des roches~ -@122=~Ombre des roches~ -@121=~Squelette de garde~ -@120=~Squelette de garde~ -@119=~Convocation de monstres VII~ -@118=~Convocation de monstres VII -(Conjuration/Convocation) -Niveau : 9 -Portée : 6 mètres -Durée : 8 rounds + 1 round par niveau -Temps d'incantation : 9 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d2 monstres de niveau 7 ou 8. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@117=~Convocation de monstres VII~ -@116=~Convocation de monstres IV~ -@115=~Convocation de monstres IV -(Conjuration/Convocation) -Niveau : 6 -Portée : 6 mètres -Durée : 5 rounds + 1 round par niveau -Temps d'incantation : 6 -Zone d'effet : spéciale -Jet de sauvegarde : aucun -Ce sort fait apparaître 1d3 monstres de niveau 4. Ils se manifestent dans la limite de portée et le magicien peut leur ordonner d'attaquer ses adversaires jusqu'à ce que la durée du sort arrive à son terme (à moins que les monstres invoqués ne soient tués auparavant).~ -@114=~Convocation de monstres IV~ -@113=~Crâne~ -@112=~Transparence des monstres -Ne pas traduire~ -@111=~Objet de transparence de monstre~ -@110=~Ombre~ -@109=~Ombre~ -@108=~Convocation d'ombres~ -@107=~Convocation d'ombres -(Conjuration/Convocation, Nécromancie) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 round + 1 round par niveau -Temps d'incantation : 5 -Zone d'effet : spécial -Jet de sauvegarde : aucun -Ce sort fait apparaître trois ombres disposant chacune de 3 dés de vie. Ces créatures obéissent aux ordres de leur maître et combattent pour lui jusqu'au terme du sort (ou jusqu'à ce qu'elles soient détruites).~ -@106=~Convocation d'ombres~ -@105=~Poing de fer~ -@104=~Poing de fer~ -@103=~Victime d'une grave maladie~ -@102=~Malade~ -@101=~Empoisonné(e)~ -@100=~Poison~ -@99=~Corps de fer~ -@98=~Corps de fer -(Transmutation) -Niveau : 8 -Portée : personnelle -Durée : 2 tours -Temps d'incantation : 8 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort transforme le corps du personnage en fer vivant, ce qui lui confère plusieurs pouvoirs distincts. Tant que le sort fait effet, le personnage bénéficie des résistances suivantes : 100 % contre l'électricité, 50 % contre le feu et 25 % contre les attaques contondantes. Il est en outre immunisé contre les sorts affectant la respiration ou la physiologie. De plus, sa Force passe à 25 et il peut donner deux coups de poing par round (2d4 points de dégâts + bonus de Force). Malheureusement, les mouvements du personnage deviennent lents et gourds, ce qui réduit sa vitesse de déplacement de 75 % et l'empêche de lancer le moindre sort tant que Corps de fer fait effet.~ -@97=~Corps de fer~ -@96=~Inconscient(e)~ -@95=~Grand cri~ -@94=~Grand cri -(Évocation) -Niveau : 8 -Portée : personnelle -Durée : instantanée -Temps d'incantation : 1 -Zone d'effet : cône de 5,10 mètres de long et de 15 degrés d'angle -Jet de sauvegarde : demi-dégâts -Au terme de l'incantation, le personnage libère un cri terrible dans un cône de 5,10 mètres de long pour un angle de 15 degrés. L'effort exigé de la part du mage est tel que ce dernier perd 2d4 points de vie et doit réussir un jet de sauvegarde contre les sorts sous peine de perdre connaissance pendant un round. Les créatures ayant 5 DV ou moins meurent instantanément si elles sont prises dans la zone d'effet du Grand cri. Toutes les autres créatures ont droit à un jet de sauvegarde contre les sorts. Celles qui le ratent sont étourdies pendant 2 rounds, assourdies pendant 4 rounds et subissent 4d12 points de dégâts magiques. Celles qui le réussissent sont étourdies pendant 1 round, assourdies pendant 2 rounds et subissent 2d12 points de dégâts magiques.~ -@93=~Grand cri~ -@92=~~ -@91=~Charmé(e)~ -@90=~Charme néfaste~ -@89=~Dominé(e)~ -@88=~Échec du test de moral : panique~ -@87=~En état d'ébriété~ -@86=~Confus(e)~ -@85=~Obstination bornée~ -@84=~Immobilisé(e)~ -@83=~Paralysé(e)~ -@82=~Immobilisation~ -@81=~Esprit impénétrable~ -@80=~Esprit impénétrable -(Abjuration) -Niveau : 8 -Portée : personnelle -Durée : 24 heures -Temps d'incantation : 1 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Esprit impénétrable est le meilleur garant d'intimité qui soit, puisqu'il protège de presque tous les effets mentaux, tels que le charme, le sort de Labyrinthe, la débilité mentale, la confusion, la terreur, l'ébriété, la rage sanguinaire, l'immobilisation et la pétrification. -~ -@79=~Esprit impénétrable~ -@78=~Suffocation~ -@77=~Suffocation -(Transmutation) -Niveau : 7 -Portée : champ visuel du lanceur -Durée : 4 rounds -Temps d'incantation : 7 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : spécial -Ce sort vide les poumons de toutes les créatures se trouvant dans la zone d'effet. Les êtres qui ne respirent pas sont immunisés contre cette attaque. Les autres subissent les effets suivants : -4 à la Classe d'Armure, -4 aux jets d'attaque, -6 en Dextérité, une attaque de moins par round, vitesse de déplacement réduite de moitié, et 4d8 points de dégâts magiques par round. Un jet de sauvegarde réussi annule les effets sauf 2d8 points de dégâts pour le round en cours. Les effets se dissipent progressivement quand la victime quitte la zone d'effet, mais un round est parfois nécessaire avant de trouver son second souffle.~ -@76=~Suffocation~ -@75=~Tempête acide~ -@74=~Tempête acide -(Invocation) -Niveau : 7 -Portée : champ visuel du lanceur -Durée : 1 round par niveau -Temps d'incantation : 7 -Zone d'effet : 3,60 mètres de rayon -Jet de sauvegarde : demi-dégâts -Ce sort déchaîne une violente pluie acide sur la zone d'effet, ce qui inflige 1d4 points de dégâts d'acide par round pendant les trois premiers rounds, 1d6 points pendant les trois suivants, et 1d8 points par round au-delà du sixième. Quitter la zone d'effet ne signifie pas que l'on échappe au sort, car l'acide s'accroche à la peau et toute créature affectée au début du sort continue de subir des dégâts jusqu'à ce que la tempête acide s'achève. Les victimes ont droit à un jet de sauvegarde chaque round après le premier. En cas de succès, les dégâts qu'elles subissent sont réduits de moitié (mais seulement pour le round concerné).~ -@73=~Tempête acide~ -@72=~Résistance de troll~ -@71=~Résistance de troll -(Nécromancie) -Niveau : 6 -Portée : personnelle -Durée : 2 tours -Temps d'incantation : 6 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort confère au personnage la résistance d'un troll, ce qui lui permet de se régénérer au rythme de 5 points de vie par round.~ -@70=~Résistance de troll~ -@69=~Squelette~ -@68=~Squelette~ -@67=~Destruction d'âme~ -@66=~Destruction d'âme -(Nécromancie) -Niveau : 6 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 5 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : aucun -Ce sort inflige 3d8 points de dégâts à toutes les créatures vivantes situées à moins de 2,10 mètres à la ronde. De plus, toute créature tuée par Destruction d'âme est aussitôt oblitérée et son énergie vitale est transformée en squelette à 3 DV sous le contrôle du personnage. Pour chaque créature mourant de la sorte, le magicien gagne +1 en force, Dextérité et Constitution (pendant 1 tour).~ -@65=~Destruction d'âme~ -@64=~Dard d'os +3~ -@63=~Dard d'os~ -@62=~Dards d'os~ -@61=~Dards d'os -(Nécromancie) -Niveau : 6 -Portée : personnelle -Durée : 5 rounds -Temps d'incantation : 5 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort crée 9 dards pouvant être lancés par le personnage (qui est obligé de les garder en main tant que l'enchantement fait effet). Les dards sont +3, infligent 1d4 points de dégâts chacun, et toute créature touchée doit réussir un jet de sauvegarde contre la mort magique sous peine de perdre 2d6 points de vie supplémentaires et de voir sa Force baisser de 3 points pendant 5 rounds. Le personnage n'a pas besoin de savoir manier les dards pour pouvoir utiliser ce sort.~ -@60=~Dards d'os~ -@59=~Sphère glaciale d'Otiluke~ -@58=~Sphère glaciale d'Otiluke -(Transmutation, Invocation) -Niveau : 6 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 6 -Zone d'effet : 1 créature -Jet de sauvegarde : annule -Ce sort projette un rayon glacé contre la cible. Il peut toucher toute créature située dans le champ de vision du magicien et inflige 1d4 +2 points de dégâts de froid par niveau de ce dernier. Si la victime réussit son jet de sauvegarde, elle évite totalement le rayon et ne subit pas le moindre dégât.~ -@57=~Sphère glaciale d'Otiluke~ -@56=~Linceul de flammes~ -@55=~Linceul de flammes -(Évocation) -Niveau : 5 -Portée : champ visuel du lanceur -Durée : 1 round par 2 niveaux (spécial) -Temps d'incantation : 5 -Zone d'effet : rayon de 1,5 mètres -Jet de sauvegarde : annule -La créature affectée par ce sort s'enflamme si elle rate son jet de sauvegarde. Elle subit 2d6 points de dégâts de feu par round et des langues de feu projetées par la victime atteignent toutes les créatures distantes de moins de 1,50 mètres et leur infligent 1d4 points de dégâts de feu (si elles ratent leur jet de sauvegarde, ces dernières se retrouvent également dévorées par les flammes). Le linceul se dissipe si le jeteur de sorts et sa cible ne sont plus dans la même zone. Ce sort est particulièrement utile pour disperser un groupe de trolls ou de salamandres du givre.~ -@54=~Linceul de flammes~ -@53=~~ -@52=~Sphère acide~ -@51=~Sphère acide -(Conjuration) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : spéciale -Temps d'incantation : 4 -Zone d'effet : rayon de 1,50 mètre -Jet de sauvegarde : spécial -Cette incantation fait apparaître une sphère d'acide vert émeraude, que le personnage peut lancer sur la cible de son choix. La sphère explose et inonde d'acide la créature choisie. Celle-ci perd 1d4 points de vie par niveau du magicien, jusqu'à un maximum de 12d4. Une fois les premiers dégâts encaissés, la victime doit réussir un jet de sauvegarde contre les sorts si elle ne veut pas en subir davantage. En cas d'échec, l'acide continue de la ronger round après round, les dégâts diminuant de deux dés par round. Par exemple, un magicien de niveau 8 inflige 8d4 points de dégâts grâce à ce sort au cours du premier round, 6d4 au deuxième, 4d4 au troisième, 2d4 au quatrième et le sort s'arrête au cinquième round. À chaque round après le premier, la victime a droit à un jet de sauvegarde contre les sorts pour éviter des dégâts supplémentaires. -L'acide asperge toutes les créatures situées à moins de 1,50 mètre de la cible. Toutes doivent réussir un jet de sauvegarde contre la pétrification/métamorphose si elles ne veulent pas subir 1d4 points de dégâts par cinq niveaux du lanceur. Ces dégâts d'aspersion ne sont pas continus.~ -@50=~Sphère acide~ -@49=~Surdité~ -@48=~Cri~ -@47=~Cri -(Évocation) -Niveau : 4 -Portée : personnelle -Durée : instantanée -Temps d'incantation : 1 -Zone d'effet : cône de 5,10 mètres de long et de 15 degrés d'angle -Jet de sauvegarde : demi-dégâts -Ce sort confère un pouvoir vocal terrifiant au personnage, lequel peut laisser fuser un cri à déchirer les tympans affectant une zone d'effet en forme de cône. Toute créature prise dans la zone d'effet perd 4d6 points de vie et se retrouve assourdie pendant 9 rounds. Un jet de sauvegarde réussi contre les sorts annule la surdité et réduit les dégâts de moitié.~ -@46=~Cri~ -@45=~Projectiles de force de Mordenkainen~ -@44=~Projectiles de force de Mordenkainen -(Évocation) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 4 -Zone d'effet : rayon de 60 centimètres -Jet de sauvegarde : spécial -Ce sort fait apparaître un petit globe d'énergie magique filant de la main tendue du mage pour aller frapper à coup sûr la cible désignée, un peu comme un sort Projectiles magiques. Le personnage crée un projectile au niveau 7, plus un autre tous les trois niveaux supplémentaires (deux au niveau 10, trois au niveau 13, quatre au niveau 16, et ainsi de suite jusqu'à un maximum de sept au niveau 25). Chaque projectile cause 2d4 points de dégâts puis explose, la détonation infligeant 1 point de dégât de commotion par niveau du magicien dans un rayon de 60 centimètres. Par exemple, un mage de niveau 12 ferait apparaître deux projectiles de force, infligeant chacun 2d4+12 points de dégâts magiques. Les créatures touchées ont droit à un jet de sauvegarde contre les sorts pour éviter les dégâts de commotion mais l'impact du projectile lui-même n'est pas soumis à un jet de sauvegarde. Le sort de mage de niveau 1 Bouclier absorbe les projectiles de force sans dommage, y compris les dégâts de commotion.~ -@43=~Projectiles de force de Mordenkainen~ -@42=~Désespoir~ -@41=~Étourdi~ -@40=~Émotion, désespoir~ -@39=~Émotion, désespoir -(Enchantement/Charme) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 1 tour -Temps d'incantation : 4 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : annule -Ce sort fait naître un grand désespoir dans la zone d'effet. Tous les ennemis échouant leur jet de sauvegarde contre les sorts restent immobiles et ne font rien pendant 1 tour. Au moment du lancement, ce sort annule Émotion, espoir dans la zone d'effet.~ -@38=~Émotion, désespoir~ -@37=~Panique~ -@36=~Émotion, terreur~ -@35=~Émotion, terreur -(Enchantement/Charme) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 5 rounds -Temps d'incantation : 4 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : annule -Ce sort terrifie les créatures comprises dans la zone d'effet. En cas de jet de sauvegarde raté, elles s'enfuient pendant 5 rounds. Ce sort dissipe Émotion, courage dans la zone d'effet au moment où il est lancé.~ -@34=~Émotion, terreur~ -@33=~Émotion, espoir~ -@32=~Émotion, espoir -(Enchantement/Charme) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 1 heure -Temps d'incantation : 4 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : aucun -Ce sort génère l'espoir chez les créatures comprises dans la zone d'effet. Leur moral s'en ressent et elles bénéficient d'un bonus de +2 à tous leurs jets d'attaque, de dégâts et de sauvegarde. Ce sort dissipe tout sentiment de désespoir dans la zone d'effet au moment où il est lancé.~ -@31=~Émotion, espoir~ -@30=~Émotion, courage~ -@29=~Émotion, courage -(Enchantement/Charme) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 1 heure -Temps d'incantation : 4 -Zone d'effet : 2,10 mètres de rayon -Jet de sauvegarde : aucun -Ce sort génère un grand courage chez toutes les créatures comprises dans la zone d'effet. Ces dernières bénéficient alors des bonus suivants : +1 à l'attaque, +3 aux dégâts et +5 points de vie temporaires (ce qui peut leur permettre de dépasser leur maximum). Enfin, le sort dissipe automatiquement la terreur dans la zone d'effet.~ -@28=~Émotion, courage~ -@27=~Berserk~ -@26=~Sang brûlant de Beltyn~ -@25=~Sang brûlant de Beltyn -(Nécromancie) -Niveau : 4 -Portée : champ visuel du lanceur -Durée : 1 round par 2 niveaux -Temps d'incantation : 4 -Zone d'effet : 1 créature -Jet de sauvegarde : annule -Le sort fait brûler le sang de la cible, ce qui lui inflige 3d4 points de dégâts par round et rend la victime folle de douleur. Chaque round, la victime a droit à un jet de sauvegarde contre les sorts (à -3). Dès qu'elle en réussit un, le sort cesse de faire effet. Il ne fonctionne pas contre les morts-vivants ou les créatures natives des autres plans qui n'ont pas de sang dans les veines (comme les élémentaires). Si la cible résiste au feu, cela réduit ou annule les dégâts provoqués par le sort.~ -@24=~Sang brûlant de Beltyn~ -@23=~Lance de destruction~ -@22=~Lance de destruction -(Évocation) -Niveau : 3 -Portée : 30 mètres -Durée : instantanée -Temps d'incantation : 3 -Zone d'effet : spéciale -Jet de sauvegarde : demi-dégâts -Ce sort fait apparaître une lance de force partant du doigt du personnage et pouvant être lancée jusqu'à 30 mètres. Toute créature touchée par le rayon d'énergie subit 5d4 points de dégâts, +2 par niveau du magicien (jusqu'à un maximum de +30). Un jet de sauvegarde réussi contre les sorts réduit les dégâts de moitié.~ -@21=~Lance de destruction~ -@20=~Étourdi(e)~ -@19=~Lance de glace~ -@18=~Lance de glace -(Invocation) -Niveau : 3 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 3 -Zone d'effet : 1 créature -Jet de sauvegarde : spécial -Ce sort projette une lance de glace sur la cible choisie. Elle touche automatiquement, inflige 5d6 points de dégâts et oblige la victime à réussir un jet de sauvegarde contre les sorts pour ne pas être étourdie pendant 3 rounds.~ -@17=~Lance de glace~ -@16=~Modification de la dextérité~ -@15=~Grâce féline~ -@14=~Grâce féline -(Transmutation) -Niveau : 2 -Portée : contact -Durée : 1 heure par niveau -Temps d'incantation : 2 -Zone d'effet : 1 créature -Jet de sauvegarde : aucun -Ce sort augmente la Dextérité du sujet en fonction de la classe de ce dernier : 1d8 points pour un voleur, 1d6 points pour un guerrier ou un mage et 1d4 points pour un prêtre. Grâce féline ne permet pas d'avoir plus de 20 en Dextérité.~ -@13=~Grâce féline~ -@12=~Bâton décuplé~ -@11=~Bâton décuplé~ -@10=~Bâton décuplé~ -@9=~Bâton décuplé -(Invocation) -Niveau : 2 -Portée : personnelle -Durée : 3 rounds + 1 round par niveau -Temps d'incantation : 2 -Zone d'effet : le lanceur -Jet de sauvegarde : aucun -Ce sort fait apparaître un bâton d'énergie dans la main du magicien. Il est considéré comme une arme magique infligeant 1d6 points de dégâts par coup et pouvant toucher les créatures comme s'il était une arme +1. Mais il reste un bâton, que son utilisateur doit savoir manier pour ne pas encourir de pénalité à l'attaque. Au premier coup porté, le bâton a également la possibilité d'absorber 1d2 points de vie de la cible, qui sont aussitôt transférés au mage, mais uniquement pour le soigner (pas pour augmenter ses points de vie au-dessus du maximum).~ -@8=~Bâton décuplé~ -@7=~Nuée de boules de neige de Snilloc -(Invocation) -Niveau : 2 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 2 -Zone d'effet : 4,50 mètres de rayon -Jet de sauvegarde : demi-dégâts -Ce sort fait apparaître un déluge de boules de neige à partir du point choisi par le magicien. Ces projectiles touchent toutes les créatures prises dans la zone d'effet et leur infligent 1d3 points de dégâts de froid par niveau du personnage, jusqu'à un maximum de 8d3 au niveau 8. Contre les créatures à base de feu (ou qui l'utilisent), le sort cause 1d6 points de dégâts de froid par niveau, jusqu'à un maximum de 8d6 au niveau 8.~ -@6=~~ -@5=~Nuée de boules de neige de Snilloc~ -@4=~Nuée de boules de neige de Snilloc -(Invocation) -Niveau : 2 -Portée : champ visuel du lanceur -Durée : instantanée -Temps d'incantation : 2 -Zone d'effet : 4,50 mètres de rayon -Jet de sauvegarde : demi-dégâts -Ce sort fait apparaître un déluge de boules de neige à partir du point choisi par le magicien. Ces projectiles touchent toutes les créatures prises dans la zone d'effet et leur infligent 1d3 points de dégâts de froid par niveau du personnage, jusqu'à un maximum de 8d3 au niveau 8. Contre les créatures à base de feu (ou qui l'utilisent), le sort cause 1d6 points de dégâts de froid par niveau, jusqu'à un maximum de 8d6 au niveau 8.~ -@3=~~ -@2=~Nuée de boules de neige de Snilloc~ -@1=~Parchemin~ diff --git a/iwdification/dw/copyover/tra/it_IT/iwdspells.tra b/iwdification/dw/copyover/tra/it_IT/iwdspells.tra deleted file mode 100644 index 1f979c6..0000000 --- a/iwdification/dw/copyover/tra/it_IT/iwdspells.tra +++ /dev/null @@ -1,1224 +0,0 @@ -@375=~Canto di guerra di Sith- Bonus all'Armatura e Rigenerazione~ -@374=~"Canto di Guerra di Sith" -Tutti gli alleati nel raggio di 9 metri ottengono un bonus pari a +2 alla Classe Armatura, 10% di resistenza al danno da taglio, perforante, contundente e da proiettile, e l'abilità di rigenerare 2 Punti Ferita per round.~ -@373=~Canto di Guerra di Sith~ -@372=~Affascinato~ -@371=~Struggimento della sirena - Affascina le creature~ -@370=~"La Brama della Sirena" -Tutti i nemici nel raggio di 9 metri devono effettuare con successo un tiro-salvezza contro Incantesimi o rimanere affascinati, incapaci di agire per 1 round o finché non subiscono un danno.~ -@369=~Struggimento della Sirena~ -@368=~Canzone di Kaudies - Resistenza agli attacchi sonori~ -@367=~"La Canzone di Kaudies" -Tutti gli alleati nel raggio di 9 metri hanno il 50% di possibilità di liberarsi dell'effetto di incantesimi come Silenzio, Grido, Grido Potente, Comando, Comando Maggiore o qualsiasi altro attacco basato sul suono.~ -@366=~Canzone di Kaudies~ -@365=~Melodia di Tymora - Fortuna e bonus alle abilità~ -@364=~"Melodia di Tymora" -Tutti gli alleati nel raggio di 9 metri ottengono un bonus pari a +1 alla fortuna, +3 ai tiri-salvezza, +10 alla conoscenza e un bonus del 10% a tutte le abilità da ladro.~ -@363=~Melodia di Tymora~ -@362=~La storia di Curran Strongheart - Immunità alla paura~ -@361=~"La Leggenda di Curran Strongheart" -Tutti gli alleati nel raggio di 9 metri ottengono l'immunità agli effetti della paura per la durata della canzone ed è rimosso qualsiasi effetto della paura attualmente attivo.~ -@360=~La Storia di Curran Strongheart~ -@359=~La Ballata dei Tre Eroi - Bonus in Combattimento~ -@358=~"La Ballata dei Tre Eroi" -Tutti gli alleati nel raggio di 9 metri ottengono un bonus pari a +1 ai tiri per colpire, +1 al danno e +1 a tutti i tiri-salvezza.~ -@357=~La Ballata dei Tre Eroi~ -@356=~Litania -(Evocazione/Attrazione) -Livello: 2 -Sfera: Combattimento -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno -Tempo di lancio: 9 -Area d'effetto: Raggio di 18 metri -Tiro-salvezza: Nessuno -Per mezzo di questo incantesimo, il personaggio attira una benedizione particolare su se stesso e sul suo gruppo e provoca danno ai suoi nemici. Quando il lancio di Litania viene completato, tutti gli alleati del personaggio all'interno dell'area d'effetto ottengono un bonus pari a +1 ai tiri-salvezza, ai tiri per colpire e ai tiri per determinare il danno minimo e il punteggio di guarigione. In aggiunta a ciò, i danni inflitti da mezzi diversi dal danno base di un'arma vengono ridotti di 1. Ad esempio, una palla di fuoco da 6d6 infliggerà 6d5 punti di danno e una spada lunga fiammeggiante che infligge 1d8+2 punti di danno perforante più 1d3 punti di danno da fuoco infliggerà invece 1d8+2 punti di danno perforante più 1d2 punti di danno da fuoco. I nemici del lanciatore subiscono gli effetti opposti. -Litanie multiple non sono cumulabili. Questo incantesimo richiede una discreta quantità di concentrazione da parte del personaggio, pertanto questi non può lanciare altri incantesimi per la durata della litania e il suo Fattore-movimento viene dimezzato.~ -@355=~Litania~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Scarabeo Scavatore~ -@352=~Scarabeo Scavatore~ -@351=~Scarabeo Bombardiere~ -@350=~Scarabeo Bombardiere~ -@349=~Insetti Giganti -(Alterazione) -Livello: 4 -Sfera: Animale -Raggio d'azione: Visuale del lanciatore -Durata: 8 ore -Tempo di lancio: 7 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo evoca 2-3 scarabei scavatori o scarabei bombardieri al fianco del lanciatore. Gli scarabei obbediranno ai suoi ordini finché la durata dell'incantesimo non ha termine o finché non vengono uccisi.~ -@348=~Insetti Giganti~ -@347=~Causa Ferite Critiche -(Necromanzia) -Livello: 5 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 8 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Lanciando questo incantesimo e toccando una creatura, il personaggio infligge 27 punti di danno da magia al corpo della creatura (un tiro-salvezza contro Incantesimi effettuato con successo dimezza i danni). Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato dai personaggi di allineamento buono.~ -@346=~Causa Ferite Critiche~ -@345=~Causa Ferite Gravi -(Necromanzia) -Livello: 4 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Lanciando questo incantesimo e toccando una creatura, il personaggio infligge 17 punti di danno al corpo della creatura (un tiro-salvezza contro Incantesimi effettuato con successo dimezza i danni). Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato dai personaggi di allineamento buono.~ -@344=~Causa Ferite Gravi~ -@343=~Due Livelli Risucchiati~ -@342=~Risucchio di Energia -(Necromanzia) -Livello: 7 -Sfera: Necromanzia -Raggio d'azione: Tocco -Durata: Permanente -Tempo di lancio: 3 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Il lancio di questo incantesimo apre un canale fra il Piano dell'Energia Negativa e il piano del personaggio. Questi agisce come condotto fra i due Piani, risucchiando alla vittima energia vitale che viene trasferita nel Piano dell'Energia Negativa e sottraendole 2 livelli di esperienza. Il bersaglio di questo incantesimo perde livelli, Dadi-vita, Punti Ferita e abilità in maniera permanente. Questi livelli possono essere recuperati soltanto grazie all'incantesimo divino Ristorare. Risucchio di Energia non ha effetto su non morti, costrutti o creature extraplanari. Può essere lanciato solo da personaggi di allineamento malvagio.~ -@341=~Risucchio di Energia~ -@340=~Impigliato~ -@339=~Shambling mound~ -@338=~Cumulo Strisciante~ -@337=~Predatore -(Evocazione) -Livello: 7 -Sfera: Vegetale -Raggio d'azione: Visuale del lanciatore -Durata: 8 ore -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo crea due cumuli striscianti da 11 DV. Queste creature aiuteranno volontariamente il lanciatore in combattimento o in qualsiasi altra attività che verrà loro assegnata e che avranno la capacità di portare a termine.~ -@336=~Predatore~ -@335=~Foschia di Eldath -(Invocazione) -Livello: 7 -Sfera: Elementale -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 9 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Nessuno -Questo incantesimo copre l'area di effetto con una foschia blu argentato: qualsiasi creatura all'interno della foschia sarà guarita da malattie, veleni e curata di 25 Punti Ferita.~ -@334=~Foschia di Eldath~ -@333=~Scudo Maggiore di Lathander -(Evocazione) -Livello: 7 -Sfera: Guardia -Raggio d'azione: Tocco -Durata: 3 round -Tempo di lancio: 9 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Finché resta attivo, questo incantesimo conferisce ad un bersaglio una Resistenza alla Magia pari a 100% e immunità ai danni. Le creature malvagie non possono essere protette da uno Scudo Maggiore di Lathander. Questo incantesimo può essere lanciato solo da personaggi di allineamento buono.~ -@332=~Scudo Maggiore di Lathander~ -@331=~Distruzione (Necromanzia) -Livello: 7 -Sfera: Guarigione -Raggio di azione: Tocco -Durata: Istantanea -Tempo di lancio: 1 round -Area di effetto: Sacerdote -Tiro-salvezza: Speciale -Questo incantesimo distrugge istantaneamente un bersaglio, riducendolo in piccoli pezzi. Alla vittima è concesso un tiro-salvezza contro morte a -4; se riesce, il bersaglio subisce 8d6 danni invece di essere distrutto. Distruzione può essere lanciato solo da personaggi malvagi. Da notare che un personaggio colpito da un incantesimo di Distruzione non può essere riportato in vita né con un incantesimo Rianimare morti né con Resurrezione.~ -@330=~Distruzione~ -@329=~Incantesimo Inefficace~ -@328=~Inviolabilità Sacra della Mente -(Scongiurazione) -Livello: 7 -Sfera: Protezione -Raggio d'azione: 0 -Durata: 1 turno per livello -Tempo di lancio: 9 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo rafforza la mente del lanciatore contro ogni possibile influenza esterna. Charme, Confusione, Paura, Regressione Mentale, Blocco, Sonno, Berserk e Intossicazione non avranno effetto sul personaggio finché l'incantesimo è attivo.~ -@327=~Inviolabilità Sacra della Mente~ -@326=~Simbolo, Disperazione -(Evocazione/Attrazione) -Livello: 7 -Sfera: Guardia -Raggio d'azione: Visuale del lanciatore -Durata: 2 turni -Tempo di lancio: 3 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: Neg. -Simbolo, Disperazione è un potente incantesimo che consente al personaggio di scrivere un simbolo sul suolo o su un'altra superficie. Il simbolo vi rimarrà finché un avversario non si avvicina troppo ad esso; a quel punto esploderà, costringendo tutti i nemici nell'area d'effetto ad effettuare con successo un tiro-salvezza contro Incantesimi con una penalità pari a -2 per non restare fermi, sopraffatti dallo scoramento e da una sensazione di abbandono. Le vittime dell'incantesimo non si sposteranno per difendersi dagli attacchi. Questo incantesimo annulla gli effetti di Emozione: Speranza se lanciato nell'area in cui esso ha effetto.~ -@325=~Simbolo, Disperazione~ -@324=~Dolori Allucinanti~ -@323=~Simbolo, Dolore -(Evocazione/Attrazione) -Livello: 7 -Sfera: Guardia -Raggio d'azione: Visuale del lanciatore -Durata: 11 turni -Tempo di lancio: 3 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: Neg. -Tutte i nemici nel raggio di 4,5 metri dal Simbolo di Dolore quando viene lanciato devono effettuare un tiro-salvezza contro Incantesimi. Coloro che falliscono sono sopraffatti dal dolore, subendo una penalità pari a -4 ai loro tiri per colpire e -2 alla Destrezza e alla Classe Armatura.~ -@322=~Simbolo, Dolore~ -@321=~Ira Spirituale -(Invocazione) -Livello: 6 -Sfera: Combattimento -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 2 -Area d'effetto: Speciale -Tiro-salvezza: 1/2 -Dopo avere completato questo incantesimo, il personaggio diventa la fonte di una potente energia spirituale che si espande da lui in quattro direzioni, come fulmini. Tutte le creature lungo il percorso del fulmine subiscono 4d10 punti di danno da magia (un tiro-salvezza contro Incantesimi effettuato con successo dimezza gli effetti). Le creature dello stesso allineamento morale del lanciatore (buono, neutrale, malvagio) non sono soggette all'incantesimo.~ -@320=~Ira spirituale~ -@319=~Turbine -(Invocazione) -Livello: 6 -Sfera: Elementale (Aria) -Raggio d'azione: Visuale del lanciatore -Durata: Speciale -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Speciale -Questo incantesimo crea un piccolo turbine vicino al campo visivo del lanciatore. Il turbine si sposterà in maniera casuale in qualsiasi direzione, ferendo alleati e nemici allo stesso modo. Il lanciatore è immune al suo stesso incantesimo e gli elementali e le creature enormi lo sono altrettanto. Se una creatura entra nel percorso del ciclone, subisce 2d8 punti di danno contundente, 2d8 punti di danno tagliente e deve effettuare con successo un tiro-salvezza contro Soffio o rimanere stordita per 2 round. Le creature con 2 Dadi-vita o meno vengono uccise automaticamente da questo incantesimo. Un massimo di otto bersagli può essere soggetto all'incantesimo, dopodiché il turbine si dissiperà.~ -@318=~Turbine~ -@317=~Scudo di Entropia -(Scongiurazione) -Livello: 6 -Sfera: Protezione -Raggio d'azione: 0 -Durata: 1 round per livello -Tempo di lancio: 9 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Quando viene lanciato, questo incantesimo circonda il personaggio con un vortice caotico di energia che blocca o deflette la maggior parte degli attacchi. Ciò conferisce al lanciatore un bonus pari a +6 alla Classe Armatura, un bonus pari a +2 ai tiri-salvezza e il 50% di resistenza all'elettricità, fuoco, freddo e acido. È anche immune all'incantesimo Colonna di Fuoco e agli attacchi basati su proiettili, inclusi quelli creati da magie come Dardo Incantato.~ -@316=~Scudo di Entropia~ -@315=~Causa Ferite Leggere di Massa -(Necromanzia) -Livello: 5 -Sfera: Guarigione -Raggio d'azione: 0 -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: 1/2 -Lanciando questo incantesimo, il personaggio infligge 1d8+1 punti di danno per livello di esperienza del lanciatore ai nemici nelle vicinanze. Un tiro-salvezza contro Incantesimi effettuato con successo dimezza il danno. Questo incantesimo non ha effetto su non morti, costrutti o creature extraplanari. Può essere lanciato solo da personaggi di allineamento malvagio.~ -@314=~Causa Ferite Leggere di Massa~ -@313=~Furia Animale -(Incantamento) -Livello: 5 -Sfera: Combattimento -Raggio d'azione: Tocco -Durata: 15 round -Tempo di lancio: 8 -Area di effetto: 1 creatura -Tiro-salvezza: Nessuno -Questo incantesimo infonde nel bersaglio una ferocia animale. La creatura riceve una Forza pari a 19, +20 Punti Ferita, +20% al Fattore-movimento e un bonus pari a +2 a tutti i tiri-salvezza. Il bersaglio perde la capacità di lanciare incantesimi mentre Furia Animale è attiva; quando avvista i nemici, li attaccherà immediatamente in mischia, usando qualunque cosa abbia in mano. Mentre questo incantesimo è attivo, c'è il 5% di possibilità per round che il bersaglio cada in stato Berserk, attaccando amici e nemici allo stesso modo.~ -@312=~Furia Animale~ -@311=~Interdizione ai Non morti -(Necromanzia) -Livello: 5 -Sfera: Guardia -Raggio d'azione: 0 -Durata: 1 turno -Tempo di lancio: 7 -Area d'effetto: Raggio di 3 metri -Tiro-salvezza: Nessuno -Questo incantesimo amplifica l'influenza che un personaggio ha sui non morti, sebbene sia legata all'area che lo circonda al momento del lancio e non si sposti. Qualsiasi creatura non morta che entri nell'area d'effetto viene scacciata come se lo avesse fatto il lanciatore dell'incantesimo. Se lo scacciare fallisce, la creatura è immune ad ulteriori tentativi di scacciare da parte dell'incantesimo a meno che non abbandoni e poi rientri nell'area d'effetto.~ -@310=~Interdizione ai Non morti~ -@309=~Scudo di Lathander -(Evocazione) -Livello: 5 -Sfera: Guardia -Raggio d'azione: Tocco -Durata: 2 turni -Tempo di lancio: 8 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Finché resta attivo, questo incantesimo conferisce ad un bersaglio immunità ai danni. Le creature malvagie non possono essere protette da uno Scudo di Lathander. Questo incantesimo non può essere lanciato da personaggi di allineamento malvagio.~ -@308=~Scudo di Lathander~ -@307=~Rocce Aguzze -(Alterazione, Incantamento) -Livello: 5 -Sfera: Elementale (Terra) -Raggio d'azione: Visuale del lanciatore -Durata: 12 round -Tempo di lancio: 6 -Area d'effetto: Raggio di 2,5 metri -Tiro-salvezza: Speciale -Questo incantesimo deforma le rocce circostanti, rimodellando il terreno in spuntoni acuminati che si mescolano con l'ambiente circostante. Ogni creatura che entra nell'area d'effetto subisce 2d4 punti di danno perforante per round e deve effettuare con successo un tiro-salvezza contro Incantesimi o subire una riduzione del Fattore-movimento del 30%.~ -@306=~Rocce Aguzze~ -@305=~Giusta Ira dei Fedeli -(Incantamento/Charme) -Livello: 5 -Sfera: Combattimento -Raggio d'azione: 0 -Durata: 1 round per livello -Tempo di lancio: 8 -Area d'effetto: Raggio di 5 metri -Tiro-salvezza: Nessuno -Questo incantesimo conferisce una sorta di follia divina agli alleati del lanciatore, migliorando le loro abilità in combattimento. Tutti gli alleati del personaggio all'interno dell'area d'effetto guadagnano un bonus pari a +1 ai tiri per colpire e ai tiri-salvezza, più un bonus pari a 8 Punti Ferita per tutta la durata dell'incantesimo (questi Punti Ferita possono superare i Punti Ferita Massimi del personaggio). In particolare, tutti gli alleati del medesimo allineamento del lanciatore ottengono un attacco addizionale per round (cancellando gli effetti dell'incantesimo Velocità), immunità agli incantesimi di Charme e di Blocco e un bonus pari a +2 ai tiri per colpire, al danno e ai tiri-salvezza. Chiunque sia affetto da Giusta Ira dei Fedeli diventerà stanco quando gli effetti dell'incantesimo termineranno.~ -@304=~Giusta Ira dei Fedeli~ -@303=~Muro di Luce Lunare -(Invocazione) -Livello: 4 -Sfera: Protezione, Sole -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno -Tempo di lancio: 7 -Area d'effetto: Un muro lungo 2,5 metri e largo mezzo metro -Tiro-salvezza: Nessuno -Questo incantesimo invoca uno scintillante arazzo di forza color bianco-blu. Questa parete non è tagliabile, non richiede agganci fisici e può essere facilmente attraversata. Le creature malvagie che la attraversano subiscono 2d10 punti di danno da magia; le creature non morte malvagie subiscono 5d10 punti di danno. Una creatura che attraversa il muro può subirne solo una volta i danni.~ -@302=~Muro di Luce Lunare~ -@301=~Raffica di Spine -(Alterazione) -Livello: 4 -Sfera: Vegetale -Raggio d'azione: 9 metri -Durata: Istantanea -Tempo di lancio: 3 -Area d'effetto: Cono di 5 metri con arco di 90° -Tiro-salvezza: 1/2 -Mediante questo incantesimo, il lanciatore fa sì che una raffica di punte, aculei, rovi e spine scaturisca dalla sua mano. La raffica di spine copre un cono di 5 metri di lunghezza, infliggendo 2d10 punti di danno perforante a tutte le creature nell'area d'effetto o 1d10 punti di danno se un tiro-salvezza contro Morte viene effettuato con successo.~ -@300=~Raffica di Spine~ -@299=~Inconsapevole~ -@298=~Onda Devastante -(Invocazione) -Livello: 4 -Sfera: Elementale (Acqua) -Raggio d'azione: 30 metri -Durata: Istantanea -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Speciale -Questo incantesimo evoca una grande onda d'acqua di 1,5 metri che si muove nella direzione indicata dal lanciatore, colpendo con enorme potenza tutto ciò che si trova sulla sua strada. L'onda infligge 4d10 punti di danno contundente; in aggiunta a ciò, le creature colpite possono essere stordite (25% di possibilità) o rese prive di sensi (5% di possibilità) per 2 round. Se la creatura colpita effettua con successo un tiro-salvezza contro Soffio, i danni vengono dimezzati e la creatura evita di rimanere stordita o di perdere i sensi.~ -@297=~Onda Devastante~ -@296=~Randello di Metallo Stellare~ -@295=~Randello di Metallo Stellare~ -@294=~Randello di Metallo Stellare -(Evocazione) -Livello: 4 -Sfera: Combattimento -Raggio d'azione: 0 -Durata: 3 turni -Tempo di lancio: 7 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo crea una clava magica di ferro meteoritico che infligge 1d6+2 punti di danno contundente, conferisce un bonus pari a +2 ai tiri per colpire e viene considerata come un'arma +4 per determinare ciò che può colpire. I bonus e le penalità di Forza, competenza e specializzazione si applicano normalmente. La clava infligge ulteriori 2d6 punti di danno contundente contro creature innaturali (non morti, elementali, golem, creature extraplanari ecc.).~ -@293=~Randello di Metallo Stellare~ -@292=~Resistenza Infallibile -(Necromanzia) -Livello: 4 -Sfera: Necromanzia -Raggio di azione: Tocco -Durata: Istantanea -Tempo di lancio: 9 -Area di effetto: 1 creatura -Tiro-salvezza: Nessuno -Questo incantesimo ripristina le energie della creatura toccata, eliminando qualsiasi fatica.~ -@291=~Resistenza Infallibile~ -@290=~Nube Pestilenziale -(Alterazione) -Livello: 4 -Sfera: Combattimento, Elementale (Aria) -Raggio d'azione: Visuale del lanciatore -Durata: 4 round -Tempo di lancio: 7 -Area d'effetto: Raggio di 3,5 metri -Tiro-salvezza: Neg. -Questo incantesimo trasforma l'aria in un raggio di 3,5 metri in una fetida nebbia grigiastra. Il lanciatore e le creature non viventi sono immuni agli effetti della nube. Per ogni round di esposizione a quest'aria carica di malattie, una creatura deve effettuare con successo un tiro-salvezza contro Soffio o subire 3 punti di danno da magia, cecità e la perdita di 3 punti di Forza e di Destrezza. Questi effetti durano 1 turno. Nube Pestilenziale può essere lanciato solo da personaggi di allineamento malvagio.~ -@289=~Nube Pestilenziale~ -@288=~Stordito~ -@287=~Guarito~ -@286=~Furia Sanguinaria -(Alterazione) -Livello: 4 -Sfera: Combattimento -Raggio d'azione: Visuale del lanciatore -Durata: 2 turni -Tempo di lancio: 7 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Questo incantesimo funziona solo sui personaggi giocanti o sulle creature alleate. Quando viene lanciato, il bersaglio di questo incantesimo cade in preda ad una furia berserk, attaccando la creatura più vicina finché questa non muore e spostandosi in seguito verso il bersaglio successivo. Mentre Furia Sanguinaria è attiva, il bersaglio è immune a Charme, Sonno, Paura, Blocco, Stordimento, Confusione, Emozione, incantesimi di simbolo ed effetti simili. In aggiunta a ciò, il bersaglio riceve i seguenti bonus: +2 ai tiri per colpire, +3 al danno, +2 alla Forza, 10 Punti Ferita e +2 al Fattore-movimento. L'incantesimo ha tuttavia diversi svantaggi: i Punti Ferita del bersaglio sono coperti per la durata dell'incantesimo e il bersaglio non può beneficiare di nessun effetto che curi i Punti Ferita. Alla fine della durata dell'incantesimo, il bersaglio diventa affaticato e la sua Forza scende a 3 per 2 turni. Furia Sanguinaria non può avere effetto su creature di allineamento legale e non può essere lanciata da creature del suddetto allineamento.~ -@285=~Furia Sanguinaria~ -@284=~Recitare -(Scongiurazione, Evocazione/Attrazione) -Livello: 4 -Sfera: Combattimento -Raggio d'azione: 0 -Durata: 1 round per livello -Tempo di lancio: 7 -Area d'effetto: Raggio di 7,5 metri -Tiro-salvezza: Nessuno -Recitando un passo o un versetto sacro, il personaggio invoca la benedizione della propria divinità su di sé e sui suoi alleati mentre semina confusione e debolezza sui suoi nemici. Gli alleati del personaggio ottengono un bonus pari a +2 ai loro tiri per colpire e ai loro tiri-salvezza, mentre i suoi nemici ricevono una penalità pari a -2 agli stessi tiri. Recitare non annulla l'incantesimo Preghiera: i due incantesimi possono essere utilizzati insieme e gli effetti sono cumulativi.~ -@283=~Recitare~ -@282=~Scarica di elettricità statica~ -@281=~Scarica Elettrostatica -(Alterazione) -Livello: 4 -Sfera: Tempo atmosferico -Raggio d'azione: 0 -Durata: 1 turno per livello -Tempo di lancio: 9 -Area d'effetto: Visuale del lanciatore -Tiro-salvezza: 1/2 -Scarica Elettrostatica è simile a Invocare il Fulmine, tranne per il fatto che può essere utilizzato anche in luoghi chiusi. Questo incantesimo permette al lanciatore di generare una scarica elettrostatica su una qualunque creatura si trovi all'interno dell'area d'effetto, infliggendo 2d8 punti di danno da elettricità più 1d8 punti di danno addizionale per livello del personaggio (un tiro-salvezza contro Incantesimi effettuato con successo dimezza il danno). La scarica continua a sprigionarsi una volta per turno per tutta la durata dell'incantesimo.~ -@280=~Scarica Elettrostatica~ -@279=~Creare Fuoco -(Alterazione) -Livello: 4 -Sfera: Elementale (Fuoco) -Raggio d'azione: Visuale del lanciatore -Durata: 1 round -Tempo di lancio: 7 -Area d'effetto: Raggio di 1,5 metri -Tiro-salvezza: Nessuno -Quando questo incantesimo viene lanciato, dal bersaglio selezionato esplodono delle fiamme, infliggendo 1d4 punti di danno da fuoco più 1 punto per livello del lanciatore a tutte le creature nel raggio d'effetto dell'incantesimo. Le creature subiranno il danno una volta al round a prescindere da quando entreranno nell'area d'effetto.~ -@278=~Creare Fuoco~ -@277=~Favore di Ilmater -(Necromanzia) -Livello: 3 -Sfera: Necromanzia, Protezione -Raggio d'azione: 9 metri -Durata: Istantaneo -Tempo di lancio: 6 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Pronunciando questo incantesimo, il personaggio scambia la sua forza vitale con quella del destinatario, scambiando tutte le ferite fisiche. L'incantesimo funzionerà solo se il lanciatore ha più Punti Ferita del bersaglio nel momento in cui si svolge lo scambio. Lo scambio è permanente fino a quando il personaggio non usa altri metodi per curare il danno e può essere effettuato da una certa distanza, sempre rimanendo entro i limiti di raggio d'azione dell'incantesimo. Solo i Punti Ferita vengono scambiati; il lanciatore non può farsi carico di altre condizioni del bersaglio come Malattia, Veleno, Intossicazione o simili afflizioni. -Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato da personaggi di allineamento malvagio.~ -@276=~Favore di Ilmater~ -@275=~Causa Ferite Medie -(Necromanzia) -Livello: 3 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Lanciando questo incantesimo e toccando una creatura, il sacerdote infligge 14 punti di danno (un tiro-salvezza contro Incantesimi effettuato con successo dimezza il danno) al corpo della creatura. Questo incantesimo non ha effetto su non morti, costrutti, o creature extraplanari. Causa Ferite Medie non può essere lanciato da personaggi di allineamento buono.~ -@274=~Causa Ferite Medie~ -@273=~Guscio di Tempesta -(Scongiurazione) -Livello: 3 -Sfera: Protezione, Tempo atmosferico -Raggio d'azione: 0 -Durata: 1 turno -Tempo di lancio: 6 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo circonda il lanciatore con una luminosa sfera di energia perturbante che si sposta con lui. Il Guscio di Tempesta aumenta la Resistenza al Fuoco, Freddo ed Elettricità del lanciatore del 50%.~ -@272=~Guscio di Tempesta~ -@271=~Tocco della Muffa -(Alterazione) -Livello: 3 -Sfera: Vegetale -Raggio d'azione: Tocco -Durata: Speciale -Tempo di lancio: 6 -Area d'effetto: Raggio di 3 metri -Tiro-salvezza: Speciale -Questo incantesimo infetta una creatura toccata dal personaggio con una muffa marrone che si diffonde velocemente. Se la creatura infettata fallisce un tiro-salvezza contro Incantesimi, l'infezione è grave e la creatura subisce danno magico nel seguente modo: -1° round: 4d6 punti di danno -2° round: 3d6 punti di danno -3° round: 2d6 punti di danno -4° round: 1d6 punti di danno -Se il tiro-salvezza viene effettuato con successo, i danni vengono ridotti nel seguente modo: -1° round: 2d6 punti di danno -2° round: 1d6 punti di danno -3° round: 1d6 punti di danno -Ad ogni round dopo il primo, la creatura più vicina in un raggio di 3 metri dalla vittima deve effettuare con successo un tiro-salvezza contro Incantesimi o essere infettata dalla muffa con la massima potenza. Questo processo continua fino a quando la muffa non fallisce nell'infettare una vittima adatta in tempo. Le creature già soggette agli effetti della muffa non possono contrarla di nuovo. La muffa marrone muore rapidamente una volta che l'incantesimo è terminato.~ -@270=~Tocco della Muffa~ -@269=~Scroscio di Pioggia -(Invocazione) -Livello: 3 -Sfera: Elementale (Acqua) -Raggio d'azione: Visuale del lanciatore -Durata: 2 round -Tempo di lancio: 6 -Area d'effetto: Raggio di 5 metri -Tiro-salvezza: Nessuno -Questo incantesimo crea una pioggia magica che riempie l'area d'effetto. Tutte le creature del fuoco e del freddo subiscono 2d3 punti di danno da magia per round. In aggiunta a ciò, tutte le creature nell'area hanno una possibilità del 50% per round di essere colpite da fulmini che infliggono 2d6 punti di danno da elettricità, con un tiro-salvezza contro Incantesimi per dimezzare il danno. Gli incantesimi Lama Fiammeggiante, Sudario Fiammeggiante e le auree delle salamandre vengono estinti da Scroscio di Pioggia.~ -@268=~Scroscio di Pioggia~ -@267=~Crescita di Spine -(Alterazione) -Livello: 3 -Sfera: Elementale (Terra) -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno -Tempo di lancio: 6 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: Nessuno -Questo incantesimo trasforma il terreno circostante in un ammasso di piante spinose. Qualsiasi creatura che entri nell'area subisce 1d4 punti di danno perforante e 1d4 punti di danno tagliente ad ogni round fino al termine dell'incantesimo.~ -@266=~Crescita di Spine~ -@265=~Cerchio di Ossa -(Necromanzia) -Livello: 3 -Sfera: Guardia, Creazione -Raggio d'azione: 0 -Durata: 3 round -Tempo di lancio: 3 round -Area d'effetto: Raggio di 90 centimetri -Tiro-salvezza: Nessuno -Questo incantesimo evoca una barriera di ossa fluttuanti che vortica rapidamente intorno al personaggio. Chiunque entri al suo interno subisce 1d6 punti di danno contundente e 1d6 punti di danno tagliente per round. Il lanciatore non può muoversi per la durata dell'incantesimo. Cerchio di Ossa non può essere lanciato dai personaggi di allineamento buono.~ -@264=~Cerchio di Ossa~ -@263=~Lama di luna~ -@262=~Lama di luna~ -@261=~Lama Lunare -(Invocazione) -Livello: 3 -Sfera: Combattimento, Sole -Raggio d'azione: 0 -Durata: 2 turni -Tempo di lancio: 6 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo evoca un silente costrutto privo di peso, simile ad una spada e fatto di luce lunare che si estende fino a 120 centimetri dalla mano del personaggio. La lama lunare viene considerata un'arma +4 per determinare quali creature possa danneggiare, sebbene il bonus non venga applicato ai tiri per colpire. Inoltre, a causa della natura inconsistente della lama lunare, non vengono applicati i bonus della Forza per le armi da mischia. -Il colpo di una lama lunare risucchia la forza vitale del bersaglio, infliggendo 1d12+4 punti di danno da magia più 1d12 danni aggiuntivi ai non morti, i quali sono particolarmente sensibili ad essa. Un colpo messo a segno disturba temporaneamente la magia, provocando il fallimento di qualsiasi incantesimo lanciato dal bersaglio nel round successivo.~ -@260=~Lama Lunare~ -@259=~Sonno~ -@258=~Esaltazione -(Scongiurazione) -Livello: 3 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: 1 turno -Tempo di lancio: 9 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Questo incantesimo consente al personaggio di soccorrere e di proteggere un qualsiasi individuo tranne se stesso. Con un tocco, il lanciatore rimuove effetti quaili Paura, Sonno, Regressione Mentale, Incoscienza, Intossicazione, Berserk e Confusione. Inoltre, il destinatario viene protetto contro incantesimi e altri attacchi che causano questi effetti per tutta la durata dell'incantesimo.~ -@257=~Esaltazione~ -@256=~Causa Malattia -(Necromanzia) -Livello: 3 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: 8 ore -Tempo di lancio: 9 -Area d'effetto: 1 creatura -Tiro-salvezza: Neg. -Questo incantesimo infligge ad una creatura toccata dal personaggio una malattia che sottrae al bersaglio 5d4 punti di Forza. Un tiro-salvezza contro Incantesimi effettuato con successo nega gli effetti. Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato dai personaggi di allineamento buono.~ -@255=~Causa Malattia~ -@254=~Penalità in Combattimento~ -@253=~Bonus in Combattimento~ -@252=~Preghiera -(Evocazione/Attrazione) -Livello: 3 -Sfera: Combattimento -Raggio d'azione: 0 -Durata: 1 round per livello -Tempo di lancio: 6 -Area d'effetto: Raggio di 9 metri -Tiro-salvezza: Nessuno -Preghiera concede un beneficio al personaggio e ai suoi alleati e maledice i suoi nemici. Tutti gli attacchi, i danni e i tiri-salvezza delle creature alleate ottengono un bonus pari a +1, mentre quelli dei nemici subiscono una penalità pari a -1. Qualunque creatura si trovi nell'area d'effetto quando l'incantesimo viene lanciato continuerà ad esserne affetta anche dopo averla lasciata; pertanto, se i guerrieri vogliono inseguire il goblin che sta scappando, gli effetti della preghiera li seguiranno.~ -@251=~Preghiera~ -@250=~Causa Ferite Moderate -(Necromanzia) -Livello: 2 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Lanciando questo incantesimo e toccando una creatura, il personaggio infligge 11 punti di danno al corpo della creatura (un tiro-salvezza contro Incantesimi effettuato con successo dimezza i danni). Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato dai personaggi di allineamento buono.~ -@249=~Causa Ferite Moderate~ -@248=~Artigli della Bestia~ -@247=~Artigli della Bestia~ -@246=~Artigli della Bestia -(Alterazione) -Livello: 2 -Sfera: Combattimento -Raggio d'azione: 0 -Durata: 1 turno -Tempo di lancio: 5 -Area di effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo trasforma le mani del lanciatore negli artigli di una belva feroce, fornendo al personaggio una Forza pari a 18/72 e la capacità di graffiare un avversario per 2d4 punti di danno tagliente (+ il bonus derivante dalla Forza). Il lanciatore può attaccare due volte per round con gli artigli della bestia con un bonus pari a +2 ai tiri per colpire.~ -@245=~Artigli della Bestia~ -@244=~Circondato da un Alone Argentato (penalità alla CA di 2)~ -@243=~Lancia dell'Unicorno -(Invocazione) -Livello: 2 -Sfera: Combattimento -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: Speciale -Questo incantesimo crea una lancia parzialmente eterea con riflessi argentati dall'aspetto simile al corno di un unicorno. Il lanciatore sceglie un bersaglio e la lancia dell'unicorno viene immediatamente scagliata contro di esso, infliggendo 3d6 punti di danno perforante dimezzabili con un tiro-salvezza contro Incantesimi effettuato con successo. Sebbene la lancia dell'unicorno si dissolva dopo aver colpito, lascia sempre un alone argentato intorno al bersaglio che lo rende più facile da vedere e da colpire, infliggendogli una penalità pari a -2 alla sua Classe Armatura per 3 round.~ -@242=~Lancia dell'Unicorno~ -@241=~Guarito~ -@240=~Cura Ferite Moderate -(Necromanzia) -Livello: 2 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Una versione più potente dell'incantesimo di 1° livello Cura Ferite Leggere, Cura Ferite Medie guarisce 11 Punti Ferita e cura l'Intossicazione. Questo incantesimo non ha effetto su non morti, costrutti o creature extraplanari.~ -@239=~Cura Ferite Moderate~ -@238=~Accecato~ -@237=~Bruciatura Solare -(Invocazione) -Livello: 1 -Sfera: Sole -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 4 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Quando questo incantesimo viene lanciato, un brillante raggio di calore bruciante scende giù dal cielo e colpisce un bersaglio a scelta del personaggio. Qualsiasi creatura colpita dal raggio subisce 1d6 punti di danno più 1 punto per livello del lanciatore; tuttavia, se il bersaglio è un non morto o una creatura vulnerabile alla luce splendente, il danno è pari 1d6 punti più 2 danni per livello del lanciatore. Oltre a subire danni, le vittime rimangono accecate per 3 round. Al bersaglio è concesso un tiro-salvezza contro Incantesimi per dimezzare il danno ed evitare la cecità.~ -@236=~Bruciatura Solare~ -@235=~Causa Ferite Leggere -(Necromanzia) -Livello: 1 -Sfera: Guarigione -Raggio d'azione: Tocco -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: 1 creatura -Tiro-salvezza: 1/2 -Lanciando questo incantesimo e toccando una creatura, il personaggio infligge 8 punti di danno al corpo della creatura (un tiro-salvezza contro Incantesimi effettuato con successo dimezza i danni). Questo incantesimo non ha effetto su non morti, costrutti e creature extraplanari. Non può essere lanciato dai personaggi di allineamento buono.~ -@234=~Causa Ferite Leggere~ -@233=~Maledetto~ -@232=~Maledizione -(Evocazione/Attrazione) -Livello: 1 -Sfera: Tutte -Raggio d'azione: Visuale del lanciatore -Durata: 6 round -Tempo di lancio: 9 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: Nessuno -Quando mormora l'incantesimo Maledizione, il personaggio abbassa il morale dei nemici e infligge una penalità pari a -1 ai loro tiri-salvezza e ai loro tiri per colpire. Nell'istante in cui il lancio dell'incantesimo viene completato, esso influenza tutte le creature in un raggio di 4,5 metri centrato nel punto scelto dal personaggio. Le creature colpite dall'incantesimo che lasciano l'area sono ancora soggette ai suoi effetti; coloro che vi entrano in seguito non lo sono.~ -@231=~Maledizione~ -@230=~Questo incantesimo guarisce il personaggio selezionato. Vengono ripristinati 11 Punti Ferita.~ -@229=~Occhio di Pietra -Questa sfera difende l'incantatore da un singolo attacco di pietrificazione. -Alternativamente può anche essere usata come incantesimo arcano di livello 3 Blocca Persone, immobilizzando creature umanoidi di taglia umana o più piccola per 1 round/livello (tiro-salvezza contro Incantesimi nega gli effetti).~ -@228=~Occhio di Pietra~ -@227=~Occhio dello Spirito -Questa sfera blocca gli attacchi magici che causano istantaneamente la morte (Incantesimo della Morte, Dito della Morte, Parola del Potere: Uccidere, Togliere la Vita, Disintegrazione). -Alternativamente l'incantatore può anche scegliere di usare il potere della sfera come l'incantesimo arcano di livello 2 Raggio di Indebolimento, riducendo la forza del bersaglio al valore di 5 (tiro-salvezza contro Incantesimi nega gli effetti).~ -@226=~Occhio dello Spirito~ -@225=~Occhio della Forza d'Animo -Questa sfera blocca per una sola volta gli effetti di stordimento, sordità, cecità o silenzio. -Alternativamente può anche essere usata come incantesimo arcano di livello 4 Grido, causando 4d6 danni magici e assordando tutte le creature nel raggio di 11 metri dall'incantatore (tiro-salvezza contro Incantesimi dimezza i danni e nega la sordità).~ -@224=~Occhio della Tempra~ -@223=~Occhio del Veleno -Questa sfera blocca ogni attacco o azione che potrebbe avvelenare l'incantatore. -La sfera può essere usata come l'incantesimo divino di livello 4 Veleno, causando 20 punti di danno a una creatura nell'arco di 20 secondi (Tiro-salvezza contro Veleno nega gli effetti).~ -@222=~Occhio del Veleno~ -@221=~Occhio della Spada -Questa sfera deflette il primo attacco fisico andato a segno contro l'incantatore. -La sfera può essere usata come l'incantesimo arcano di livello 1 Dardo Incantato, creando sino a cinque proiettili (uno ogni due livelli di esperienza dopo il primo) che causano ognuno 1d4+1 danni al bersaglio quando vanno a segno.~ -@220=~Occhio della Spada~ -@219=~Occhio del Mago -Questa sfera assorbe un attacco d'energia da fuoco, elettricità, da freddo o acido. -La sfera può essere usata come l'incantesimo arcano di livello 3 Fulmine, causando 1d6 danni elettrici per livello (fino a un massimo di 10d6) a tutte le creature sulla sua traiettoria.~ -@218=~Occhio del Mago~ -@217=~Occhio della Mente -Questa sfera protegge l'incantatore da attacchi mentali come charme, emozione e paura. -La sfera può essere usata come l'incantesimo arcano di livello 1 Charme, ponendo una creatura umanoide sotto il controllo dell'incantatore per 1 turno (tiro-salvezza contro Incantesimi nega gli effetti).~ -@216=~Occhio della Mente~ -@215=~Non puoi lanciare questo incantesimo finché l'attuale lancio non è terminato.~ -@214=~Sette Occhi~ -@213=~Sette Occhi -(Scongiurazione) -Livello: 7 -Raggio d'azione: 0 -Durata: 2 turni -Tempo di lancio: 7 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo evoca sette sfere magiche che fluttuano intorno alla testa del lanciatore. Ogni occhio ha un'abilità offensiva e difensiva; se una volta che l'una o l'altra viene usata, l'occhio perde il suo potere. I poteri di ciascun occhio sono descritti di seguito. -Occhio della Mente: Questo occhio protegge il personaggio dagli attacchi mentali come Charme, Emozione e Paura. L'occhio può essere impiegato come l'incantesimo arcano di 1° livello Charme, portando una creatura umanoide sotto il controllo del lanciatore (un tiro-salvezza contro Incantesimi nega l'effetto). -Occhio della Spada: Questo occhio devia il primo attacco fisico che colpisce il lanciatore. L'occhio può essere impiegato come l'incantesimo arcano di 1° livello Dardo Incantato, creando sino a cinque dardi (uno ogni 2 livelli di esperienza dopo il 1°), ciascuno dei quali ingligge 1d4+1 punti di danno da magia. -Occhio del Mago: Questo occhio assorbe una manifestazione di danno da fuoco, elettricità, freddo o acido. L'occhio può essere impiegato come l'incantesimo arcano di 3° Fulmine, infliggendo 1d6 punti di danno da elettricità per livello (sino a un massimo di 10d6) a tutte le creature lungo il suo percorso. -Occhio del Veleno: Questo occhio blocca un attacco o un effetto che potrebbe avvelenare il lanciatore. L'occhio può essere impiegato come l'incantesimo divino di 4° livello Veleno, infliggendo 20 punti di danno ad una creature per 20 secondi (un tiro-salvezza contro Veleno effettuato con successo nega gli effetti). -Occhio dello Spirito: Questo occhio blocca un attacco magico di morte istantanea (Incantesimo della Morte, Dito della Morte, Parola del Potere: Uccidere, Togliere la Vita, Distruzione). L'occhio può essere impiegato come l'incantesimo arcano di 2° livello Raggio di Indebolimento, riducendo la Forza del bersaglio a 5 (un tiro-salvezza contro Incantesimi nega gli effetti). -Occhio della Tempra: Questo occhio blocca un effetto di Stordimento, Sordità, Cecità o Silenzio. L'occhio può essere impiegato come l'incantesimo arcano di 4° livello Grido, infliggendo 4d6 punti di danno da magia e assordando le creature in un cono di 9 metri (un tiro-salvezza contro Incantesimi effettuato con successo dimezza il danno e nega la sordità). -Occhio di Pietra: Questo occhio protegge il lanciatore da un singolo attacco di Pietrificazione. L'occhio può essere impiegato come l'incantesimo arcano di 3° livello Blocca Persone, rendendo immobili umanoidi di taglia normale o più piccola per 1 round per livello (un tiro-salvezza contro Incantesimi effettuato con successo nega gli effetti).~ -@212=~Sette Occhi~ -@211=~Furia di Malavon~ -@210=~Furia di Malavon -(Apparizione) -Livello: 7 -Raggio d'azione: 0 -Durata: Istantanea -Tempo di lancio: 1 -Area d'effetto: 2 metri -Tiro-salvezza: 1/2 -Furia di Malavon fu creata dallo stregone drow Malavon. Questo incantesimo scaglia dardi di pura energia dal corpo del lanciatore in ogni direzione, ferendo sia i nemici sia gli alleati. Le piccole saette magiche infliggono 20d4 punti di danno perforante a chiunque si trovi sulla traiettoria. Questo incantesimo è particolarmente utile quando il personaggio è circondato dai nemici.~ -@209=~Furia di Malavon~ -@208=~Colpo vorpal~ -@207=~Morte~ -@206=~Non morto distrutto~ -@205=~Planare esterno distrutto~ -@204=~Ombre~ -@203=~Ombre -(Illusione/Visione) -Livello: 6 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round per livello -Tempo di lancio: 6 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Ombre è simile agli incantesimi Mostri d'Ombra e Mostri d'Ombra Potenziati. Permette al lanciatore di plasmare materia dal Semipiano delle Ombre in illusioni di mostri. Le ombre sono più forti di quelle evocate con gli incantesimi Mostri d'Ombra e Mostri d'Ombra Potenziati e obbediranno al lanciatore fino al termine dell'incantesimo o finché non vengono distrutte.~ -@202=~Ombre~ -@201=~Tocco del Lich~ -@200=~Tocco del Lich~ -@199=~Tocco del Lich -(Necromanzia) -Livello: 6 -Raggio d'azione: Tocco -Durata: 1 round per livello -Tempo di lancio: 6 -Area d'effetto: Il lanciatore -Tiro-salvezza: Speciale -Questo incantesimo conferisce i poteri e le immunità di un lich al lanciatore. Il personaggio diventa immune a Paralisi e Paura per tutta la durata dell'incantesimo e le sue mani irradiano una sovrannaturale luce blu che infligge 1d10 punti di danno da freddo al bersaglio, paralizzandolo se fallisce un tiro-salvezza contro Paralisi. Questo incantesimo non ha alcun effetto sui non morti.~ -@198=~Tocco del Lich~ -@197=~Dissolvi Effetti~ -@196=~Barriera Anti-magia~ -@195=~Barriera Anti-magia -(Scongiurazione) -Livello: 6 -Raggio d'azione: 0 -Durata: 1 turno per livello -Tempo di lancio: 1 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo circonda il lanciatore con una barriera invisibile che si sposta con lui. Tale barriera lo rende immune a qualunque attacco magico, ma gli impedisce di lanciare incantesimi all'esterno. -Barriera Anti-magia dissolve anche Sordità e Regressione Mentale del personaggio.~ -@194=~Barriera Anti-magia~ -@193=~Uomo-lucertola Robusto~ -@192=~Élite Goblin~ -@191=~Élite Goblin~ -@190=~Mostri d'Ombra Potenziati~ -@189=~Mostri d'Ombra Potenziati -(Illusione/Visione) -Livello: 5 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round per livello -Tempo di lancio: 5 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo è simile a quello di 4° livello Mostri d'Ombra, tranne per il fatto che le creature evocate sono molto più potenti.~ -@188=~Mostri d'Ombra Potenziati~ -@187=~Arma Troll~ -@186=~Troll~ -@185=~Troll~ -@184=~Mostri d'Ombra~ -@183=~Mostri d'Ombra -(Illusione/Visione) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round per livello -Tempo di lancio: 4 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo modella in mostri illusori materiale del Semipiano delle Ombre. Fino a sei mostri possono essere evocati in una sola volta, ma il totale dei loro Dadi-vita di norma non supererà il livello del lanciatore.~ -@182=~Mostri d'Ombra~ -@181=~Velocizzato~ -@180=~Lentezza~ -@179=~Rallentato~ -@178=~Ritirata Rapida -(Alterazione) -Livello: 1 -Raggio d'azione: 0 -Durata: 3 round -Tempo di lancio: 1 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo raddoppia il normale Fattore-movimento del personaggio per un breve periodo di tempo... di solito abbastanza a lungo da scappare. Altri effetti che alterano il movimento, come Velocità e Lentezza, non possono avere effetto sul lanciatore mentre questo incantesimo è attivo. Finché gli effetti di Ritirata Rapida sono attivi, il personaggio non può attaccare, lanciare incantesimi o usare abilità speciali... Può solo scappare.~ -@177=~Ritirata Rapida~ -@176=~Spada di Mordenkainen~ -@175=~Spada di Mordenkainen~ -@174=~Spada di Mordenkainen -(Apparizione) -Livello: 7 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round per livello -Tempo di lancio: 7 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo evoca un campo di forza luminoso a forma di spada che può essere mentalmente manovrato dal lanciatore. Colpisce come se fosse brandita da un guerriero il cui livello è la metà di quello del lanciatore e, nonostante sia tenuta nella mano del lanciatore, può colpire creature in qualsiasi punto nella visuale del personaggio. Benché la spada non abbia bonus al danno, può ferire creature normalmente colpibili solo da armi +2 o meno ed infligge 5d6 punti di danno tagliente ad ogni colpo.~ -@173=~Spada di Mordenkainen~ -@172=~Elementale dell'Acqua~ -@171=~Elementale dell'Acqua~ -@170=~Evocare Elementale dell'Acqua~ -@169=~Evocare Elementale dell'Acqua -(Evocazione/Attrazione) -Livello: 5 -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno per livello -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo permette al lanciatore di evocare un elementale con 8 DV dal Piano Elementale dell'Acqua e di sottometterlo alla sua volontà. Questo elementale combatterà al fianco del personaggio fino al termine dell'incantesimo o finché non viene distrutto.~ -@168=~Evocare Elementale dell'Acqua~ -@167=~Elementale dell'Aria~ -@166=~Elementale dell'Aria~ -@165=~Evocare Elementale dell'Aria~ -@164=~Evocare Elementale dell'Aria -(Evocazione/Attrazione) -Livello: 5 -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno per livello -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo consente al lanciatore di evocare un elementale con 8 Dadi-vita dal Piano Elementale dell'Aria e di legarlo alla sua volontà. Questa creatura combatterà al suo fianco sino al termine dell'incantesimo o finché non verrà distrutta.~ -@163=~Evocare Elementale dell'Aria~ -@162=~Elementale del Fuoco~ -@161=~Elementale del Fuoco~ -@160=~Evocare Elementale del Fuoco~ -@159=~Evocare Elementale del Fuoco -(Evocazione/Attrazione) -Livello: 5 -Raggio d'azione: Campo visivo dello stregone -Durata: 1 turno per livello -Tempo di lancio: 1 round -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo permette allo stregone di evocare un elementale dal Piano Elementale del Fuoco e di sottometterlo al suo volere. Questo elementale combatterà per lo stregone fino al termine dell'incantesimo o fino alla sua distruzione.~ -@158=~Evocare Elementale del Fuoco~ -@157=~Elementale della Terra~ -@156=~Elementale della Terra~ -@155=~Evocare Elementale della Terra~ -@154=~Evocare Elementale della Terra -(Evocazione/Attrazione) -Livello: 5 -Raggio d'azione: Campo visivo dello stregone -Durata: 1 turno per livello -Tempo di lancio: 1 round -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo permette allo stregone di evocare un elementale dal Piano Elementale della Terra e di sottometterlo al suo volere. Questo elementale combatterà per lo stregone fino al termine dell'incantesimo o fino alla sua distruzione.~ -@153=~Evocare Elementale della Terra~ -@152=~Evocare Mostri III~ -@151=~Evocare Mostri III -(Evocazione/Attrazione) -Livello: 5 -Raggio d'azione: 6 metri -Durata: 4 round + 1 round per livello -Tempo di lancio: 5 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d4 mostri di 3° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@150=~Evocare Mostri III~ -@149=~Uomo-lucertola~ -@148=~Uomo-lucertola~ -@147=~Evocare Mostri II~ -@146=~Evocare Mostri II -(Evocazione/Attrazione) -Livello: 4 -Raggio d'azione: 6 metri -Durata: 3 round + 1 round per livello -Tempo di lancio: 4 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d6 mostri di 2° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@145=~Evocare Mostri II~ -@144=~Goblin~ -@143=~Goblin~ -@142=~Evocare Mostri I~ -@141=~Evocare Mostri I -(Evocazione/Attrazione) -Livello: 3 -Raggio d'azione: 6 metri -Durata: 2 round + 1 round per livello -Tempo di lancio: 3 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 2d3 mostri di 1° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@140=~Evocare Mostri I~ -@139=~Attacca~ -@138=~Minotauro~ -@137=~Minotauro~ -@136=~Evocare Mostri V~ -@135=~Evocare Mostri V -(Evocazione/Attrazione) -Livello: 7 -Raggio d'azione: 6 metri -Durata: 6 round + 1 round per livello -Tempo di lancio: 7 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d3 mostri di 5° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@134=~Evocare Mostri V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Salamandra~ -@130=~Salamandra~ -@129=~Salamandra del Gelo~ -@128=~Salamandra del Gelo~ -@127=~Evocare Mostri VI~ -@126=~Evocare Mostri VI -(Evocazione/Attrazione) -Livello: 8 -Raggio d'azione: 6 metri -Durata: 7 round + 1 round per livello -Tempo di lancio: 8 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d3 mostri di 6° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@125=~Evocare Mostri VI~ -@124=~Attacca~ -@123=~Umber Hulk~ -@122=~Umber Hulk~ -@121=~Scheletro Guardiaossa~ -@120=~Scheletro Guardiaossa~ -@119=~Evocare Mostri VII~ -@118=~Evocare Mostri VII -(Evocazione/Attrazione) -Livello: 9 -Raggio d'azione: 6 metri -Durata: 8 round + 1 round per livello -Tempo di lancio: 9 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d2 mostri di 7° o di 8° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@117=~Evocare Mostri VII~ -@116=~Evocare Mostri IV~ -@115=~Evocare Mostri IV -(Evocazione/Attrazione) -Livello: 6 -Raggio d'azione: 6 metri -Durata: 5 round + 1 round per livello -Tempo di lancio: 6 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Con il lancio di questo incantesimo, il personaggio evoca 1d3 mostri di 4° livello. Questi appaiono all'interno del raggio d'azione dell'incantesimo e attaccano gli avversari del lanciatore per tutta la durata dell'incantesimo o finché non vengono sconfitti.~ -@114=~Evocare Mostri IV~ -@113=~Teschio~ -@112=~Monster Transparency -Do not translate~ -@111=~Oggetto Trasparente del Mostro~ -@110=~Ombra~ -@109=~Ombra~ -@108=~Evocare Ombre~ -@107=~Evocare Ombre -(Evocazione/Attrazione, Necromanzia) -Livello: 5 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round + 1 round per livello -Tempo di lancio: 5 -Area d'effetto: Speciale -Tiro-salvezza: Nessuno -Questo incantesimo evoca 4 Dadi-vita di ombre. Le ombre obbediranno agli ordini del lanciatore, attaccando i suoi nemici o eseguendo azioni finché non vengono uccise o l'incantesimo non ha termine.~ -@106=~Evocare Ombre~ -@105=~Pugno di Ferro~ -@104=~Pugno di Ferro~ -@103=~Colpito da una terribile malattia~ -@102=~Malato~ -@101=~Avvelenato~ -@100=~Veleno~ -@99=~Corpo di Ferro~ -@98=~Corpo di Ferro -(Alterazione) -Livello: 8 -Raggio d'azione: 0 -Durata: 2 turni -Tempo di lancio: 8 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo trasforma il corpo del lanciatore in ferro animato, conferendogli diverse potenti resistenze e capacità. Quando questo incantesimo è attivo, il personaggio ha una Resistenza all'Elettricità e al Veleno del 100%, al Fuoco del 50% e ai danni contundenti del 25%. Gli incantesimi che colpiscono la respirazione o la fisiologia del lanciatore vengono ignorati. Inoltre, la sua Forza viene impostata a 25 ed egli può attaccare due volte per round con pugni di ferro infliggendo 2d4 punti di danno più il relativo bonus derivante dalla Forza. Sfortunatamente, i movimenti del lanciatore diventano lenti e goffi, riducendo del 25% il suo Fattore-movimento rispetto al normale, e non gli sarà possibile lanciare incantesimi mentre Corpo di Ferro è ancora attivo.~ -@97=~Corpo di Ferro~ -@96=~Privo di Sensi~ -@95=~Grido Potente~ -@94=~Grido Potente -(Invocazione) -Livello: 8 -Raggio d'azione: 0 -Durata: Istantanea -Tempo di lancio: 1 -Area d'effetto: Cono di 5 metri con arco di 15° -Tiro-salvezza: 1/2 -Mormorando questo incantesimo, il personaggio rilascia una forza stordente dalla sua bocca lungo un cono di 5 metri. Grido Potente è estremamente faticoso e pericoloso per chi lo usa. Il grido risucchia 2d4 Punti Ferita dal lanciatore, il quale deve effettuare con successo un tiro-salvezza contro Incantesimi per non perdere i sensi per un turno. Le creature con 5 Dadi-vita o meno colte nell'area di Grido Potente muoiono subito. Tutte le altre creature all'interno dell'area d'effetto devono effettuare con successo un tiro-salvezza contro Incantesimi. Chi non lo supera viene stordito per 2 round, assordato per 4 round e subisce 4d12 punti di danno da magia. Chi effettua con successo il tiro-salvezza viene stordito per 1 round, assordato per 2 round e subisce 2d12 punti di danno da magia.~ -@93=~Grido Potente~ -@92=~~ -@91=~Charmato~ -@90=~Charmato all'Estremo~ -@89=~Dominato~ -@88=~Fallimento Morale: Panico~ -@87=~Intossicato~ -@86=~In Preda alla Confusione~ -@85=~Pensiero Fisso~ -@84=~Bloccato~ -@83=~Paralizzato~ -@82=~Bloccato~ -@81=~Mente Libera~ -@80=~Mente Libera -(Scongiurazione) -Livello: 8 -Raggio d'azione: 0 -Durata: 24 ore -Tempo di lancio: 1 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -In difesa del proprio autocontrollo e della propria riservatezza, Mente Libera protegge la mente di una creatura da quasi tutti gli effetti mentali - Charme, Labirinto, Regressione Mentale, Confusione, Paura, Intossicazione, Berserk, Blocco e Pietrificazione.~ -@79=~Mente Libera~ -@78=~Soffocare~ -@77=~Soffocare -(Alterazione) -Livello: 7 -Raggio d'azione: Visuale del lanciatore -Durata: 4 round -Tempo di lancio: 7 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Speciale -Questo incantesimo toglie il respiro a tutte le creature all'interno dell'area d'effetto. Le creature che non respirano non sono influenzate. Le creature soffocate subiscono 4d8 punti di danno da magia per round e soffrono le seguenti penalità: -4 alla Classe Armatura, -4 ai tiri per colpire, -6 alla Destrezza, un attacco in meno per round e Fattore-movimento dimezzato. Un tiro-salvezza effettuato con successo nega tutti gli effetti tranne 2d8 punti di danno per 1 round. Gli effetti cominciamo a svanire quando la creatura si sposta al di fuori dell'area d'effetto, sebbene possa essere necessario 1 round perché un personaggio recuperi il fiato.~ -@76=~Soffocare~ -@75=~Tempesta Acida~ -@74=~Tempesta Acida -(Apparizione) -Livello: 7 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round per livello -Tempo di lancio: 7 -Area d'effetto: Raggio di 3,5 metri -Tiro-salvezza: 1/2 -Questo incantesimo sprigiona una colata d'acido sull'area d'effetto, infliggendo 1d4 punti di danno da acido per i primi 3 round, 1d6 punti di danno da acido per i 3 successivi round e 1d8 punti di danno da acido per ogni round ulteriore. Uscire dall'area d'effetto non arresta gli effetti dell'acido: esso aderisce alla pelle e ogni creatura nell'area d'effetto al momento del lancio di Tempesta Acida continua a subirne i danni fino al termine dell'incantesimo. Le creature effettuano un tiro-salvezza contro Incantesimi per ogni round dopo che sono state colpite dalla nube; se viene effettuato con successo, subiscono metà danno (solo per quel round).~ -@73=~Tempesta Acida~ -@72=~Tempra del Troll~ -@71=~Tempra del Troll -(Necromanzia) -Livello: 6 -Raggio d'azione: 0 -Durata: 2 turni -Tempo di lancio: 6 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo impregna il lanciatore con la robustezza di un troll, permettendogli di rigenerare 5 Punti Ferita per round fino al massimo dei suoi Punti Ferita.~ -@70=~Tempra del Troll~ -@69=~Scheletro~ -@68=~Scheletro~ -@67=~Divora Anima~ -@66=~Divora Anima -(Necromanzia) -Livello: 6 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 5 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Nessuno -Questo incantesimo infligge 3d8 punti di danno da magia a tutte le creature viventi in un raggio di 3 metri. Qualsiasi creatura che muoia a causa di questi danni viene distrutta e il suo corpo viene trasformato in uno scheletro con 3 Dadi-vita agli ordini del lanciatore. Inoltre, per ogni creatura che muore in questa maniera, il personaggio riceve un bonus pari a +1 a Forza, Destrezza e Costituzione per 1 turno. Divora Anima non ha effetto su non morti, costrutti e creature elementali.~ -@65=~Divora Anima~ -@64=~Dardo d'Osso~ -@63=~Dardo d'Osso~ -@62=~Dardi d'Osso~ -@61=~Dardi d'Osso -(Necromanzia) -Livello: 6 -Raggio d'azione: 0 -Durata: 5 round -Tempo di lancio: 5 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo crea nove dardi che possono essere utilizzati dal lanciatore e che non possono essere disarmati finché l'incantesimo è attivo. I dardi sono armi +3, infliggono 1d4+3 punti di danno da proiettile e qualsiasi creatura colpita da un dardo deve effettuare con successo un tiro-salvezza contro Morte o subire altri 2d6 punti di danno da magia e vedere la propria Forza ridotta di 3 punti per 5 round. La riduzione del punteggio di Forza non è cumulativa; fallire un altro tiro-salvezza mentre la riduzione è in atto non ne prolungherà la durata. La competenza del lanciatore nell'uso dei dardi (o la sua mancanza) non ha effetti sulla possibilità dei dardi di colpire un bersaglio.~ -@60=~Dardi d'Osso~ -@59=~Sfera Congelante di Otiluke~ -@58=~Sfera Congelante di Otiluke -(Alterazione, Apparizione) -Livello: 6 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 6 -Area d'effetto: 1 creatura -Tiro-salvezza: Neg. -Questo incantesimo scaglia una sfera fredda contro una creatura che infligge 1d4+2 punti di danno da freddo per livello del lanciatore. Se il bersaglio effettua con successo un tiro-salvezza contro Incantesimi, schiva la sfera ed evita del tutto il danno.~ -@57=~Sfera Congelante di Otiluke~ -@56=~Sudario Fiammeggiante~ -@55=~Sudario Fiammeggiante -(Invocazione) -Livello: 5 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round ogni 2 livelli (speciale) -Tempo di lancio: 5 -Area d'effetto: Raggio di 1,5 metri -Tiro-salvezza: Neg. -Questo incantesimo fa sì che una creatura sia avviluppata dalle fiamme a meno che non effettui con successo un tiro-salvezza contro Incantesimi. La creatura brucia, subendo 2d6 punti di danno da fuoco ad ogni round, e lingue di fiamme si sprigionano dalla essa, facendo sì che qualsiasi creatura in un raggio di 1,5 metri subisca 1d4 punti di danno da fuoco derivante dalle fiamme. Chiunque venga colpito dalle fiamme della vittima deve a sua volta effettuare con successo un tiro-salvezza contro Incantesimi per evitare di acquisire lui stesso il sudario. Questo incantesimo è particolarmente utile per disperdere gruppi di troll o di salamandre del gelo.~ -@54=~Sudario Fiammeggiante~ -@53=~~ -@52=~Sfera al Vetriolo~ -@51=~Sfera al Vetriolo -(Evocazione) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: Speciale -Tempo di lancio: 4 -Area d'effetto: Raggio di 1,5 metri -Tiro-salvezza: Speciale -Questo incantesimo evoca una sfera di un brillante acido smeraldino che il lanciatore può indirizzare per colpire qualsiasi bersaglio entro il raggio di azione. Quando raggiunge il suo bersaglio, la sfera esplode e ricopre la vittima di un potente acido. La vittima subisce 1d4 punti di danno da acido per livello del lanciatore, fino ad un massimo di 12d4 punti di danno. Dopo il danno iniziale, la vittima deve effettuare un tiro-salvezza contro Incantesimi per evitare ulteriori danni. Se non viene effettuato con successo, la vittima continua a subire danni da acido nei round seguenti, subendo due dadi in meno di danno ad ogni round. Per esempio, con questo incantesimo un personaggio di 8° livello infligge 8d4 punti di danno il primo round, 6d4 il secondo round, 4d4 il terzo round, 2d4 il quarto round; l'incantesimo termina al quinto round. Ogni round la vittima ha diritto ad un tiro-salvezza contro Incantesimi per evitare ulteriori punti di danno. -La sfera al vetriolo spruzza inoltre acido in un raggio di 3 metri intorno al bersaglio primario. Qualsiasi creatura entro il raggio dello spruzzo deve effettuare con successo un tiro-salvezza contro Pietrificazione/Metamorfosi o subire 1d4 punti di danno ogni 5 livelli dell'incantatore. Lo spruzzo non causa danno continuativo.~ -@50=~Sfera al Vetriolo~ -@49=~Assordare~ -@48=~Grido~ -@47=~Grido -(Invocazione) -Livello: 4 -Raggio d'azione: 0 -Durata: Istantanea -Tempo di lancio: 1 -Area d'effetto: Cono di 5 metri con arco di 15° -Tiro-salvezza: Speciale -Grido conferisce al lanciatore enormi poteri vocali, permettendogli di emettere dalla sua bocca un ruggito spaccatimpani in un'area d'effetto a cono. Qualsiasi creatura all'interno di quest'area viene assordata per 2d6 round e subisce 4d6 punti di danno da magia. Un tiro-salvezza contro Incantesimi effettuato con successo nega la sordità e dimezza i danni.~ -@46=~Grido~ -@45=~Proiettili di Forza di Mordenkainen~ -@44=~Proiettili di Forza di Mordenkainen -(Invocazione) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 4 -Area d'effetto: Raggio di mezzo metro -Tiro-salvezza: Speciale -Questo incantesimo crea una lucente sfera di energia magica che parte dalle mani del lanciatore per colpire un bersaglio, proprio come l'incantesimo Dardo Incantato. Il personaggio crea un proiettile al 7° livello e un proiettile addizionale ogni tre livelli dopo il 7° - in pratica, due proiettili al 10° livello, tre al 13°, quattro al 16° e così via, fino ad un massimo di sette proiettili al 25° livello. Ogni proiettile infligge 2d4 punti di danno ad un bersaglio e poi scoppia in un'esplosione concussiva dal raggio di mezzo metro, infliggendo 1 punto di danno per livello del lanciatore - per esempio, un personaggio di 12° livello potrebbe evocare 2 proiettili di forza, ognuno dei quali infliggerebbe 2d4+12 punti di danno. Le creature che subiscono danni possono tentare un tiro-salvezza contro Incantesimi per evitare il danno da concussione, ma l'impatto iniziale del proiettile non permette alcun tiro-salvezza. L'incantesimo di 1° livello da stregone "Scudo" assorbirà i proiettili di forza, compresi i danni da concussione.~ -@43=~Proiettili di Forza di Mordenkainen~ -@42=~Disperazione~ -@41=~Stordito~ -@40=~Emozione: Disperazione~ -@39=~Emozione: Disperazione -(Incantamento/Charme) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 1 turno -Tempo di lancio: 4 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Neg. -Questo incantesimo crea un'emozione di disperazione all'interno dell'area d'effetto. Tutti i nemici che falliscono un tiro-salvezza contro Incantesimi staranno fermi senza far nulla per 1 turno. Questo incantesimo annulla gli effetti di Emozione: Speranza se lanciato nell'area in cui esso ha effetto.~ -@38=~Emozione: Disperazione~ -@37=~Panico~ -@36=~Emozione: Paura~ -@35=~Emozione: Paura -(Incantamento/Charme) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 5 round -Tempo di lancio: 4 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Neg. -Questo incantesimo crea un'emozione di paura all'interno dell'area d'effetto. Tutte i nemici che non effettuano con successo il proprio tiro-salvezza contro Incantesimi fuggiranno per 5 round. Questo incantesimo annulla gli effetti di Emozione: Disperazione se lanciato nell'area in cui esso ha effetto.~ -@34=~Emozione: Paura~ -@33=~Emozione: Speranza~ -@32=~Emozione: Speranza -(Incantamento/Charme) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 1 ora -Tempo di lancio: 4 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Nessuno -Questo incantesimo crea un'emozione di speranza all'interno dell'area d'effetto. Tutte le creature influenzate dall'incantesimo ottengono un aumento del morale e un bonus pari a +2 ai loro tiri per colpire, ai danni e ai tiri-salvezza. Questo incantesimo annulla tutti gli effetti di disperazione se lanciato nell'area in cui essi hanno effetto.~ -@31=~Emozione: Speranza~ -@30=~Emozione: Coraggio~ -@29=~Emozione: Coraggio -(Incantamento/Charme) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 1 ora -Tempo di lancio: 4 -Area d'effetto: Raggio di 2 metri -Tiro-salvezza: Nessuno -Questo incantesimo crea un'emozione di coraggio all'interno dell'area d'effetto. Tutte le creature influenzate dall'incantesimo ottengono un bonus pari a +1 ai tiri per colpire, +3 ai danni e 5 Punti Ferita temporanei (che possono essere aggiunti ai Punti Ferita Massimi). Questo incantesimo annulla tutti gli effetti di Paura presenti nell'area d'effetto al momento del lancio.~ -@28=~Emozione: Coraggio~ -@27=~Berserk~ -@26=~Sangue Bruciante di Beltyn~ -@25=~Sangue Bruciante di Beltyn -(Necromanzia) -Livello: 4 -Raggio d'azione: Visuale del lanciatore -Durata: 1 round ogni 2 livelli -Tempo di lancio: 4 -Area d'effetto: 1 creatura -Tiro-salvezza: Neg. -Questo incantesimo trasforma il sangue di un bersaglio in fiamma, causando 3d4 punti di danno per round e mandando in stato berserk il nemico per il dolore. L'avversario ottiene un tiro-salvezza contro Incantesimi ad ogni round; se lo effettua con successo, i danni e lo stato berserk vengono negati. Questo incantesimo non funziona contro i non morti e le creature extraplanari che non hanno sangue (come gli elementali). Se la vittima è resistente al fuoco, tale resistenza abbasserà o annullerà il danno causato da questo incantesimo.~ -@24=~Sangue Bruciante di Beltyn~ -@23=~Lancia di Distruzione~ -@22=~Lancia di Distruzione -(Invocazione) -Livello: 3 -Raggio d'azione: 30 metri -Durata: Istantanea -Tempo di lancio: 3 -Area di effetto: Speciale -Tiro-salvezza: 1/2 -Questo incantesimo scaglia una lancia di forza che si estende dal lanciatore fino ad un punto a 30 metri di distanza. Qualsiasi creatura lungo il percorso della lancia subisce 5d4 punti di danno contundente più 2 punti di danno per livello del lanciatore (sino a un massimo di 30). Le vittime possono dimezzare il danno effettuando con successo un tiro-salvezza contro Incantesimi.~ -@21=~Lancia di Distruzione~ -@20=~Stordito~ -@19=~Lancia di Ghiaccio~ -@18=~Lancia di Ghiaccio -(Apparizione) -Livello: 3 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 3 -Area d'effetto: 1 creatura -Tiro-salvezza: Speciale -Questo incantesimo scaglia una lancia magica di ghiaccio contro un bersaglio scelto dal personaggio. Colpisce automaticamente infliggendo 5d6 punti di danno da freddo e costringendo la vittima ad effettuare un tiro-salvezza contro Incantesimi con successo per evitare di essere stordita per 3 round.~ -@17=~Lancia di Ghiaccio~ -@16=~Modificatore alla Destrezza~ -@15=~Grazia del Gatto~ -@14=~Grazia del Gatto -(Alterazione) -Livello: 2 -Raggio d'azione: Tocco -Durata: 1 ora per livello -Tempo di lancio: 2 -Area d'effetto: 1 creatura -Tiro-salvezza: Nessuno -Questo incantesimo aumenta magicamente la Destrezza del bersaglio. L'ammontare dipende dalla classe del bersaglio: i furfanti ricevono 1d8 punti, i combattenti e i maghi 1d6 punti e i sacerdoti 1d4 punti. Se il personaggio ha più di una classe, viene utilizzata quella con il dado-vita maggiore. Grazia del Gatto non può aumentare la Destrezza del bersaglio oltre il 20.~ -@13=~Grazia del Gatto~ -@12=~Bastone d'Energia~ -@11=~Bastone d'Energia~ -@10=~Bastone d'Energia~ -@9=~Bastone d'Energia -(Apparizione) -Livello: 2 -Raggio d'azione: 0 -Durata: 3 round + 1 round per livello -Tempo di lancio: 2 -Area d'effetto: Il lanciatore -Tiro-salvezza: Nessuno -Questo incantesimo crea un bastone di energia magica nelle mani del personaggio. Viene considerato un'arma magica che infligge 1d6 punti di danno per colpo e che può ferire le creature che richiedono armi +1 per essere colpite. Resta comunque un bastone, pertanto se il lanciatore non è competente nell'uso di queste armi, allora il Bastone d'Energia viene usato con una penalità. Il bastone ha anche il potere di risucchiare 1d2 Punti Ferita al bersaglio ad ogni colpo messo a segno. Questi Punti Ferita vengono aggiunti a quelli del personaggio, ma possono solo curare il danno che ha subito; non aumenteranno i suoi Punti Ferita oltre il valore massimo.~ -@8=~Bastone d'Energia~ -@7=~Sciame di Palle di Neve di Snilloc -(Apparizione) -Livello: 2 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 2 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: 1/2 -Questo incantesimo fa sì che uno spruzzo di palle di neve esploda in un punto entro il raggio d'azione. Le palle di neve colpiranno ogni cosa all'interno dell'area d'effetto, provocando 1d3 punti di danno da freddo per livello del personaggio, fino a un massimo di 8d3 punti di danno all'8° livello. Contro le creature del fuoco infligge 1d6 punti di danno da freddo per livello, sino ad un massimo di 8d6 punti di danno all'8° livello.~ -@6=~~ -@5=~Sciame di Palle di Neve di Snilloc~ -@4=~Sciame di Palle di Neve di Snilloc -(Apparizione) -Livello: 2 -Raggio d'azione: Visuale del lanciatore -Durata: Istantanea -Tempo di lancio: 2 -Area d'effetto: Raggio di 4,5 metri -Tiro-salvezza: 1/2 -Questo incantesimo fa sì che uno spruzzo di palle di neve esploda in un punto entro il raggio d'azione. Le palle di neve colpiranno ogni cosa all'interno dell'area d'effetto, provocando 1d3 punti di danno da freddo per livello del personaggio, fino a un massimo di 8d3 punti di danno all'8° livello. Contro le creature del fuoco infligge 1d6 punti di danno da freddo per livello, sino ad un massimo di 8d6 punti di danno all'8° livello.~ -@3=~~ -@2=~Sciame di Palle di Neve di Snilloc~ -@1=~Pergamena~ diff --git a/iwdification/dw/copyover/tra/ko_KR/iwdspells.tra b/iwdification/dw/copyover/tra/ko_KR/iwdspells.tra deleted file mode 100644 index b748a8e..0000000 --- a/iwdification/dw/copyover/tra/ko_KR/iwdspells.tra +++ /dev/null @@ -1,1226 +0,0 @@ -@375=~ì‹œìŠ¤ì˜ ì „ìŸ ì†¡ê°€ - ë°©ì–´ë„ ë³´ë„ˆìŠ¤ì™€ ìž¬ìƒ íš¨ê³¼~ -@374=~"ì‹œìŠ¤ì˜ ì „ìŸ ì†¡ê°€" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ë™ë£Œë“¤ì€ ë°©ì–´ë„ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받고, 베기, 찌르기, 부수기, 발사체 í”¼í•´ì— ëŒ€í•´ +10%ì˜ ì €í•­ë ¥ì„ ê°–ëŠ”ë‹¤. 그리고 ë¼ìš´ë“œë‹¹ 2ì ì˜ ìƒëª…ì ì„ 재ìƒí•œë‹¤.~ -@373=~ì‹œìŠ¤ì˜ ì „ìŸ ì†¡ê°€~ -@372=~노예ìƒíƒœ~ -@371=~사ì´ë Œì˜ 사모곡 - ì ë“¤ì„ 현혹시킴~ -@370=~"사ì´ë Œì˜ 사모곡" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ì ë“¤ì€ ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 실패시 1ë¼ìš´ë“œê°€ 지나거나 피해를 입기 전까지 매혹ëœë‹¤.~ -@369=~사ì´ë Œì˜ 사모곡~ -@368=~ì¹´ìš°ë”” ê°€ë¬¸ì˜ ë…¸ëž˜ - 소리 ê³µê²©ì— ëŒ€í•œ 내성 부여~ -@367=~"ì¹´ìš°ë”” ê°€ë¬¸ì˜ ë…¸ëž˜" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ë™ë£Œë“¤ì€ 50% 확률로 침묵, 외침, ìƒê¸‰ 외침, 명령, ìƒê¸‰ 명령, ë˜ëŠ” 다른 모든 소리 기반 ê³µê²©ì„ ë¬´ì‹œí•œë‹¤.~ -@366=~ì¹´ìš°ë”” ê°€ë¬¸ì˜ ë…¸ëž˜~ -@365=~티모ë¼ì˜ 멜로디 - 행운과 기술 보너스를 줌.~ -@364=~"티모ë¼ì˜ 멜로디" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ë™ë£Œë“¤ì€ í–‰ìš´ì— +1, 내성 êµ´ë¦¼ì— +3, 전승 지ì‹ì— +10, 모든 씨프 ê¸°ìˆ ì— +10ì˜ ë³´ë„ˆìŠ¤ë¥¼ 얻게 ëœë‹¤.~ -@363=~티모ë¼ì˜ 멜로디~ -@362=~커란 ìŠ¤íŠ¸ë¡±í•˜íŠ¸ì˜ ì´ì•¼ê¸° - ê³µí¬ì— ë©´ì—­~ -@361=~"커란 ìŠ¤íŠ¸ë¡±í•˜íŠ¸ì˜ ì´ì•¼ê¸°" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ë™ë£Œë“¤ì€ 노래가 지ì†ë˜ëŠ” ë™ì•ˆ ê³µí¬ íš¨ê³¼ì— ëŒ€í•œ ë©´ì—­ë ¥ì„ ì–»ëŠ”ë‹¤. 그리고 걸려있는 ê³µí¬ íš¨ê³¼ëŠ” 제거ëœë‹¤.~ -@360=~커란 ìŠ¤í† ë¡±í•˜íŠ¸ì˜ ì´ì•¼ê¸°~ -@359=~세 ì˜ì›…ì˜ ë°œë¼ë“œ - 전투 보너스~ -@358=~"세 ì˜ì›…ì˜ ë°œë¼ë“œ" -30 피트 반경 ì•ˆì— ìžˆëŠ” 모든 ë™ë£Œë“¤ì€ 공격, 피해, 내성 êµ´ë¦¼ì— +1ì˜ ë³´ë„ˆìŠ¤ë¥¼ 얻게 ëœë‹¤.~ -@357=~세 ì˜ì›…ì˜ ë°œë¼ë“œ~ -@356=~성가 -(컨저레ì´ì…˜/서모ë‹) -레벨: 2 -분야: 전투 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1í„´ -시전 시간: 9 -효과 범위: 60피트 반경 -내성 굴림: ì—†ìŒ -성가 주문으로 성ì§ìžëŠ” ìžì‹ ê³¼ ì¼í–‰ì—게는 특별한 ì€í˜œë¥¼, ì ì—게는 해를 입힌다. 성가 ì£¼ë¬¸ì´ ì™„ë£Œë  ë•Œ, 효과 범위 ì•ˆì— ìžˆëŠ” 성ì§ìžì˜ 모든 ë™ë£ŒëŠ” 공격 굴림, 최소 피해 굴림, 그리고 내성 êµ´ë¦¼ì— +1 보너스를 받으며 ë¬´ê¸°ì˜ ê¸°ë³¸ 피해를 제외한 모든 íš¨ê³¼ì˜ í”¼í•´ 주사위 êµ´ë¦¼ë„ 1 ê°ì†Œí•œë‹¤. 예를 들면, 6d6ì ì˜ 화염구는 6d5ì ì˜ 피해를 줄 것ì´ë©° 1d8+2ì ì˜ 베기 í”¼í•´ì— 1d3ì ì˜ 화염 피해를 입히는 화염 롱 소드는 1d8+2ì ì˜ 베기 í”¼í•´ì— 1d2ì ì˜ 화염 피해를 줄 것ì´ë‹¤. 성ì§ìžì˜ ì ì€ ì •ë°˜ëŒ€ì˜ íš¨ê³¼ë¥¼ 겪는다. -성가를 여러 번 ì‚¬ìš©í•´ë„ íš¨ê³¼ëŠ” 중첩ë˜ì§€ 않는다. ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ ìƒë‹¹í•œ ì§‘ì¤‘ì´ í•„ìš”í•˜ë¯€ë¡œ, 성ì§ìžëŠ” ì„±ê°€ì˜ ì§€ì† ì‹œê°„ ë™ì•ˆ ì–´ë–¤ ì£¼ë¬¸ë„ ì‹œì „í•  수 없으며 ì´ë™ ì†ë„ë„ ë°˜ìœ¼ë¡œ ëŠë ¤ì§„다.~ -@355=~성가~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~천공 딱정벌레~ -@352=~천공 딱정벌레~ -@351=~í­ê²© 딱정벌레~ -@350=~í­ê²© 딱정벌레~ -@349=~거대 곤충 -(얼터레ì´ì…˜) -레벨: 4 -분야: ë™ë¬¼ -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 8 시간 -시전 시간: 7 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ 2-3 ë§ˆë¦¬ì˜ ì²œê³µ 딱정벌레 ë˜ëŠ” í­ê²© 딱정벌레를 ì‹œì „ìž ì˜†ì— ì†Œí™˜í•œë‹¤. ë”±ì •ë²Œë ˆë“¤ì€ ì£¼ë¬¸ íš¨ë ¥ì´ ë나거나 ì£½ì„ ë•Œê¹Œì§€ 시전ìžì—게 복종할 것ì´ë‹¤.~ -@348=~거대곤충~ -@347=~ì¹˜ëª…ìƒ ìž…ížˆê¸° -(네í¬ë¡œë§¨ì‹œ) -레벨: 5 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 8 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ ì¹˜ëª…ìƒ ì¹˜ë£Œì˜ ì—­ì£¼ë¬¸ìœ¼ë¡œ, 접촉한 ìƒëª…체를 치유하는 대신 역으로 피해를 입힌다. 성ì§ìžê°€ ì ì—게 접촉하는 ë° ì„±ê³µí•˜ë©´, ê·¸ 대ìƒì€ 27ì ì˜ 피해를 입게 ëœë‹¤ (ì£¼ë¬¸ì— ëŒ€í•œ 내성굴림 성공시 절반). ì–¸ë°ë“œ, 주조물, 다른 ì°¨ì›ì—ì„œ 온 존재ì—게는 효과가 없다. ì„  ì„±í–¥ì˜ ìºë¦­í„°ëŠ” 시전하지 못한다~ -@346=~ì¹˜ëª…ìƒ ìž…ížˆê¸°~ -@345=~ì¤‘ìƒ ìž…ížˆê¸° -(네í¬ë¡œë§¨ì‹œ) -레벨: 4 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ ì¤‘ìƒ ì¹˜ë£Œì˜ ì—­ì£¼ë¬¸ìœ¼ë¡œ, 접촉한 ìƒëª…체를 치유하는 대신 역으로 피해를 입힌다. 성ì§ìžê°€ ì ì—게 접촉하는 ë° ì„±ê³µí•˜ë©´, ê·¸ 대ìƒì€ 17ì ì˜ 피해를 입게 ëœë‹¤ (ì£¼ë¬¸ì— ëŒ€í•œ 내성굴림 성공시 절반). ì–¸ë°ë“œ, 주조물, 다른 ì°¨ì›ì—ì„œ 온 존재ì—게는 효과가 없다. ì„  ì„±í–¥ì˜ ìºë¦­í„°ëŠ” 시전하지 못한다~ -@344=~ì¤‘ìƒ ìž…ížˆê¸°~ -@343=~2 레벨 í¡ìˆ˜ë¨~ -@342=~ì—너지 í¡ìˆ˜ -(네í¬ë¡œë§¨ì‹œ) -레벨: 7 -분야: 네í¬ë¡œë§¨í‹± -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: ì˜êµ¬ì  -시전 시간: 3 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ë©´, 시전ìžì˜ ì°¨ì›ê³¼ ìŒì˜ ì—너지 ì°¨ì›ì„ 연결하는 통로가 열린다. 주문 시전ìžëŠ” ë‘ ì°¨ì›ì˜ 전달ìžê°€ ë˜ì–´, í¬ìƒìžë¡œë¶€í„° ìƒëª…ë ¥ì„ ë¹¨ì•„ë“¤ì—¬, ìŒì˜ ì—너지 ì°¨ì›ìœ¼ë¡œ 전송한다. ê·¸ ê²°ê³¼ í¬ìƒìžëŠ” ë ˆë²¨ì´ 2 단계 하ë½í•˜ê²Œ ëœë‹¤. ì£¼ë¬¸ì˜ ëŒ€ìƒì€ 레벨, HD, ìƒëª…ì , 그리고 기타 ëŠ¥ë ¥ë“¤ì„ ì˜êµ¬ížˆ 잃게 ëœë‹¤. 잃어버린 ë ˆë²¨ì€ ì„±ì§ìžì˜ 회복 주문으로만 회복할 수 있다. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œ, 주조물, 다른 ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 효과가 없다. ì˜¤ì§ ì•… ì„±í–¥ì˜ ìºë¦­í„°ë§Œ 시전할 수 있다.~ -@341=~ì—너지 í¡ìˆ˜~ -@340=~휘ê°ê¹€~ -@339=~ì„ë¸”ë§ ë§ˆìš´ë“œ~ -@338=~ì„ë¸”ë§ ë§ˆìš´ë“œ~ -@337=~추ì ìž -(컨저레ì´ì…˜) -레벨: 7 -분야: ì‹ë¬¼ -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 8 시간 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ë‘ ë§ˆë¦¬ì˜ 11 히트 다ì´ìŠ¤ì˜ ì„ë¸”ë§ ë§ˆìš´ë“œë¥¼ 만들어 낸다. ì´ ìƒëª…ì²´ë“¤ì€ ì „íˆ¬ì—서나 ì§€ì‹œë°›ì€ ì–´ë–¤ 임무ì—서든 ëŠ¥ë ¥ì´ ë‹¿ëŠ” 대로 ê¸°êº¼ì´ ì‹œì „ìžë¥¼ ë„와줄 것ì´ë‹¤.~ -@336=~추ì ìž~ -@335=~ì—˜ë‹¤ìŠ¤ì˜ ì•ˆê°œ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 7 -분야: ì •ë ¹ -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 9 -효과 범위: 14 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 전체를 ì€ì²­ìƒ‰ì˜ 안개로 ë®ëŠ”다. ì´ ì•ˆê°œ ì†ì˜ 모든 ìƒëª…체는 질병ì´ë‚˜ ë…ì´ ì¹˜ë£Œë˜ë©°, 25ì ì˜ ìƒëª…ì ì´ 회복ëœë‹¤.~ -@334=~ì—˜ë‹¤ìŠ¤ì˜ ì•ˆê°œ~ -@333=~ìƒê¸‰ ë¼ìƒŒë”ì˜ ë°©íŒ¨ -(컨저레ì´ì…˜) -레벨: 7 -분야: 수호 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 3 ë¼ìš´ë“œ -시전 시간: 9 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€, ì§€ì† ì‹œê°„ ë™ì•ˆ í•œ ìƒëª…ì²´ì—게 100%ì˜ ë§ˆë²• 저항과, 모든 í”¼í•´ì— ëŒ€í•œ ë©´ì—­ ëŠ¥ë ¥ì„ ë¶€ì—¬í•´ 준다. ì•…í•œ ìºë¦­í„°ëŠ” ìƒê¸‰ ë¼ìƒŒë”ì˜ ë°©íŒ¨ë¡œ ë³´í˜¸ë°›ì„ ìˆ˜ 없으며, ì´ ì£¼ë¬¸ì€ ì˜¤ì§ ì„  ì„±í–¥ì˜ ìºë¦­í„°ë§Œ 사용할 수 있다.~ -@332=~ìƒê¸‰ ë¼ìƒŒë”ì˜ ë°©íŒ¨~ -@331=~파괴 -(네í¬ë¡œë§¨ì‹œ) -레벨: 7 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 9 -효과 범위: ì‹œì „ìž -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì¦‰ì‹œ ìƒëŒ€ë¥¼ 파괴하여, ì¡°ê°ì¡°ê°ìœ¼ë¡œ 분쇄해 버린다. ì´ ì£¼ë¬¸ì˜ í¬ìƒìžëŠ” -4 페ë„티를 받고 죽ìŒì— 대한 내성 êµ´ë¦¼ì„ ì‹œë„í•  수 있으며, 성공한다면 파괴ë˜ëŠ” 대신 8d6ì ì˜ 마법 피해를 입게 ëœë‹¤. 파괴 ì£¼ë¬¸ì€ ì˜¤ì§ ì•… 성향 ìºë¦­í„°ë§Œ 사용할 수 있다. 파괴 ì£¼ë¬¸ì— í¬ìƒëœ ìºë¦­í„°ëŠ” ì£½ì€ ìž ì†Œìƒ ì£¼ë¬¸ì´ë‚˜ 부활 주문으로 ë˜ì‚´ì•„ë‚  수 없다는 ì ì— 유ì˜í•´ì•¼ 한다.~ -@330=~파괴~ -@329=~주문 효과없ìŒ~ -@328=~침범ë˜ì§€ 않는 거룩한 ì •ì‹  -(앱저레ì´ì…˜) -레벨: 7 -분야: ë°©ì–´ -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì™¸ë¶€ì˜ ì–´ë– í•œ ì˜í–¥ì— ëŒ€í•´ì„œë„ ì €í•­í•  수 있ë„ë¡ ì‹œì „ìžì˜ 마ìŒì„ 튼튼하게 만든다. 시전ìžì— 대한 현혹, 명령, 혼란, 지배, ê³µí¬, 정신박약, ì†ë°•, 수면, 사ì´ì˜¤ë‹‰ ë“±ì˜ ê³µê²©ì€ ì´ ì£¼ë¬¸ì´ íš¨ë ¥ì„ ë°œíœ˜í•˜ê³  있는 í•œ 실패할 것ì´ë‹¤.~ -@327=~침범ë˜ì§€ 않는 거룩한 ì •ì‹ ~ -@326=~ìƒì§•, ì ˆë§ -(컨저레ì´ì…˜/서모ë‹) -레벨: 7 -분야: 수호 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 2í„´ -시전 시간: 3 -효과 범위: 30피트 반경 -내성 굴림: 무시 -ìƒì§•, ì ˆë§ ì£¼ë¬¸ì€ ì„±ì§ìžê°€ 땅바닥ì´ë‚˜ 여타 다른 표면 ìœ„ì— ìƒì§•ì„ 새길 수 있ë„ë¡ í•˜ëŠ” 강력한 마법ì´ë‹¤. ìƒì§•ì€ 누군가가 너무 ê°€ê¹Œì´ ì ‘ê·¼í•˜ë©´ í­ë°œí•˜ë©°, ì´ë•Œ 효과 범위 ì•ˆì— ìžˆëŠ” 모든 ì ì€ -2 페ë„티를 ë°›ì€ ì±„ë¡œ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•˜ì—¬ 실패하는 경우 낙담하고 í¬ê¸°í•œ ìƒíƒœê°€ ë˜ì–´ ì œìžë¦¬ì— 멈춰 선다. ì´ë ‡ê²Œ ëœ ìžëŠ” 무슨 ê³µê²©ì„ ë°›ë“  ìžì‹ ì„ 방어하려 하지 ì•Šì„ ê²ƒì´ë‹¤. ì´ ì£¼ë¬¸ì€ ì‹œì „ë˜ì—ˆì„ ì‹œ 범위 ì•ˆì— ìžˆëŠ” ê°ì • 조종, í¬ë§ì˜ 효과를 ìƒì‡„한다.~ -@325=~ìƒì§•, ì ˆë§~ -@324=~고통받ìŒ~ -@323=~ìƒì§•, 고통 -(컨저레ì´ì…˜/서모ë‹) -레벨: 7 -분야: 수호 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 11 í„´ -시전 시간: 3 -효과 범위: 30 피트 반경 -내성 굴림: 무시 -ìƒì§•, 고통 ì£¼ë¬¸ì´ ì‹œì „ëœ ì§€ì—­ì˜ 30 피트 반경 ì•ˆì˜ ëª¨ë“  ìƒëª…체는 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•œ ìžëŠ” ê·¹ë„ì˜ ê³ í†µì— ì••ë„ë˜ì–´ 명중 êµ´ë¦¼ì— -4 페ë„í‹°, 민첩 ëŠ¥ë ¥ì¹˜ì— -2 페ë„í‹°, ë°©ì–´ë„ì— -2 페ë„티를 받게 ëœë‹¤.~ -@322=~ìƒì§•, 고통~ -@321=~ì˜ì ì¸ 분노 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 6 -분야: 전투 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 2 -효과 범위: 특수 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ëë‚´ë©´, 성ì§ìžëŠ” ì˜ì ì¸ ì—너지를 ëŒì–´ë“¤ì´ëŠ” ì´ˆì ì´ ë˜ì–´, ê·¸ íž˜ì„ 4ê°œì˜ ë°©í–¥ìœ¼ë¡œ 번개 화살처럼 발사한다. í™”ì‚´ì˜ ê²½ë¡œì— ìžˆëŠ” 모든 ìƒëª…체는 4d10ì ì˜ 마법 피해(ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ 절반)를 입는다. 시전ìžì™€ ê°™ì€ ì„±í–¥(ì„ , 중립, ì•…)ì˜ ìƒëª…ì²´ë“¤ì€ ì´ ì£¼ë¬¸ì— ì˜í–¥ì„ 받지 않는다.~ -@320=~ì˜ì ì¸ 분노~ -@319=~회오리바람 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 6 -분야: ì •ë ¹ 공기 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 특수 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìž ì£¼ë³€ì— ìž‘ì€ íšŒì˜¤ë¦¬ë°”ëžŒì„ ë§Œë“¤ì–´ë‚¸ë‹¤. ì´ íšŒì˜¤ë¦¬ë°”ëžŒì€ ë¶ˆê·œì¹™ì ìœ¼ë¡œ ì£¼ë³€ì„ ë‚ ì•„ë‹¤ë‹ˆë©° ì ê³¼ ì•„êµ°ì„ êµ¬ë³„í•˜ì§€ ì•Šê³  피해를 입힌다. 시전ìžëŠ” ìžì‹ ì˜ ì£¼ë¬¸ì— ë©´ì—­ì´ë©°, ì •ë ¹ì´ë‚˜ 다른 거대한 ìƒëª…체들ì—ê²Œë„ ì˜í–¥ì´ 없다. 만약 ì–´ë–¤ 대ìƒì´ íšŒì˜¤ë¦¬ë°”ëžŒì˜ ì§„ë¡œì— ê±¸ë ¤ 들었다면, 그는 2d8ì ì˜ 부수기 피해와 2d8ì ì˜ 베기 피해를 입게 ë˜ë©°, ë¸Œë ˆì“°ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•˜ë©´ 2ë¼ìš´ë“œ ë™ì•ˆ 기절한다. 2 히트 다ì´ìŠ¤ ì´í•˜ì˜ ìƒëª…체는 ì´ ì£¼ë¬¸ì— ì˜í•´ ìžë™ì ìœ¼ë¡œ 죽게 ëœë‹¤. 최대 ì—¬ëŸ ê°œì˜ ê°œì²´ê¹Œì§€ ì˜í–¥ì„ 받게 ë˜ë©°, ê·¸ 후 íšŒì˜¤ë¦¬ë°”ëžŒì€ ì‚¬ë¼ì§ˆ 것ì´ë‹¤.~ -@318=~회오리바람~ -@317=~엔트로피 방패 -(앱저레ì´ì…˜) -레벨: 6 -분야: ë°©ì–´ -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 9 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì´ ì‹œì „ë˜ë©´, ë°©ì–´ì ì¸ ì—ë„ˆì§€ì˜ ì†Œìš©ëŒì´ê°€ 시전ìžì˜ 주위를 ê°ì‹¸ ë§Žì€ ê³µê²©ì„ ë§‰ê±°ë‚˜ 튕겨낸다. ì´ê²ƒì€ 성ì§ìžì˜ ë°©ì–´ë„ì— +6ì˜ ë³´ë„ˆìŠ¤ë¥¼ 주고, 내성 êµ´ë¦¼ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 주며, 전기, 불, 냉기, ì‚°ì— ëŒ€í•´ 50%ì˜ ì €í•­ë ¥ì„ ì¤€ë‹¤. ë˜í•œ 성ì§ìžëŠ” 화염 강타와 ë°œì‚¬ì²´ì— ê¸°ë°˜í•œ 모든 ê³µê²©ì— ë©´ì—­ì´ ëœë‹¤. ì´ì—는 마법 발사체와 ê°™ì€ ì£¼ë¬¸ì— ì˜í•œ ë°œì‚¬ì²´ë„ í¬í•¨ëœë‹¤.~ -@316=~엔트로피 방패~ -@315=~집단 ìƒì²˜ 입히기 -(네í¬ë¡œë§¨ì‹œ) -레벨: 5 -분야: 치유 -시전 거리: 0 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: 30 피드 반경 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ë©´, 시전ìžë¥¼ 중심으로 30 피트 반경 ë‚´ì— ìžˆëŠ” 모든 ì ë“¤ì€ 레벨 당 1d8 + 1 ì ì˜ 피해를 입는다. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ ì ˆë°˜ì˜ í”¼í•´ë§Œì„ ìž…ëŠ”ë‹¤. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œ, 주조물, í˜¹ì€ ë‹¤ë¥¸ ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 효과가 없다. ì˜¤ì§ ì•… ì„±í–¥ì˜ ìºë¦­í„°ë§Œ 시전할 수 있다.~ -@314=~집단 ìƒì²˜ 입히기~ -@313=~ë™ë¬¼ì˜ 분노 -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸) -레벨: 5 -분야: 전투 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 15 ë¼ìš´ë“œ -시전 시간: 8 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ëŒ€ìƒì—게 ë™ë¬¼ê³¼ ê°™ì€ ë§¹ë ¬í•¨ì„ ë¶€ì—¬í•´ 준다. 대ìƒì€ íž˜ì´ 19ê°€ ë˜ë©°, 20ì ì˜ ìƒëª…ì ì„ 추가로 얻게 ë˜ê³ , ì´ë™ ì†ë„ê°€ 20% 빨ë¼ì§€ë©°, 모든 내성 êµ´ë¦¼ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받는다. ë™ë¬¼ì˜ 분노 ì£¼ë¬¸ì´ íš¨ë ¥ì„ ë°œíœ˜í•˜ëŠ” ë™ì•ˆ 대ìƒì€ ì£¼ë¬¸ì„ ì‚¬ìš©í•  수 없게 ëœë‹¤. 대ìƒì€ ì ì´ ëˆˆì— ë“¤ì–´ì˜¬ 경우 ì†ì— ì¥ê³  있는 무기를 사용하여 ì¦‰ê° ê·¼ì ‘ ê³µê²©ì— ë“¤ì–´ê°€ê²Œ ëœë‹¤. ì´ ì£¼ë¬¸ì´ íš¨ë ¥ì„ ë°œíœ˜í•˜ëŠ” ë™ì•ˆ, 대ìƒì€ 매 ë¼ìš´ë“œë‹¹ 5%ì˜ í™•ë¥ ë¡œ ê´‘í­í™”ë˜ì–´ ì ê³¼ ì•„êµ°ì„ ê°€ë¦¬ì§€ ì•Šê³  마구 공격해 댈 ê°€ëŠ¥ì„±ì´ ìžˆë‹¤.~ -@312=~ë™ë¬¼ì˜ 분노~ -@311=~ì–¸ë°ë“œ 결계 -(네í¬ë¡œë§¨ì‹œ) -레벨: 5 -분야: 구역 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 7 -효과 범위: 20 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì„±ì§ìžì˜ ì–¸ë°ë“œì— 대한 ì˜í–¥ë ¥ì„ 확대해 준다. ì´ ë²”ìœ„ëŠ” 성ì§ìžê°€ ì£¼ë¬¸ì„ ì‹œì „í•  ë•Œì˜ ì£¼ë³€ìœ¼ë¡œ ê³ ì •ë˜ë©°, 성ì§ìžì˜ 움ì§ìž„ì— ë”°ë¼ ì›€ì§ì´ì§€ 않는다. ì´ ë²”ìœ„ ë‚´ì— ë“¤ì–´ì˜¨ 모든 ì–¸ë°ë“œëŠ” 성ì§ìžì— ì˜í•´ ì–¸ë°ë“œ 퇴치를 당한 것과 ê°™ì€ íš¨ê³¼ë¥¼ 받는다. 만약 ì´ ì–¸ë°ë“œ 퇴치가 실패하면 ì–¸ë°ë“œëŠ” ë” ì´ìƒì˜ ì–¸ë°ë“œ 퇴치 ì‹œë„ì— ì˜í–¥ì„ 받지 않으며, ì´ëŠ” ê·¸ ì–¸ë°ë“œê°€ 효과 범위를 벗어났다가 다시 들어올 때까지 지ì†ëœë‹¤.~ -@310=~ì–¸ë°ë“œ 결계~ -@309=~ë¼ìƒŒë”ì˜ ë°©íŒ¨ -(컨저레ì´ì…˜) -레벨: 5 -분야: 수호 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 2 ë¼ìš´ë“œ -시전 시간: 8 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì§€ì† ì‹œê°„ì´ ìœ ì§€ë˜ëŠ” ë™ì•ˆ, ìƒëŒ€ì—게 í”¼í•´ì— ëŒ€í•œ 완벽한 ë©´ì—­ì„±ì„ ë¶€ì—¬í•´ 준다. ì•…í•œ ìºë¦­í„°ëŠ” ë¼ìƒŒë”ì˜ ë°©íŒ¨ì— ì˜í•´ ë³´í˜¸ë°›ì„ ìˆ˜ 없다. ì•… ì„±í–¥ì˜ ìºë¦­í„°ëŠ” ë¼ìƒŒë”ì˜ ë°©íŒ¨ë¥¼ 시전할 수 없다.~ -@308=~ë¼ìƒŒë”ì˜ ë°©íŒ¨~ -@307=~가시 바위 -(얼터레ì´ì…˜, ì¸ì±ˆíŠ¸ë¨¼íŠ¸) -레벨: 5 -분야: ì •ë ¹ 대지 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 12 ë¼ìš´ë“œ -시전 시간: 6 -효과 범위: 18 피트 반경 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì£¼ë³€ì˜ ë°”ìœ„ë¥¼ 뒤틀어서 ë°°ê²½ 지형과 뒤섞ì´ëŠ” 가시 형ìƒìœ¼ë¡œ 바꿔버린다. ì´ ì§€ì—­ì— ë“¤ì–´ê°€ëŠ” 모든 ìƒëª…체는 매 ë¼ìš´ë“œë§ˆë‹¤ 2d4ì ì˜ 찌르기 피해를 ìž…ê³ , ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•˜ë©´ ì´ë™ ì†ë„ê°€ 30% ëŠë ¤ì§„다.~ -@306=~가시 바위~ -@305=~ë…실한 ì‹ ë„ì˜ ê³ ê²°í•œ 분노 -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸/현혹) -레벨: 5 -분야: 전투 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 8 -효과 범위: 35 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì„±ì§ìžì˜ ë™ë£Œë“¤ì—게 신성한 ê´‘ê¸°ì˜ ëª¨ìŠµì„ ë¶€ì—¬í•´ì„œ ê·¸ë“¤ì˜ ì „íˆ¬ ëŠ¥ë ¥ì„ ë†’ì—¬ì¤€ë‹¤. 효과 범위 ë‚´ì— ìžˆëŠ” 성ì§ìžì˜ 모든 ë™ë£ŒëŠ” 명중과 내성 êµ´ë¦¼ì— +1ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받으며, ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ ë™ì•ˆ 8ì ì˜ ìƒëª…ì ì„ 추가로 얻는다(ì´ ìƒëª…ì ì€ 최대치 ì´ìƒìœ¼ë¡œ ì–»ì„ ìˆ˜ 있다). ë˜í•œ, 성ì§ìžì™€ ê°™ì€ ì„±í–¥ì˜ ë™ë£ŒëŠ” 매 ë¼ìš´ë“œë‹¹ í•œ ë²ˆì˜ ì¶”ê°€ ê³µê²©ì„ í•  수 있고(ê°€ì† ì£¼ë¬¸ì„ ì·¨ì†Œí•¨), 명중, 피해, 내성 êµ´ë¦¼ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받으며, 현혹과 ì†ë°• ì£¼ë¬¸ì— ë©´ì—­ì´ ëœë‹¤. ì´ ì£¼ë¬¸ì— ì˜í–¥ì„ ë°›ì€ ëª¨ë“  ë™ë£ŒëŠ” ì£¼ë¬¸ì˜ íš¨ê³¼ê°€ ë나면 피로해진다.~ -@304=~ë…실한 ì‹ ë„ì˜ ê³ ê²°í•œ 분노~ -@303=~ë‹¬ë¹›ì˜ ë²½ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 4 -분야: ë°©ì–´, 태양 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 7 -효과 범위: 20 피트 길ì´, 5 피트 ë„“ì´ì˜ ë²½ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì²­ë°±ìƒ‰ì˜ íž˜ìœ¼ë¡œ ì´ë£¨ì–´ì§„ 빛나는 ìž¥ë§‰ì„ ë§Œë“¤ì–´ 낸다. ì´ ë²½ì€ ì†ìœ¼ë¡œ 만질 수 없으며, 물리ì ì¸ ë¶€ì°©ë¬¼ì´ í•„ìš”í•˜ì§€ë„ ì•Šê³ , 쉽게 통과할 수 있다. ì•…í•œ ìƒëª…체는 ì´ ë²½ì„ í†µê³¼í•  ë•Œ 2d10ì ì˜ 마법 피해를 입게 ë˜ë©°, ì•…í•œ ì–¸ë°ë“œëŠ” 5d10ì ì˜ 피해를 받는다. ì´ ë²½ì„ í†µê³¼í•œ ìƒëª…체는 ì˜¤ì§ í•œ 번만 피해를 입는다.~ -@302=~ë‹¬ë¹›ì˜ ë²½~ -@301=~가시 분사 -(얼터레ì´ì…˜) -레벨: 4 -분야: ì‹ë¬¼ -시전 거리: 30 피트 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 3 -효과 범위: 35 피트 90ë„ ì›ë¿” -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ì´ìš©í•˜ë©´, 시전ìžëŠ” ê·¸ì˜ ì†ì—서부터 뾰족한 침ì´ë‚˜ 가시를 분사할 수 있게 ëœë‹¤. ì´ ì£¼ë¬¸ì€ 35피트 길ì´, 90ë„ ë¶€ì±„ê¼´ 모양으로 í¼ì ¸ 나가며, 2d10ì ì˜ 찌르기 피해를 준다. 만약 범위 ë‚´ì˜ ëª©í‘œê°€ 죽ìŒì— 대한 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´, 피해는 1d10으로 줄어들 것ì´ë‹¤.~ -@300=~가시 분사~ -@299=~모르겠는ë°.~ -@298=~파괴ì ì¸ íŒŒë„ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 4 -분야: ì •ë ¹ 물 -시전 거리: 100 피트 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ì˜ë„í•œ 방향으로 나아가며 ê·¸ ì•žì˜ ì ë“¤ì„ ë®ì¹˜ëŠ” 강력한 5피트 너비 ë¬¼ì˜ íŒŒë„를 만들어낸다. ì´ íŒŒë„는 4d10ì ì˜ 부수기 피해를 주며, 추가ì ìœ¼ë¡œ 25%ì˜ í™•ë¥ ë¡œ 2 ë¼ìš´ë“œê°„ ë§ˆë¹„ë  ìˆ˜ë„ ìžˆê³ , 5%ì˜ í™•ë¥ ë¡œ ì˜ì‹ë¶ˆëª…ì— ë¹ ì§ˆ ìˆ˜ë„ ìžˆë‹¤. 만약 목표가 ë¸Œë ˆì“°ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´, 피해는 절반으로 줄어들고, 마비나 ì˜ì‹ë¶ˆëª… 효과는 받지 않는다.~ -@297=~파괴ì ì¸ 파ë„~ -@296=~스타 메탈 곤봉~ -@295=~스타 메탈 곤봉~ -@294=~스타 메탈 곤봉 -(컨저레ì´ì…˜) -레벨: 4 -분야: 전투 -시전 거리: 0 -ì§€ì† ì‹œê°„: 3 í„´ -시전 시간: 7 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ìš´ì„ì—ì„œ ì œë ¨ëœ ì‡ ë¡œ 만들어진 듯한, 1d6+2ì ì˜ 부수기 피해를 주고 ëª…ì¤‘ì— +2 보너스를 주는 í´ëŸ½ì„ 만들어 낸다. ë˜í•œ +4 무기ì—만 맞는 ìƒëŒ€ì—ê²Œë„ í”¼í•´ë¥¼ 줄 수 있다. ì´ í´ëŸ½ì€ 힘, 숙련ë„, 그리고 ì „ë¬¸í™”ì— ì˜í•œ 보너스나 페ë„티를 받는다. ë˜í•œ ì´ í´ëŸ½ì€ 비ìžì—°ì ì¸ ì (ì–¸ë°ë“œ, ì •ë ¹, 골렘, 외부 ì°¨ì›ì˜ ìƒëª…ì²´ 등)ì—게는 추가ì ìœ¼ë¡œ 2d6ì ì˜ 부수기 피해를 입힌다.~ -@293=~스타 메탈 곤봉~ -@292=~변함없는 지구력 -(네í¬ë¡œë§¨ì‹œ) -레벨: 4 -분야: 네í¬ë¡œë§¨í‹± -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 9 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì ‘ì´‰í•œ ìƒëª…ì²´ì˜ ì›ê¸°ë¥¼ 회복시켜, 모든 피로를 제거해준다.~ -@291=~변함없는 지구력~ -@290=~ì „ì—¼ë³‘ì˜ êµ¬ë¦„ -(얼터레ì´ì…˜) -레벨: 4 -분야: 전투, ì •ë ¹ 공기 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 4 ë¼ìš´ë“œ -시전 시간: 7 -효과 범위: 24 피드 반경 -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ 24피트 ë°˜ê²½ì˜ ë²”ìœ„ ë‚´ì— ìžˆëŠ” 공기를 íšŒìƒ‰ì˜ êµ¬ì—­ì§ˆë‚˜ëŠ” 안개로 바꿔버린다. ì‹œì „ìž ìžì‹ ê³¼ 살아있지 ì•Šì€ ì¡´ìž¬ë“¤ì€ ì´ êµ¬ë¦„ì˜ íš¨ê³¼ì— ì˜í–¥ì„ 받지 않는다. ì´ ì§ˆë³‘ì— ì˜¤ì—¼ëœ ê³µê¸°ì— ì ‘ì´‰í•œ ìƒëŒ€ëŠ”, 1ë¼ìš´ë“œë‹¹ 힘과 ë¯¼ì²©ì´ 3씩 떨어지며, 3ì ì”©ì˜ 피해를 ìž…ê³ , ëˆˆì´ ë©€ê²Œ ëœë‹¤. ì´ íš¨ê³¼ëŠ” 1í„´ê°„ 지ì†ë˜ëŠ” 것ì´ë‹¤, ë¸Œë ˆì“°ì— ëŒ€í•œ 내성 굴림 성공시 무시. ì „ì—¼ë³‘ì˜ êµ¬ë¦„ì€ ì˜¤ì§ ì•…í•œ ìºë¦­í„°ë§Œ 사용할 수 있는 주문ì´ë‹¤.~ -@289=~ì „ì—¼ë³‘ì˜ êµ¬ë¦„~ -@288=~기절~ -@287=~치료ë¨~ -@286=~í”¼ì˜ ë¶„ë…¸ -(얼터레ì´ì…˜) -레벨: 4 -분야: 전투 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 2 í„´ -시전 시간: 7 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì˜¤ì§ í”Œë ˆì´ì–´ ìºë¦­í„°ë‚˜ ë™ë£Œì—게만 사용할 수 있다. ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´, 대ìƒì€ ê´‘í­í™”ë˜ì–´, ìžë™ì ìœ¼ë¡œ 가장 가까운 ìƒëª…체를 ì£½ì¼ ë•Œê¹Œì§€ 공격하게 ëœë‹¤. 그런 다ìŒ, ìžë™ìœ¼ë¡œ ë‹¤ìŒ ëª©í‘œì—게로 ì´ë™í•œë‹¤. í”¼ì˜ ë¶„ë…¸ ì£¼ë¬¸ì˜ ì˜í–¥ì„ 받는 ë™ì•ˆ, 대ìƒì€ 현혹, 수면, ê³µí¬, ì†ë°•, 기절, 혼란, ê°ì • 조종, ìƒì§• ì£¼ë¬¸ì— ë©´ì—­ì„ ê°€ì§€ê²Œ ëœë‹¤. ë˜í•œ, 대ìƒì€ ëª…ì¤‘ì— +2, í”¼í•´ì— +3ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받으며, íž˜ì´ 2 ì¦ê°€í•˜ê³ , 추가로 10ì ì˜ ìƒëª…ì ì„ 얻게 ë˜ë©°, ì´ë™ ì†ë„ê°€ +2 ì¦ê°€í•œë‹¤. 그러나 ì´ ì£¼ë¬¸ì—는 몇 가지 ë¶€ìž‘ìš©ë„ ìžˆë‹¤. ì´ ì£¼ë¬¸ì´ ì§€ì†ë˜ëŠ” ë™ì•ˆ, 대ìƒì—게는 ì–´ë– í•œ 치료 ì£¼ë¬¸ë„ í†µí•˜ì§€ 않는다. ë˜í•œ ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ì´ ë나면 대ìƒì€ 피로한 ìƒíƒœê°€ ë˜ë©°, 2í„´ ë™ì•ˆ íž˜ì´ 3으로 ê°ì†Œí•œë‹¤. í”¼ì˜ ë¶„ë…¸ëŠ” 질서 ì„±í–¥ì˜ ìºë¦­í„°ì—게는 ì˜í–¥ì„ 주지 않으며, 질서 ì„±í–¥ì˜ ìºë¦­í„°ëŠ” 시전할 ìˆ˜ë„ ì—†ë‹¤.~ -@285=~í”¼ì˜ ë¶„ë…¸~ -@284=~낭송 -(앱저레ì´ì…˜, ì¸ë³´ì¼€ì´ì…˜/ì´ë³´ì¼€ì´ì…˜) -레벨: 4 -분야: 전투 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 7 -효과 범위: 60 피트 반경 -내성 굴림: ì—†ìŒ -신성한 구절ì´ë‚˜ 선언서를 낭송함으로ì¨, 성ì§ìžëŠ” ê·¸ì˜ ì‹ ê²©ì˜ ì¶•ë³µì„ ë™ë£Œì™€ ìžì‹ ì—게 내리고, ì ì„ 혼란시키고 약화시킨다. 성ì§ìžì˜ ë™ë£ŒëŠ” 공격과 내성 êµ´ë¦¼ì— +2 보너스를 받고, ì ì€ 공격과 내성 êµ´ë¦¼ì— -2 페ë„티를 받는다. 낭송 ì£¼ë¬¸ì€ ê¸°ë„ ì£¼ë¬¸ì„ ìƒì‡„시키지 않는다. 즉, ë‘ ì£¼ë¬¸ì´ í•¨ê»˜ 걸리면 ê·¸ 효과가 누ì ëœë‹¤.~ -@283=~낭송~ -@282=~정전기 방출~ -@281=~정전하 -(얼터레ì´ì…˜) -레벨: 4 -분야: ê¸°ìƒ -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: 시전ìžì˜ 시야 ë‚´ -내성 굴림: 1/2 -정전하 ì£¼ë¬¸ì€ ì‹¤ë‚´ì—ì„œë„ ì‚¬ìš©í•  수 있다는 ì ì„ 제외하면 낙뢰 주문과 비슷하다. ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ 효과 범위 ë‚´ì˜ ìƒëª…ì²´ 주위로 ì •ì „ê¸°ì˜ ì „í•˜ë¥¼ ìƒì„±í•  수 있게 한다. ì´ ì „í•˜ëŠ” 2d8 ì ì˜ 전기 피해를 입히며, 추가로 시전ìžì˜ 레벨당 1d8 ì ì˜ 피해를 준다 (ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 성공시 절반). 주문 ì§€ì† ì‹œê°„ì´ ëë‚  때까지 매 턴당 í•œ 번씩 전하가 방출ëœë‹¤.~ -@280=~정전하~ -@279=~화염 제조 -(얼터레ì´ì…˜) -레벨: 4 -분야: ì •ë ¹ 화염 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ -시전 시간: 7 -효과 범위: 8 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´, 목표 지ì ì—ì„œ ë¶ˆê½ƒì´ ë¶„ì¶œí•´ì„œ 효과 범위 ë‚´ì˜ ëª¨ë“  ìƒëª…ì²´ì—게 1d4ì ì˜ 화염 í”¼í•´ì— ì‹œì „ìžì˜ 레벨당 1ì ì˜ 피해를 입힌다. ìƒëª…체는 언제 효과 범위 ë‚´ì— ë“¤ì–´ì™”ëŠ”ì§€ì— ê´€ê³„ ì—†ì´ ë¼ìš´ë“œë‹¹ í•œ ë²ˆì˜ í”¼í•´ë¥¼ ìž…ì„ ê²ƒì´ë‹¤.~ -@278=~화염 제조~ -@277=~ì¼ë©”ì´í„°ì˜ í˜¸ì˜ -(네í¬ë¡œë§¨ì‹œ) -레벨: 3 -분야: 네í¬ë¡œë§¨í‹±, ë°©ì–´ -시전 거리: 30 피트 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 6 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ë©´ 시전ìžëŠ” 모든 ë¬¼ë¦¬ì  ìƒí•´ë¥¼ í¬í•¨í•´ 대ìƒê³¼ ìžì‹ ì˜ ìƒëª…ë ¥ì„ êµí™˜í•œë‹¤. ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ 대ìƒë³´ë‹¤ ë§Žì€ ìƒëª…ì ì„ 가지고 있어야만 ìž‘ë™í•œë‹¤. êµí™˜ì€ 시전ìžê°€ ì •ìƒì ìœ¼ë¡œ 피해를 치유할 때까지 ì˜êµ¬ì ì´ë‹¤. êµí™˜ì€ 주문 시전 범위를 초과하지 않는 거리 ë‚´ì—ì„œ 수행할 수 있다. ì˜¤ì§ ìƒëª…ì ë§Œ êµí™˜ë˜ë©°, 시전ìžëŠ” 질병, ë…, 숙취나 다른 유사한 ê³ í†µì€ ëŒ€ìƒê³¼ êµí™˜í•  수 없다. -ì´ ì£¼ë¬¸ì€ ì•… 성향 ìºë¦­í„°ëŠ” 시전할 수 없으며, ì–¸ë°ë“œ, 주조물, 다른 ì°¨ì›ì—ì„œ 온 ìƒëª…ì²´ì—게는 효과가 없다.~ -@276=~ì¼ë©”ì´í„°ì˜ 호ì˜~ -@275=~중급 ìƒì²˜ 입히기 -(네í¬ë¡œë§¨ì‹œ) -레벨: 3 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ê³  í•œ ìƒëª…ì²´ì—게 접촉하면, 사제는 ê·¸ ìƒëª…ì²´ì˜ ëª¸ì— 14ì ì˜ 피해(내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ 절반.)를 줄 수 있다. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œë‚˜ 주조물, í˜¹ì€ ë‹¤ë¥¸ ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 íš¨ë ¥ì´ ì—†ë‹¤. ì„ í•œ ìºë¦­í„°ëŠ” 중급 ìƒì²˜ 입히기를 사용할 수 없다.~ -@274=~중급 ìƒì²˜ 입히기~ -@273=~í­í’ì˜ ë³´í˜¸ë§‰ -(앱저레ì´ì…˜) -레벨: 3 -분야: ë°©ì–´, 날씨 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 6 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìž ì£¼ë³€ì— íŒŒê´´ì ì¸ ì—너지를 가진 ë°ì€ 구체를 만들어낸다. ì´ êµ¬ì²´ëŠ” 시전ìžë¥¼ ë”°ë¼ì„œ ê°™ì´ ì›€ì§ì¸ë‹¤. ì´ í­í’ì˜ ë³´í˜¸ë§‰ì€ ì‹œì „ìžì˜ 불, 냉기, 전기 í”¼í•´ì— ëŒ€í•œ ì €í•­ë ¥ì„ 50% ì¦ê°€ì‹œì¼œ 준다.~ -@272=~í­í’ì˜ ë³´í˜¸ë§‰~ -@271=~ê³°íŒ¡ì´ ì ‘ì´‰ -(얼터레ì´ì…˜) -레벨: 3 -분야: ì‹ë¬¼ -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 특수 -시전 시간: 6 -효과 범위: 10 피트 반경 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ 접촉한 í•œ ìƒëª…체를, 빠르게 확산ë˜ëŠ” 갈색 곰팡ì´ì— 오염ë˜ë„ë¡ ë§Œë“ ë‹¤. ì´ë ‡ê²Œ ì˜¤ì—¼ëœ ìƒëŒ€ëŠ” ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 하며, 만약 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•˜ë©´ 심ê°í•˜ê²Œ ì˜¤ì—¼ëœ ê²ƒì´ ë˜ì–´ 아래와 ê°™ì€ í”¼í•´ë¥¼ 입게 ëœë‹¤: -첫 번째 ë¼ìš´ë“œ: 4d6 피해. -ë‘ ë²ˆì§¸ ë¼ìš´ë“œ: 3d6 피해. -세 번째 ë¼ìš´ë“œ: 2d6 피해. -네 번째 ë¼ìš´ë“œ: 1d6 피해. -만약 내성 êµ´ë¦¼ì— ì„±ê³µí–ˆë‹¤ë©´, 피해는 아래처럼 줄어든다: -첫 번째 ë¼ìš´ë“œ: 2d6 피해. -ë‘ ë²ˆì§¸ ë¼ìš´ë“œ: 1d6 피해. -세 번째 ë¼ìš´ë“œ: 1d6 피해. -첫 번째 ë¼ìš´ë“œê°€ 지나고 ë‚œ 다ìŒì˜ ê° ë¼ìš´ë“œë§ˆë‹¤, ì£¼ë¬¸ì˜ í”¼í•´ìžì—게서 10피트 반경 ì•ˆì— ìžˆëŠ” 가장 가까운 ìƒëª…체는 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. 만약 실패하면, 그는 ë˜‘ê°™ì´ ê³°íŒ¡ì´ì— 오염ëœë‹¤. ì´ë ‡ê²Œ ì˜¤ì—¼ëœ ìƒëŒ€ëŠ” 다시 처ìŒë¶€í„° 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. ì´ëŸ¬í•œ 오염 과정ì€, 곰팡ì´ê°€ ì ì ˆí•œ 숙주를 ë”ì´ìƒ 찾지 못할 때까지 계ì†ëœë‹¤. ì´ë¯¸ 곰팡ì´ì— ì˜¤ì—¼ëœ ëŒ€ìƒì€ 다시 오염ë˜ì§€ 않는다. ì£¼ë¬¸ì´ ì‚¬ë¼ì§€ê³  나면, ì´ ê°ˆìƒ‰ 곰팡ì´ë“¤ì€ 아주 빨리 사ë¼ì§ˆ 것ì´ë‹¤.~ -@270=~ê³°íŒ¡ì´ ì ‘ì´‰~ -@269=~í­ìš° -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 3 -분야: ì •ë ¹ 물 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 2 ë¼ìš´ë“œ -시전 시간: 6 -효과 범위: 35 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 내를 완전히 젖게 하는 마법ì ì¸ 비를 만들어 낸다. 냉기, í˜¹ì€ ë¶ˆë¡œ ì´ë£¨ì–´ì§„ 환경ì—ì„œ 살아가는 모든 ìƒëª…체는, 매 ë¼ìš´ë“œë‹¹ 2d3ì ì˜ 마법 피해를 입는다. ë˜í•œ, 효과 범위 ë‚´ì— ìžˆëŠ” 모든 ìƒëª…체는 매 ë¼ìš´ë“œë§ˆë‹¤ 50%ì˜ í™•ë¥ ë¡œ 2d6ì ì˜ 피해를 주는 ë²ˆê°œì— ë§žê²Œ ëœë‹¤. ì´ ë²ˆê°œëŠ” ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•  경우 ì ˆë°˜ì˜ í”¼í•´ë§Œì„ ìž…ížŒë‹¤. 화염 칼날 주문, í™”ì—¼ì˜ ìž¥ë§‰, í˜¹ì€ ìƒëŸ¬ë§¨ë”ì˜ ì˜¤ë¼ ë“±ì€ í­ìš° ì£¼ë¬¸ì— ì˜í•´ 사ë¼ì§„다.~ -@268=~í­ìš°~ -@267=~가시 성장 -(얼터레ì´ì…˜) -레벨: 3 -분야: ì •ë ¹ 대지 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 6 -효과 범위: 30 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì£¼ë³€ ì§€í˜•ì„ ê°€ì‹œê°€ ë‹ì•„ë‚œ ì‹ë¬¼ë¡œ 변화시킨다. 범위 ì•ˆì— ë“¤ì–´ì˜¤ëŠ” 모든 ìƒëª…체는 ì£¼ë¬¸ì´ ì§€ì†ë˜ëŠ” ë™ì•ˆ 매 ë¼ìš´ë“œë§ˆë‹¤ 1d4ì ì˜ 찌르기 피해와 1d4ì ì˜ 베기 피해를 입게 ëœë‹¤.~ -@266=~가시 성장~ -@265=~ë¼ˆì˜ ì› -(네í¬ë¡œë§¨ì‹œ) -레벨: 3 -분야: 수호, 창조 -시전 거리: 0 -ì§€ì† ì‹œê°„: 3 ë¼ìš´ë“œ -시전 시간: 3 -효과 범위: 3 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ 주위를 빠르게 회전하는 ë¼ˆì˜ ë°©ì–´ë§‰ì„ ë§Œë“¤ì–´ ë‚´ë©°, 시전ìžëŠ” ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ ë™ì•ˆ 움ì§ì¼ 수 없다. ì´ ë¼ˆì˜ ì§„ë¡œë¥¼ 침범하는 ìžëŠ” 누구나 1d6ì˜ ë¶€ìˆ˜ê¸° 피해와 ë¼ìš´ë“œ 당 1d6ì˜ ë² ê¸° 피해를 입는다. ì„  ì„±í–¥ì˜ ìºë¦­í„°ëŠ” ë¼ˆì˜ ì›ì„ 시전할 수 없다.~ -@264=~ë¼ˆì˜ ì›~ -@263=~문블레ì´ë“œ~ -@262=~문블레ì´ë“œ~ -@261=~문블레ì´ë“œ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 3 -분야: 전투, 태양 -시전 거리: 0 -ì§€ì† ì‹œê°„: 2 í„´ -시전 시간: 6 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ë‹¬ë¹›ì„ ëª¨ì•„ 조용하고, ë¬´ê²Œë„ ì—†ëŠ” 4피트 길ì´ì˜ ê²€ 형태로 바꾸어준다. ì´ëŠ” 시전ìžì˜ ì†ì—ì„œ ìƒê²¨ë‚˜ë©°, +4 무기ì—만 맞는 ìƒëŒ€ë„ 명중시킬 수 있다. 그러나 실제 THAC0ì—는 보너스를 주지 않는다. ë˜í•œ 문블레ì´ë“œì˜ 비 ë¬¼ë¦¬ì  íŠ¹ì„± 때문ì—, íž˜ì— ì˜í•œ 근접전 ë³´ë„ˆìŠ¤ë„ ì ìš©ë˜ì§€ 않는다. -문블레ì´ë“œì˜ ê³µê²©ì€ ìƒëŒ€ì˜ ìƒëª…ë ¥ì„ í¡ìˆ˜í•˜ë©°, 1d12+4ì ì˜ 마법 피해를 입힌다. ë˜í•œ ê·¸ ìƒëŒ€ê°€ ì–¸ë°ë“œì´ê±°ë‚˜ ë¹›ì— íŠ¹ížˆ 민ê°í•˜ë‹¤ë©´, 추가로 1d12ì ì˜ 피해를 ë” ìž…ê²Œ ëœë‹¤. ë˜í•œ ì´ ê³µê²©ì— ëª…ì¤‘ëœ ìƒëŒ€ëŠ” ì¼ì‹œì ìœ¼ë¡œ ë§ˆë²•ì´ í˜¼ëž€ìŠ¤ëŸ¬ì›Œì ¸, ë‹¤ìŒ ë¼ìš´ë“œì— 사용하는 ë§ˆë²•ì€ ìžë™ì ìœ¼ë¡œ 실패하게 ëœë‹¤.~ -@260=~문블레ì´ë“œ~ -@259=~ìž ì´ ë“¬~ -@258=~찬양 -(앱저레ì´ì…˜) -레벨: 3 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 9 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ í•œ ìƒëª…체를 ë•ê¸° 위해서 사용ë˜ê³¤ 하지만, 사제 ìžì‹ ì—게 사용할 수는 없다. 시전 ìƒëŒ€ì™€ 접촉하면, 그는 ê³µí¬, 수면, 정신박약, ì˜ì‹ë¶ˆëª…, ì¤‘ë… ë“±ì— ì˜í•œ 효과ì—ì„œ 벗어나게 ë˜ë©°, ë™ì‹œì— ê´‘í­í™”나 ì •ì‹ ì  í˜¼ëž€ë„ ê·¹ë³µí•  수 있게 ëœë‹¤. ë˜í•œ, ì£¼ë¬¸ì˜ íš¨ê³¼ë¥¼ ë°›ì€ ìžëŠ” ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ ë™ì•ˆ 그러한 효과를 불러 ì¼ìœ¼í‚¤ëŠ” ì£¼ë¬¸ì— ëŒ€í•´ 보호받게 ëœë‹¤.~ -@257=~찬양~ -@256=~질병 유발 -(네í¬ë¡œë§¨ì‹œ) -레벨: 3 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 8 시간 -시전 시간: 9 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ ì‚¬ì œê°€ 접촉한 í•œ ìƒëŒ€ë¥¼ 질병으로 오염시켜, ê·¸ì˜ íž˜ì„ 5d4ì  ë‚´ë ¤ê°€ê²Œ 만든다. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´, ì´ íš¨ê³¼ëŠ” 무효화ëœë‹¤. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œ, 주조물, í˜¹ì€ ë‹¤ë¥¸ ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 íš¨ë ¥ì´ ì—†ë‹¤. ì„  ì„±í–¥ì˜ ìºë¦­í„°ëŠ” ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•  수 없다.~ -@255=~질병 유발~ -@254=~전투 페ë„í‹°~ -@253=~전투 보너스~ -@252=~ê¸°ë„ -(컨저레ì´ì…˜/서모ë‹) -레벨: 3 -분야: 전투 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 6 -효과 범위: 60 피트 반경 -내성 굴림: ì—†ìŒ -ê¸°ë„ ì£¼ë¬¸ì€ ì„±ì§ìžì™€ ê·¸ì˜ ë™ë£Œë“¤ì—게 ì¶•ë³µì„ ë‚´ë¦¬ê³ , ì ì—게는 저주를 건다. ë™ë£Œë“¤ì€ 모든 공격, 피해, 내성 êµ´ë¦¼ì— +1ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받고, ì ì€ 모든 공격, 피해, 내성 êµ´ë¦¼ì— -1ì˜ íŽ˜ë„티를 받는다. ì£¼ë¬¸ì´ ë°œë™ë  ë•Œ 효과 범위 ë‚´ì— ìžˆë˜ ëª¨ë“  ìƒëª…체는 ê·¸ ì§€ì—­ì„ ë²—ì–´ë‚˜ë„ ê³„ì†ì ìœ¼ë¡œ ì£¼ë¬¸ì˜ íš¨ë ¥ì„ ë°›ëŠ”ë‹¤. 만약 파ì´í„°ê°€ ë„ë§ì¹˜ëŠ” ê³ ë¸”ë¦°ì„ ì«“ì•„ê°„ë‹¤ê³  í•´ë„ ê¸°ë„ ì£¼ë¬¸ì˜ íš¨ê³¼ëŠ” 그를 ë”°ë¼ê°ˆ 것ì´ë‹¤.~ -@251=~기ë„~ -@250=~보통 ìƒì²˜ 입히기 -(네í¬ë¡œë§¨ì‹œ) -레벨: 2 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ê³  í•œ ìƒëª…ì²´ì—게 접촉하면, 사제는 ê·¸ ìƒëª…ì²´ì˜ ëª¸ì— 11ì ì˜ 피해(내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ 절반.)를 줄 수 있다. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œë‚˜ 주조물, í˜¹ì€ ë‹¤ë¥¸ ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 íš¨ë ¥ì´ ì—†ë‹¤. ì„ í•œ ìºë¦­í„°ëŠ” 보통 ìƒì²˜ 입히기를 사용할 수 없다.~ -@249=~보통 ìƒì²˜ 입히기~ -@248=~ì•¼ìˆ˜ì˜ ë°œí†±~ -@247=~ì•¼ìˆ˜ì˜ ë°œí†±~ -@246=~ì•¼ìˆ˜ì˜ ë°œí†± -(얼터레ì´ì…˜) -레벨: 2 -분야: 전투 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´ -시전 시간: 5 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ 팔ì—ì„œ 강력한 ì•¼ìˆ˜ì˜ ë°œí†±ì´ ë‚˜ì˜¤ê²Œ 만들며, 시전ìžì˜ íž˜ì„ 18/72ë¡œ 만들어 주고, ìƒëŒ€ì—게 2d4(+힘 보너스)ì ì˜ 피해를 입히는 할퀴기 ê³µê²©ì„ í•  수 있게 í•´ 준다. 시전ìžëŠ” ì´ ì§ìŠ¹ì˜ ë°œí†±ì„ ì´ìš©í•´ ëª…ì¤‘ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받고 매 ë¼ìš´ë“œë‹¹ 2ë²ˆì˜ ê³µê²©ì„ ê°€í•  수 있게 ëœë‹¤.~ -@245=~ì•¼ìˆ˜ì˜ ë°œí†±~ -@244=~ì€ìƒ‰ì˜ 보호범위 밖으로 벗어났다. (ACì— 2 페ë„티를 받는다.)~ -@243=~알리콘 ì°½ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 2 -분야: 전투 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì€ìƒ‰ì„ ëˆ, 부분ì ìœ¼ë¡œ ì—테르로 ì´ë£¨ì–´ì§„ ì°½ì„ ë§Œë“¤ì–´ 낸다. ì´ ì°½ì€ ì•Œë¦¬ì½˜(ìœ ë‹ˆì½˜ì˜ ë¿”) ëª¨ì–‘ì„ í•˜ê³  있다. ì£¼ë¬¸ì˜ ì‹œì „ìžê°€ 목표를 정하면, 알리콘 ì°½ì€ ì¦‰ì‹œ 그것ì—게로 날아가며, 3d6ì˜ ì°Œë¥´ê¸° 피해를 입힌다. ì´ëŠ” ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ 절반으로 ì¤„ì¼ ìˆ˜ 있다. 알리콘 ì°½ì€ ê³µê²©í•œ ë’¤ì— ì‚¬ë¼ì§€ì§€ë§Œ, ëª…ì¤‘ëœ ìƒëŒ€ì˜ 주변ì—는 ì€ìƒ‰ì˜ ë¹›ì´ ë¹„ì¹˜ë©° ê·¸ ìƒëŒ€ë¥¼ 보다 쉽게 발견하고 공격할 수 있게 한다. ì´ëŠ” ìƒëŒ€ì˜ ë°©ì–´ë„ì— 3 ë¼ìš´ë“œê°„ -2 페ë„í‹°ë¡œ 작용한다.~ -@242=~알리콘 ì°½~ -@241=~치료ë¨~ -@240=~보통 ìƒì²˜ 치료 -(네í¬ë¡œë§¨ì‹œ) -레벨: 2 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -보통 ìƒì²˜ 치료는 1레벨 사제 ì£¼ë¬¸ì˜ ê²½ìƒ ì¹˜ë£Œì˜ ê°•í™”íŒì´ë©°, 11ì ì˜ ìƒëª…ì ê³¼ 숙취를 치료한다. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œ, 주조물, 다른 ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 효과가 없다.~ -@239=~보통 ìƒì²˜ 치료~ -@238=~실명~ -@237=~햇빛 태우기 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 1 -분야: 태양 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 4 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ë©´, 피부를 ê·¸ì„리는 뜨거운 ê´‘ì„ ì´ í•˜ëŠ˜ë¡œë¶€í„° 내려와 시전ìžê°€ 지정한 ìƒëŒ€ì—게 ì˜ì—¬ì§„다. ì´ ê´‘ì„ ì— ë§žì€ ìƒëŒ€ëŠ” 1d6ì ì˜ 피해를 입게 ë˜ë©°, 시전ìžì˜ 레벨당 1ì ì˜ 피해를 추가ì ìœ¼ë¡œ 입는다. ì–¸ë°ë“œë‚˜ ë¹›ì— ì•½í•œ ê´´ë¬¼ë“¤ì€ 1d6ì ì˜ 기본 피해ì—다가, 시전ìžì˜ 레벨당 2ì ì”©ì˜ 피해를 ë” ìž…ê²Œ ëœë‹¤. ì´ëŸ¬í•œ 피해 효과 외ì—ë„, 피해ìžëŠ” 3ë¼ìš´ë“œ ë™ì•ˆ ëˆˆì´ ë©€ê²Œ ëœë‹¤. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•  경우 ì ˆë°˜ì˜ í”¼í•´ë§Œ 입는다.~ -@236=~햇빛 태우기~ -@235=~가벼운 ìƒì²˜ 입히기 -(네í¬ë¡œë§¨ì‹œ) -레벨: 1 -분야: 치유 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ê³  í•œ ìƒëŒ€ì™€ 접촉하면, ê·¸ ìƒëŒ€ëŠ” 8ì ì˜ 피해를 입게 ëœë‹¤.(내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ ì ˆë°˜ì˜ í”¼í•´ë§Œì„ ìž…ëŠ”ë‹¤.) ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œ, 주조물, í˜¹ì€ ë‹¤ë¥¸ ì°¨ì›ì˜ ìƒëª…ì²´ì—게는 효과가 없다. ì„  ì„±í–¥ì˜ ìºë¦­í„°ëŠ” 가벼운 ìƒì²˜ 입히기 ì£¼ë¬¸ì„ ì‚¬ìš©í•  수 없다.~ -@234=~가벼운 ìƒì²˜ 입히기~ -@233=~저주받ìŒ~ -@232=~저주 -(컨저레ì´ì…˜/서모ë‹) -레벨: 1 -분야: ì „ì²´ -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 6 ë¼ìš´ë“œ -시전 시간: 9 -효과 범위: 30 피트 반경 -내성 굴림: ì—†ìŒ -저주 ì£¼ë¬¸ì„ ìŠìœ¼ë©´, 시전ìžëŠ” ì ì˜ 사기를 낮추고 내성 굴림과 명중 êµ´ë¦¼ì— -1ì˜ íŽ˜ë„티를 준다. ì£¼ë¬¸ì´ ë°œë™ë˜ëŠ” 즉시, 시전ìžê°€ 지정한 ì ì„ 중심으로 30 피트 반경 ë‚´ì˜ ëª¨ë“  ìƒëª…ì²´ê°€ ì£¼ë¬¸ì— ì˜í–¥ì„ 받게 ëœë‹¤. ì´ë¯¸ ì£¼ë¬¸ì— ê±¸ë¦° ìƒëª…체는 효과 범위를 ë²—ì–´ë‚˜ë„ ê³„ì† ì£¼ë¬¸ì˜ íš¨ë ¥ì„ ë°›ê²Œ ë˜ê³ , ì£¼ë¬¸ì´ ë°œë™ëœ í›„ì— íš¨ê³¼ 범위 ë‚´ì— ë“¤ì–´ì˜¨ ìƒëª…체는 ì£¼ë¬¸ì˜ íš¨ë ¥ì„ ë°›ì§€ 않는다.~ -@231=~저주~ -@230=~ì´ ì£¼ë¬¸ì€ ì„ íƒí•œ ìºë¦­í„°ë¥¼ 회복시켜준다. 11ì ì˜ ìƒëª…ì ì´ 회복ëœë‹¤.~ -@229=~ëŒì˜ 눈 -ì´ ëˆˆì€ ì‹œì „ìžë¥¼ ì„í™” 공격으로부터 í•œ 번 보호해 준다. -ì´ëŠ” ë˜í•œ 마법사 3레벨 ì£¼ë¬¸ì¸ ì¸ê°„형 ì†ë°•ìœ¼ë¡œ 사용할 ìˆ˜ë„ ìžˆê³ , ì¸ê°„ í¬ê¸°ê±°ë‚˜ 그보다 ìž‘ì€ ìƒëª…체를 레벨 당 1 ë¼ìš´ë“œ ë™ì•ˆ 움ì§ì´ì§€ 못하게 한다(ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 성공시 무시).~ -@228=~ëŒì˜ 눈~ -@227=~ì˜í˜¼ì˜ 눈 -ì´ ëˆˆì€ ì¦‰ì‚¬ ê³„ì—´ì˜ ë§ˆë²•(죽ìŒì˜ 주문, 죽ìŒì˜ ì†ê°€ë½, 파워 워드: 죽ìŒ, ìƒëª…ì²´ ì‚´í•´, 파괴 등)으로부터 시전ìžë¥¼ í•œ 번 보호해 준다. -마법사는 ì´ ëˆˆì˜ ëŠ¥ë ¥ì„ ë³€í™˜í•´ 마법사 2레벨 ì£¼ë¬¸ì¸ ì•½í™” 광선으로 사용할 ìˆ˜ë„ ìžˆë‹¤. ì´ ê´‘ì„ ì€ ìƒëŒ€ì˜ íž˜ì„ 5ë¡œ 떨어뜨린다(ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 성공시 무시).~ -@226=~ì˜í˜¼ì˜ 눈~ -@225=~ê°•ì¸í•¨ì˜ 눈 -ì´ ëˆˆì€ ê¸°ì ˆ, 귀멀게 하기, 눈멀게 하기, í˜¹ì€ ì¹¨ë¬µì˜ íš¨ê³¼ë¥¼ í•œ 번 막아준다. -ì´ëŠ” ë˜í•œ 마법사 4레벨 ì£¼ë¬¸ì¸ ì™¸ì¹¨ìœ¼ë¡œ 사용할 ìˆ˜ë„ ìžˆê³ , 35 피트 ì›ë¿” ë‚´ì˜ ëª¨ë“  ìƒëª…체는 4d6ì ì˜ 마법 피해와 함께 실청ëœë‹¤(ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 성공시 ì ˆë°˜ì˜ í”¼í•´ë¥¼ ìž…ê³  실청 효과는 무시ëœë‹¤).~ -@224=~ê°•ì¸í•¨ì˜ 눈~ -@223=~ë…ì˜ ëˆˆ -ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 노리고 가해진 ë… ê³µê²©ì´ë‚˜ ë… íš¨ê³¼ë¥¼ í•œ 번 무효화해 준다. -ì´ ëˆˆì€ ë˜í•œ 성ì§ìž 4레벨 ì£¼ë¬¸ì¸ ë…으로 사용할 ìˆ˜ë„ ìžˆê³ , ëŒ€ìƒ ìƒëª…체는 20ì´ˆ ë™ì•ˆ 20ì ì˜ ë… í”¼í•´ë¥¼ 입는다(ë…ì— ëŒ€í•œ 내성 굴림 성공시 무시).~ -@222=~ë…ì˜ ëˆˆ~ -@221=~ê²€ì˜ ëˆˆ -ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 노린 첫 번째 ë¬¼ë¦¬ì  ê³µê²©ì„ ë¹—ë‚˜ê°€ê²Œ í•´ 준다. -ì´ ëˆˆì€ ë˜í•œ 1레벨 마법사 ì£¼ë¬¸ì¸ ë§ˆë²• 화살로 사용할 ìˆ˜ë„ ìžˆê³ , 최대 발사체 5ê°œ(매 2레벨당 1ê°œì˜ í™”ì‚´ 추가)를 만들어 ë‚´ì„œ í•œ 개당 1d4+1ì ì˜ 마법 피해를 준다.~ -@220=~ê²€ì˜ ëˆˆ~ -@219=~ë§ˆë²•ì‚¬ì˜ ëˆˆ -ì´ ëˆˆì€ ë¶ˆ, 전기, 냉기, í˜¹ì€ ì‚°ì„± 피해를 í•œ 번 í¡ìˆ˜í•´ 준다. -ì´ ëˆˆì€ ë˜í•œ 3레벨 마법사 ì£¼ë¬¸ì¸ ë²ˆê°œ 화살로 사용할 ìˆ˜ë„ ìžˆê³ , 경로 ë‚´ì˜ ëª¨ë“  ìƒëª…체는 ì‹œì „ìž ë ˆë²¨ë‹¹ 1d6ì ì˜ 전기 피해 (최대 10d6)를 입는다.~ -@218=~ë§ˆë²•ì‚¬ì˜ ëˆˆ~ -@217=~ì •ì‹ ì˜ ëˆˆ -ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 현혹, ê°ì • 조종, ê³µí¬ ë“±ì˜ ì •ì‹  공격으로부터 보호해 준다. -ì´ ëˆˆì€ ë˜í•œ 마법사 1레벨 ì£¼ë¬¸ì¸ ì¸ê°„형 현혹으로 사용할 ìˆ˜ë„ ìžˆê³ , 시전ìžëŠ” ì¸ê°„형 ìƒëª…체를 1í„´ ë™ì•ˆ 조종(ì£¼ë¬¸ì— ëŒ€í•œ 내성 굴림 성공시 무시)한다.~ -@216=~ì •ì‹ ì˜ ëˆˆ~ -@215=~현재 ì ìš©ì¤‘ì¸ íš¨ê³¼ê°€ 사ë¼ê¸°ì§€ ì „ì—는 ì´ ì£¼ë¬¸ì„ ì‹œì „í•  수 없습니다.~ -@214=~ì¼ê³± ê°œì˜ ëˆˆ~ -@213=~ì¼ê³± ê°œì˜ ëˆˆ -(앱저레ì´ì…˜) -레벨: 7 -시전 거리: 0 -ì§€ì† ì‹œê°„: 2 í„´ -시전 시간: 7 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ 머리 위ì—ì„œ 빙빙 ë„는 ì¼ê³± ê°œì˜ ë§ˆë²•ì ì¸ 보주를 만들어 낸다. ê°ê°ì˜ ëˆˆë“¤ì€ ê³µê²©ì ì¸, í˜¹ì€ ë°©ì–´ì ì¸ ëŠ¥ë ¥ì„ ì§€ë‹ˆê³  있으며, í•œ 번 사용하면 ê·¸ íš¨ë ¥ì„ ìžƒì–´ë²„ë¦°ë‹¤. ëˆˆì´ í•˜ë‚˜ë¼ë„ 남아있는 ìƒí™©ì—ì„œ 다시 ì¼ê³± ê°œì˜ ëˆˆ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´, ê·¸ ì£¼ë¬¸ì€ ìžë™ìœ¼ë¡œ 실패할 것ì´ë‹¤. ê°ê°ì˜ ëˆˆì´ ì§€ë‹Œ íž˜ì€ ì•„ëž˜ì— ì„¤ëª…ë˜ì–´ 있다. -ì •ì‹ ì˜ ëˆˆ - ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 현혹, ê°ì •ì¡°ì¢…, ê³µí¬ ë“±ì˜ ì •ì‹  공격으로부터 보호해 준다. ì´ ëˆˆì€ ë§ˆë²•ì‚¬ 1레벨 ì£¼ë¬¸ì¸ ì¸ê°„형 현혹으로 사용할 수 있다. -ê²€ì˜ ëˆˆ - ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 노린 첫 번째 ë¬¼ë¦¬ì  ê³µê²©ì„ ë¹—ë‚˜ê°€ê²Œ í•´ 준다. ì´ ëˆˆì€ 1레벨 마법사 ì£¼ë¬¸ì¸ ë§ˆë²• 화살로 사용할 수 있다.(발사체 5ê°œ) -ë§ˆë²•ì‚¬ì˜ ëˆˆ - ì´ ëˆˆì€ ë¶ˆ, 전기, 냉기, í˜¹ì€ ì‚°ì„± 피해를 í•œ 번 í¡ìˆ˜í•´ 준다. ì´ ëˆˆì€ 3레벨 마법사 ì£¼ë¬¸ì¸ ë²ˆê°œ 화살로 사용할 수 있다.(4d8 피해) -ë…ì˜ ëˆˆ - ì´ ëˆˆì€ ì‹œì „ìžë¥¼ 노리고 가해진 ë… ê³µê²©ì´ë‚˜ ë… íš¨ê³¼ë¥¼ 한번 무효화해 준다. ì´ ëˆˆì€ ë˜í•œ ìƒëŒ€ 하나를 중ë…시킬 수 있으며, 30ì´ˆì˜ ì‹œê°„ ë™ì•ˆ ëª¨ë‘ 30ì ì˜ 피해를 ìž…íž ìˆ˜ 있다. -ì˜í˜¼ì˜ 눈 - ì´ ëˆˆì€ ì¦‰ì‚¬ ê³„ì—´ì˜ ë§ˆë²•(죽ìŒì˜ 주문, 죽ìŒì˜ ì†ê°€ë½, 파워 워드: 죽ìŒ, ì‚´í•´, 파괴 등)으로부터 시전ìžë¥¼ í•œ 번 보호해 준다. 마법사는 ì´ ëˆˆì˜ ëŠ¥ë ¥ì„ ë³€í™˜í•´ 약화 광선처럼 발사할 수 있다. ì´ ê´‘ì„ ì€ ìƒëŒ€ì˜ íž˜ì„ 5ë¡œ 떨어트려 준다. ìƒëŒ€ëŠ” ê·¸ì— ë”°ë¼ ëª…ì¤‘ì´ë‚˜ í”¼í•´ì— íŽ˜ë„티를 받게 ë  ê²ƒì´ë‹¤. -ê°•ì¸í•¨ì˜ 눈 - ì´ ëˆˆì€ ê¸°ì ˆ, 실청, 실명, í˜¹ì€ ì¹¨ë¬µì˜ íš¨ê³¼ë¥¼ í•œ 번 막아준다. ì´ëŠ” ë˜í•œ 마법사 4레벨 주문 외침으로 사용할 ìˆ˜ë„ ìžˆë‹¤. -ëŒì˜ 눈 - ì´ ëˆˆì€ ì‹œì „ìžë¥¼ ì„í™” 공격으로부터 í•œ 번 보호해 준다. ì´ëŠ” ë˜í•œ 마법사 3레벨 주문, ì¸ê°„형 ì†ë°•ìœ¼ë¡œ 사용할 ìˆ˜ë„ ìžˆë‹¤.~ -@212=~ì¼ê³± ê°œì˜ ëˆˆ~ -@211=~ë§ë¼ë³¸ì˜ 분노~ -@210=~ë§ë¼ë³¸ì˜ 분노 -(ì´ë³´ì¼€ì´ì…˜) -레벨: 7 -시전 거리: 0 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 1 -효과 범위: 15 피트 반경 -내성 굴림: 1/2 -ë§ë¼ë³¸ì˜ 분노 ì£¼ë¬¸ì€ ë‹¤í¬ì—˜í”„ ì†Œì„œëŸ¬ì¸ ë§ë¼ë³¸ì´ 만들었다. ì´ ì£¼ë¬¸ì€ ìˆœìˆ˜í•œ ì—ë„ˆì§€ì˜ í™”ì‚´ì„ ì‹œì „ìžì˜ ëª¸ì„ ì¤‘ì‹¬ìœ¼ë¡œ í•´ì„œ ì ê³¼ ë™ë£Œë¥¼ 구분하지 ì•Šê³  모든 방향으로 발사한다. ì´ ì기 ëª¨ì–‘ì˜ ì—너지 í™”ì‚´ì´ ì§€ë‚˜ê°€ëŠ” ê²½ë¡œì— ìžˆëŠ” 모든 ê²ƒì€ 20d4 ì ì˜ 찌르기 피해를 입는다(ì£¼ë¬¸ì— ëŒ€í•œ 내성굴림 성공시 절반). ì´ ì£¼ë¬¸ì€ ë§ˆë²•ì‚¬ê°€ ì ì—게 ë‘˜ëŸ¬ì‹¸ì˜€ì„ ë•Œ 특히 유용하다.~ -@209=~ë§ë¼ë³¸ì˜ 분노~ -@208=~보팔 명중~ -@207=~죽ìŒ~ -@206=~ì–¸ë°ë“œ 소멸ë¨~ -@205=~외부 ì°¨ì› ì†Œë©¸ë¨~ -@204=~ì…°ì´ë“œ~ -@203=~ì…°ì´ë“œ -(ì¼ë£¨ì „/íŒíƒ€ì¦˜) -레벨: 6 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 6 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì…°ì´ë“œëŠ” ê·¸ë¦¼ìž ëª¬ìŠ¤í„°ì™€ ë°˜ ê·¸ë¦¼ìž ëª¬ìŠ¤í„° 주문과 비슷하다. ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ 그림ìžì˜ ë°˜ ì°¨ì›ì˜ ë¬¼ì§ˆì„ í™˜ì˜ì˜ ìƒëª…ì²´ë¡œ 바꿀 수 있게 í•´ 준다. ì´ë ‡ê²Œ 만들어진 그림ìžëŠ” ê·¸ë¦¼ìž ëª¬ìŠ¤í„°ë‚˜ ë°˜ ê·¸ë¦¼ìž ëª¬ìŠ¤í„° 주문으로 소환한 그림ìžë³´ë‹¤ ë” ê°•í•˜ë©°, 주문 íš¨ë ¥ì´ ë나거나 ê·¸ë“¤ì´ ì£½ì„ ë•Œê¹Œì§€ 시전ìžì—게 복종할 것ì´ë‹¤.~ -@202=~ì…°ì´ë“œ~ -@201=~ë¦¬ì¹˜ì˜ ì ‘ì´‰~ -@200=~ë¦¬ì¹˜ì˜ ì ‘ì´‰~ -@199=~ë¦¬ì¹˜ì˜ ì ‘ì´‰ -(네í¬ë¡œë§¨ì‹œ) -레벨: 6 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 6 -효과 범위: ì‹œì „ìž -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì—게 ë¦¬ì¹˜ì˜ ì ‘ì´‰ê³µê²©ì˜ íž˜ê³¼ ë¦¬ì¹˜ì˜ ë©´ì—­ì„±ì„ ë¶€ì—¬í•œë‹¤. 마법사는 ì£¼ë¬¸ì˜ íš¨ê³¼ê°€ 지ì†ë˜ëŠ” ë™ì•ˆ 마비와 ê³µí¬ì— ë©´ì—­ì´ ë˜ê³ , ê·¸ì˜ ì†ì€ 섬뜩한 ì´ˆë¡ë¹›ìœ¼ë¡œ 빛나게 ëœë‹¤. ì´ ì†ìœ¼ë¡œ ê³µê²©ì— ì„±ê³µí•˜ë©´ 1d10 ì ì˜ 피해를 입히고, ë§ˆë¹„ì— ëŒ€í•´ 내성 êµ´ë¦¼ì„ í•˜ì—¬ 실패할 경우 마비ëœë‹¤. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œì—게는 아무런 효과가 없다.~ -@198=~ë¦¬ì¹˜ì˜ ì ‘ì´‰~ -@197=~마법 í•´ì œ 효과~ -@196=~반마법 보호막~ -@195=~반마법 보호막 -(앱저레ì´ì…˜) -레벨: 6 -시전 거리: 0 -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 1 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì™€ 함께 움ì§ì´ëŠ” ë³´ì´ì§€ 않는 ìž¥ë§‰ì„ ì¹œë‹¤. ì´ ìž¥ë§‰ì€ ë§ˆë²•ì‚¬ë¥¼ ì–´ë– í•œ 마법 공격ì—ë„ ë©´ì—­ì´ ë˜ë„ë¡ ë§Œë“¤ì–´ì£¼ì§€ë§Œ, ë§ˆë²•ì‚¬ì˜ ì£¼ë¬¸ì´ ë°©ì–´ë§‰ 밖으로 나가는 ê²ƒë„ ì°¨ë‹¨í•œë‹¤. -반마법 ë³´í˜¸ë§‰ì€ ë˜í•œ 시전ìžì˜ 실청과 정신박약 ìƒíƒœë¥¼ 제거해준다.~ -@194=~반마법 보호막~ -@193=~ê°•ì¸í•œ ë„마뱀 ì¸ê°„~ -@192=~고블린 정예병~ -@191=~고블린 정예병~ -@190=~ë°˜ ê·¸ë¦¼ìž ëª¬ìŠ¤í„°~ -@189=~ë°˜ ê·¸ë¦¼ìž ëª¬ìŠ¤í„° -(ì¼ë£¨ì „/íŒíƒ€ì¦˜) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 5 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ 4ë ˆë²¨ì˜ ìœ„ì €ë“œ ì£¼ë¬¸ì¸ ê·¸ë¦¼ìž ëª¬ìŠ¤í„°ì™€ 유사하지만, ì†Œí™˜ëœ ìƒëª…ì²´ê°€ ë”ìš± 강력한 íž˜ì„ ì†Œìœ í•˜ê³  있다는 ì°¨ì´ì ì´ 있다.~ -@188=~ë°˜ ê·¸ë¦¼ìž ëª¬ìŠ¤í„°~ -@187=~트롤 무기~ -@186=~트롤~ -@185=~트롤~ -@184=~ê·¸ë¦¼ìž ëª¬ìŠ¤í„°~ -@183=~ê·¸ë¦¼ìž ëª¬ìŠ¤í„° -(ì¼ë£¨ì „/íŒíƒ€ì¦˜) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 4 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ê·¸ë¦¼ìžì˜ 아공간 ì°¨ì›ì—ì„œ 환ì˜ì˜ 몬스터를 소환한다. í•œë²ˆì— ìµœëŒ€ ì—¬ì„¯ì˜ ê´´ë¬¼ì„ ì†Œí™˜í•˜ì§€ë§Œ ìƒëª…ì  êµ´ë¦¼ì˜ ì´í•©ì€ 시전ìžì˜ ë ˆë²¨ì„ ì´ˆê³¼í•  수 없다.~ -@182=~ê·¸ë¦¼ìž ëª¬ìŠ¤í„°~ -@181=~ê°€ì†ë¨~ -@180=~ê°ì†~ -@179=~ê°ì†ë¨~ -@178=~ì‹ ì†í•œ 후퇴 -(얼터레ì´ì…˜) -레벨: 1 -시전 거리: 0 -ì§€ì† ì‹œê°„: 3 ë¼ìš´ë“œ -시전 시간: 1 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì§§ì€ ì‹œê°„ë™ì•ˆ 시전ìžì˜ ì´ë™ì†ë„를 ë‘ë°°ë¡œ 늘려준다....대개 ê·¸ ì •ë„ë©´ ë„ë§ê°€ê¸°ì—” 충분할 것ì´ë‹¤. ì´ ì£¼ë¬¸ì´ íš¨ë ¥ì„ ë°œíœ˜í•˜ëŠ” ë™ì•ˆì—는, ê°€ì†, 슬로우등과 ê°™ì´ ì´ë™ ì†ë„를 변화시키는 다른 ì£¼ë¬¸ë“¤ì´ íš¨ë ¥ì„ ë°œíœ˜í•˜ì§€ 못한다.주문 íš¨ë ¥ì´ ìžˆì„ë•Œì—는 공격, 주문 시전 ë˜ëŠ” 물품 사용ì´ë‚˜ 특수 ëŠ¥ë ¥ì„ ì‚¬ìš©í•˜ì§€ 못한다...ì˜¤ì§ ë„ë§ë§Œ 가능하다.~ -@177=~ì‹ ì†í•œ 후퇴~ -@176=~모ë´ì¹´ì´ë„¨ì˜ ê²€~ -@175=~모ë´ì¹´ì´ë„¨ì˜ ê²€~ -@174=~모ë´ì¹´ì´ë„¨ì˜ ê²€ -(ì´ë³´ì¼€ì´ì…˜) -레벨: 7 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 7 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ì •ì‹ ì ìœ¼ë¡œ 휘ë‘를 수 있는 íž˜ì„ ì§€ë‹Œ 빛나는 ê²€ì„ ì†Œí™˜í•œë‹¤. ì´ ê²€ì€ ì‹œì „ìžë ˆë²¨ì˜ ì ˆë°˜ì— í•´ë‹¹í•˜ëŠ” 파ì´í„°ê°€ 사용하는 것처럼 ì“°ì´ë©°, ì†ì— 들고 있ìŒì—ë„ ë¶ˆêµ¬í•˜ê³  시전ìžì˜ ì‹œì•¼ì— ë³´ì´ëŠ” ê·¸ ì–´ë–¤ ìƒë¬¼ì²´ë¼ë„ 공격할 수 있다. 물론 ê·¸ ê²€ì€ ê³µê²©ì— ì–´ë–¤ ë³´ë„ˆìŠ¤ë„ ë°›ì§€ 않으며, +2 ì´ìƒì˜ 무기로만 피해를 줄 수 있는 ìƒëª…체를 공격할 수 있고 명중할 때마다 5d6 ì ì˜ 피해를 준다.~ -@173=~모ë´ì¹´ì´ë„¨ì˜ ê²€~ -@172=~ë¬¼ì˜ ì •ë ¹~ -@171=~ë¬¼ì˜ ì •ë ¹~ -@170=~ë¬¼ì˜ ì •ë ¹ 소환~ -@169=~ë¬¼ì˜ ì •ë ¹ 소환 -(컨저레ì´ì…˜/서모ë‹) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ë¬¼ì˜ ì •ë ¹ê³„ë¡œë¶€í„° 8 HDì˜ ì •ë ¹ì„ í•˜ë‚˜ 소환하여 ê·¸ì˜ ì˜ì§€ëŒ€ë¡œ 조종할 수 있게 한다. ì´ ì •ë ¹ì€ ì£¼ë¬¸ ì§€ì† ì‹œê°„ì´ ë나거나 ì •ë ¹ì´ ì£½ì„ ë•Œê¹Œì§€ 시전ìžë¥¼ 대신하여 싸울 것ì´ë‹¤.~ -@168=~ë¬¼ì˜ ì •ë ¹ 소환~ -@167=~ê³µê¸°ì˜ ì •ë ¹~ -@166=~ê³µê¸°ì˜ ì •ë ¹~ -@165=~ê³µê¸°ì˜ ì •ë ¹ 소환~ -@164=~ê³µê¸°ì˜ ì •ë ¹ 소환 -(컨저레ì´ì…˜/서모ë‹) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ê³µê¸°ì˜ ì •ë ¹ê³„ë¡œë¶€í„° 8 HDì˜ ì •ë ¹ì„ í•˜ë‚˜ 소환하여 ê·¸ì˜ ì˜ì§€ëŒ€ë¡œ 조종할 수 있게 한다. ì´ ì •ë ¹ì€ ì£¼ë¬¸ ì§€ì† ì‹œê°„ì´ ë나거나 ì •ë ¹ì´ ì£½ì„ ë•Œê¹Œì§€ 시전ìžë¥¼ 대신하여 싸울 것ì´ë‹¤.~ -@163=~ê³µê¸°ì˜ ì •ë ¹ 소환~ -@162=~ë¶ˆì˜ ì •ë ¹~ -@161=~ë¶ˆì˜ ì •ë ¹~ -@160=~ë¶ˆì˜ ì •ë ¹ 소환~ -@159=~ë¶ˆì˜ ì •ë ¹ 소환 -(컨저레ì´ì…˜/서모ë‹) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ë¶ˆì˜ ì •ë ¹ê³„ë¡œë¶€í„° 8 HDì˜ ì •ë ¹ì„ í•˜ë‚˜ 소환하여 ê·¸ì˜ ì˜ì§€ëŒ€ë¡œ 조종할 수 있게 한다. ì´ ì •ë ¹ì€ ì£¼ë¬¸ ì§€ì† ì‹œê°„ì´ ë나거나 ì •ë ¹ì´ ì£½ì„ ë•Œê¹Œì§€ 시전ìžë¥¼ 대신하여 싸울 것ì´ë‹¤.~ -@158=~ë¶ˆì˜ ì •ë ¹ 소환~ -@157=~ëŒ€ì§€ì˜ ì •ë ¹~ -@156=~ëŒ€ì§€ì˜ ì •ë ¹~ -@155=~ëŒ€ì§€ì˜ ì •ë ¹ 소환~ -@154=~ëŒ€ì§€ì˜ ì •ë ¹ 소환 -(컨저레ì´ì…˜/서모ë‹) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 í„´/레벨 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ëŒ€ì§€ì˜ ì •ë ¹ê³„ë¡œë¶€í„° 8 HDì˜ ì •ë ¹ì„ í•˜ë‚˜ 소환하여 ê·¸ì˜ ì˜ì§€ëŒ€ë¡œ 조종할 수 있게 한다. ì´ ì •ë ¹ì€ ì£¼ë¬¸ ì§€ì† ì‹œê°„ì´ ë나거나 ì •ë ¹ì´ ì£½ì„ ë•Œê¹Œì§€ 시전ìžë¥¼ 대신하여 싸울 것ì´ë‹¤.~ -@153=~ëŒ€ì§€ì˜ ì •ë ¹ 소환~ -@152=~몬스터 소환 III~ -@151=~몬스터 소환 III -(컨저레ì´ì…˜/서모ë‹) -레벨: 5 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 4 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 5 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ì—¬ 위저드는 1d4 ë§ˆë¦¬ì˜ 3 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•œë‹¤. ì´ë“¤ì€ 주문 거리 ë‚´ì—ì„œ 나타나며 주문 ì§€ì† ì‹œê°„ì´ ë나거나 ëª¬ìŠ¤í„°ë“¤ì´ ì‚´í•´ë‹¹í•  때까지 시전ìžì˜ ìƒëŒ€ë¥¼ 공격하ë„ë¡ ëª…ë ¹ë°›ì„ ìˆ˜ 있다.~ -@150=~몬스터 소환 III~ -@149=~ë„마뱀 ì¸ê°„~ -@148=~ë„마뱀 ì¸ê°„~ -@147=~몬스터 소환 II~ -@146=~몬스터 소환 II -(컨저레ì´ì…˜/서모ë‹) -레벨: 4 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 3 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 4 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ì—¬ 위저드는 1d6 ë§ˆë¦¬ì˜ 2 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•œë‹¤. ì´ë“¤ì€ 주문 거리 ë‚´ì—ì„œ 나타나며 주문 ì§€ì† ì‹œê°„ì´ ë나거나 ëª¬ìŠ¤í„°ë“¤ì´ ì‚´í•´ë‹¹í•  때까지 시전ìžì˜ ìƒëŒ€ë¥¼ 공격하ë„ë¡ ëª…ë ¹ë°›ì„ ìˆ˜ 있다.~ -@145=~몬스터 소환 II~ -@144=~고블린~ -@143=~고블린~ -@142=~몬스터 소환 I~ -@141=~몬스터 소환 I -(컨저레ì´ì…˜/서모ë‹) -레벨: 3 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 2 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 3 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ì—¬ 위저드는 2d3 ë§ˆë¦¬ì˜ 1 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•œë‹¤. ì´ë“¤ì€ 주문 거리 ë‚´ì—ì„œ 나타나며 주문 ì§€ì† ì‹œê°„ì´ ë나거나 ëª¬ìŠ¤í„°ë“¤ì´ ì‚´í•´ë‹¹í•  때까지 시전ìžì˜ ìƒëŒ€ë¥¼ 공격하ë„ë¡ ëª…ë ¹ë°›ì„ ìˆ˜ 있다.~ -@140=~몬스터 소환 I~ -@139=~공격~ -@138=~미노타우르스~ -@137=~미노타우르스~ -@136=~몬스터 소환 V~ -@135=~몬스터 소환 V -(컨저레ì´ì…˜/서모ë‹) -레벨: 7 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 6 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 7 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´ 마법사는 1d3ë§ˆë¦¬ì˜ 5레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•  수 있다. ì´ë“¤ì€ 소환ë˜ë©´ 주문 시전ìžì˜ ì ì„ 공격하며, ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ì´ ë나거나 ìžì‹ ë“¤ì´ 죽으면 사ë¼ì§„다.~ -@134=~몬스터 소환 V~ -@133=~Frost salamander spear -1d8 piercing -1d6 화염 피해 -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~ìƒëŸ¬ë§¨ë”~ -@130=~ìƒëŸ¬ë§¨ë”~ -@129=~서리 ìƒëŸ¬ë§¨ë”~ -@128=~서리 ìƒëŸ¬ë§¨ë”~ -@127=~몬스터 소환 VI~ -@126=~몬스터 소환 VI -(컨저레ì´ì…˜/서모ë‹) -레벨: 8 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 7 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 8 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´ 마법사는 1d3ë§ˆë¦¬ì˜ 6 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•  수 있다. ì´ë“¤ì€ 소환ë˜ë©´ 주문 시전ìžì˜ ì ì„ 공격하며, ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ì´ ë나거나 죽는 ìˆœê°„ì— ì‚¬ë¼ì§„다.~ -@125=~몬스터 소환 VI~ -@124=~공격~ -@123=~움버 í—í¬~ -@122=~움버 í—í¬~ -@121=~본가드 스켈레톤~ -@120=~본가드 스켈레톤~ -@119=~몬스터 소환 VII~ -@118=~몬스터 소환 VII -(컨저레ì´ì…˜/서모ë‹) -레벨: 9 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 8 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 9 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´ 마법사는 1d2ë§ˆë¦¬ì˜ 7 레벨ì´ë‚˜ 8 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•  수 있다. ì´ë“¤ì€ 소환ë˜ë©´ 주문 시전ìžì˜ ì ì„ 공격하며, ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ì´ ë나거나 죽는 순간 사ë¼ì§„다.~ -@117=~몬스터 소환 VII~ -@116=~몬스터 소환 IV~ -@115=~몬스터 소환 IV -(컨저레ì´ì…˜/서모ë‹) -레벨: 6 -시전 거리: 20 피트 -ì§€ì† ì‹œê°„: 5 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 6 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•˜ë©´ 위저드는 1d3ë§ˆë¦¬ì˜ 4 레벨 ëª¬ìŠ¤í„°ë“¤ì„ ì†Œí™˜í•  수 있다. ì´ë“¤ì€ 소환ë˜ë©´ 주문 시전ìžì˜ ì ì„ 공격하며, ì£¼ë¬¸ì˜ ì§€ì† ì‹œê°„ì´ ë나거나 ìžì‹ ë“¤ì´ 죽으면 사ë¼ì§„다.~ -@114=~몬스터 소환 IV~ -@113=~해골~ -@112=~Monster Transparency -Do not translate~ -@111=~몬스터 트랜스페런시 물품~ -@110=~ì„€ë„ìš°~ -@109=~ì„€ë„ìš°~ -@108=~ê·¸ë¦¼ìž ì†Œí™˜~ -@107=~ê·¸ë¦¼ìž ì†Œí™˜ -(컨저레ì´ì…˜/서모ë‹, 네í¬ë¡œë§¨ì‹œ) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 5 -효과 범위: 특수 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì„¸ ë§ˆë¦¬ì˜ 4-HD 그림ìžë¥¼ 소환한다. 그림ìžë“¤ì€ ì§€ì† ì‹œê°„ì´ ë나거나 ì£½ì„ ë•Œê¹Œì§€ ì ì„ 공격하거나 임무를 수행하면서 시전ìžì˜ ëª…ë ¹ì— ë³µì¢…í•  것ì´ë‹¤.~ -@106=~ê·¸ë¦¼ìž ì†Œí™˜~ -@105=~ê°•ì²  주먹~ -@104=~ê°•ì²  주먹~ -@103=~Stricken by a foul disease~ -@102=~ì§ˆë³‘ì— ê±¸ë¦¼~ -@101=~중ë…~ -@100=~ë…~ -@99=~ê°•ì² ì˜ ëª¸~ -@98=~ê°•ì² ì˜ ëª¸ -(얼터레ì´ì…˜) -레벨: 8 -시전 거리: 0 -ì§€ì† ì‹œê°„: 2 í„´ -시전 시간: 8 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ ëª¸ì„ ì‚´ì•„ìžˆëŠ” ê°•ì² ë¡œ 바꾸어주며, ê·¸ì—게 여러가지 강력한 내성과 ëŠ¥ë ¥ì„ ë¶€ì—¬í•´ 준다. ì´ ì£¼ë¬¸ì˜ íš¨ë ¥ì´ ë°œíœ˜ë˜ê³  ìžˆì„ ë™ì•ˆ, 시전ìžëŠ” ì „ê¸°ì— 100% ë‚´ì„±ì„ ê°€ì§€ê²Œ ë˜ë©°, 불ì—는 50%, 부수기 피해ì—는 25%ì˜ ë‚´ì„±ì„ ì§€ë‹ˆê²Œ ëœë‹¤. 호í¡ì´ë‚˜ ìƒë¦¬í˜„ìƒì— 작용하는 모든 ì£¼ë¬¸ì€ ë¬´ì‹œëœë‹¤. ë˜í•œ, 시전ìžì˜ íž˜ì€ 25ê°€ ë˜ë©°, 시전ìžëŠ” 매 ë¼ìš´ë“œë‹¹ 2번 ê·¸ì˜ ê°•ì²  ì£¼ë¨¹ì„ ì´ìš©í•´ 2d4ì ì˜ í”¼í•´ì— ì¶”ê°€ë¡œ 힘 피해를 입히는 ê³µê²©ì„ í•  수 있게 ëœë‹¤. -안ë지만, 시전ìžì˜ ì´ë™ì€ ëŠë¦¬ê³  어색해진다. ê·¸ì˜ ì´ë™ì†ë„는 25%ë¡œ 맞추어진다. ë˜í•œ, 시전ìžëŠ” ê°•ì² ì˜ ëª¸ì˜ íš¨ë ¥ì„ ë°›ê³  ìžˆì„ ë™ì•ˆì—는 ì£¼ë¬¸ì„ ì‚¬ìš©í•  수 없다.~ -@97=~ê°•ì² ì˜ ëª¸~ -@96=~무ì˜ì‹~ -@95=~ìƒê¸‰ 외침~ -@94=~ìƒê¸‰ 외침 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 8 -시전 거리: 0 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 1 -효과 범위: 35 피트 15ë„ì˜ ì›ë¿” -내성 굴림: 1/2 -ìƒê¸‰ ì™¸ì¹¨ì„ ì‚¬ìš©í•˜ë©´, 시전ìžëŠ” 35 피트 범위 ë‚´ì— ì••ë„ì ì¸ íž˜ì„ ë°©ì¶œí•˜ê²Œ ëœë‹¤. ìƒê¸‰ ì™¸ì¹¨ì€ ì‹œì „ìžì—ê²Œë„ ê·¹ë‹¨ì ìœ¼ë¡œ 위험하며, ë¶€ë‹´ë„ ë§¤ìš° í° ì£¼ë¬¸ì´ë‹¤. ì´ ì†Œë¦¬ë¥¼ 사용하려면 시전ìžëŠ” 2d4ì ì˜ 피해를 입어야 하며, 시전ìžê°€ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•  경우, 1í„´ê°„ ì˜ì‹ì„ 잃어버린 채 쓰러지게 ëœë‹¤. ìƒê¸‰ ì™¸ì¹¨ì˜ ë²”ìœ„ ë‚´ì— ìžˆëŠ”, 5 HD ë¯¸ë§Œì˜ ëª¨ë“  ìƒëª…체는 즉시 죽어버린다. 모든 다른 ìƒëª…체는 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•œ ìžëŠ” 2ë¼ìš´ë“œê°„ 마비ë˜ê³ , 4ë¼ìš´ë“œê°„ 귀가 멀게 ë˜ë©°, 4d12ì ì˜ 마법 피해를 입게 ëœë‹¤. 내성 êµ´ë¦¼ì— ì„±ê³µí•œ ìžëŠ” 1ë¼ìš´ë“œê°„ 마비ë˜ê³ , 2ë¼ìš´ë“œê°„ 귀가 멀게 ë˜ë©°, 2d12ì ì˜ 피해를 입게 ëœë‹¤.~ -@93=~ìƒê¸‰ 외침~ -@92=~~ -@91=~현혹ë¨~ -@90=~극심한 í˜„í˜¹ì— ê±¸ë¦¼~ -@89=~지배당함~ -@88=~ì‚¬ê¸°ì²´í¬ ì‹¤íŒ¨ : 패닉~ -@87=~술취함~ -@86=~혼란~ -@85=~사고 ê²½ì§~ -@84=~ì†ë°•ë¨~ -@83=~마비ë¨~ -@82=~ì†ë°•ë¨~ -@81=~ë§ˆìŒ ë¹„ìš°ê¸°~ -@80=~ë§ˆìŒ ë¹„ìš°ê¸° -(앱저레ì´ì…˜) -레벨: 8 -시전 거리: 0 -ì§€ì† ì‹œê°„: 24 시간 -시전 시간: 1 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ìžì œë ¥ê³¼ 사ìƒí™œì„ 지키기 위해서, ë§ˆìŒ ë¹„ìš°ê¸°ëŠ” - 현혹, 미로, 정신박약, 혼란, ê³µí¬, 숙취, ê´‘í­í™”, ì†ë°•, ì„í™” 등 - ê±°ì˜ ëª¨ë“  ì •ì‹ ì ì¸ 효과로부터 ìƒëª…ì²´ì˜ ë§ˆìŒì„ 보호해 준다.~ -@79=~ë§ˆìŒ ë¹„ìš°ê¸°~ -@78=~질ì‹~ -@77=~ì§ˆì‹ -(얼터레ì´ì…˜) -레벨: 7 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 4 ë¼ìš´ë“œ -시전 시간: 7 -효과 범위: 14 피트 반경 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ë‚´ì˜ ëª¨ë“  ìƒëª…ì²´ê°€ ìˆ¨ì„ ì‰´ 수 ì—†ë„ë¡ í•œë‹¤. ìˆ¨ì„ ì‰¬ì§€ 않는 ìƒëª…체는 ì˜í–¥ì„ 받지 않는다. 질ì‹ë‹¹í•˜ê³  있는 ìƒëŒ€ëŠ” ë°©ì–´ë„ì— -4 페ë„í‹°, ëª…ì¤‘ì— -4 페ë„í‹°, ë¯¼ì²©ì— -6 페ë„티를 받게 ë˜ë©°, ë¼ìš´ë“œë‹¹ 공격 횟수 ì—­ì‹œ 하나 줄어들게 ë˜ê³ , ì´ë™ ì†ë„ë„ ë°˜ìœ¼ë¡œ 줄어들며, ë¼ìš´ë“œë‹¹ 4d8ì ì˜ 피해를 입는다. 내성 êµ´ë¦¼ì— ì„±ê³µí•  경우 모든 페ë„í‹° 효과는 무시ë˜ë©°, 피해 ì—­ì‹œ ë¼ìš´ë“œë‹¹ 2d8ì ìœ¼ë¡œ 줄어들게 ëœë‹¤. ì£¼ë¬¸ì˜ íš¨ê³¼ëŠ” ìƒëŒ€ê°€ 효과 범위 밖으로 벗어나면 곧 사ë¼ì§€ì§€ë§Œ, ìƒëŒ€ëŠ” ìˆ¨ì„ ê³ ë¥´ê¸° 위해 í•œ ë¼ìš´ë“œë¥¼ 소비해야 한다.~ -@76=~질ì‹~ -@75=~산성 í­í’~ -@74=~산성 í­í’ -(ì´ë³´ì¼€ì´ì…˜) -레벨: 7 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/레벨 -시전 시간: 7 -효과 범위: 24 피트 반경 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ë‚´ì— ì‚°ì„±ë¹„ë¥¼ 내리게 한다. ì´ê²ƒì€ ì²˜ìŒ 3ë¼ìš´ë“œ ë™ì•ˆ 매 ë¼ìš´ë“œë§ˆë‹¤ 1d4 ì ì˜ 피해를 주고, ë‹¤ìŒ 3ë¼ìš´ë“œ ë™ì•ˆì—는 1d6 ì ì˜ 피해를 주며, ê·¸ 후로는 매 ë¼ìš´ë“œë§ˆë‹¤ 1d8 ì ì˜ 피해를 준다. ì‚°ì´ í”¼ë¶€ì— ë¬»ì–´ìžˆê¸° ë•Œë¬¸ì— íš¨ê³¼ 범위를 벗어난다고 í•´ë„ í”¼í•´ë¥¼ 멈출 수는 없으며, 산성 í­í’ ì£¼ë¬¸ì´ ì‹œì „ë  ë•Œ 효과 범위 ì•ˆì— ìžˆì—ˆë˜ ëª¨ë“  ìƒëª…체는 ì£¼ë¬¸ì˜ íš¨ê³¼ê°€ ëë‚  때까지 ê³„ì† í”¼í•´ë¥¼ 입는다. êµ¬ë¦„ì— ë§žì€ ìƒëª…체는 ì´í›„ 매 ë¼ìš´ë“œë§ˆë‹¤ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•  수 있으며, 성공하면 ê·¸ ë¼ìš´ë“œ ë™ì•ˆë§Œ ì ˆë°˜ì˜ í”¼í•´ë¥¼ 입는다.~ -@73=~산성 í­í’~ -@72=~íŠ¸ë¡¤ì˜ ê°•ì¸í•¨~ -@71=~íŠ¸ë¡¤ì˜ ê°•ì¸í•¨ -(네í¬ë¡œë§¨ì‹œ) -레벨: 6 -시전 거리: 0 -ì§€ì† ì‹œê°„: 2 í„´ -시전 시간: 6 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì—게 트롤과 ê°™ì€ íƒ„ë ¥ì„ ì£¼ë©°, 매 ë¼ìš´ë“œê°„ 5ì ì˜ 피해를 재ìƒì‹œí‚¬ 수 있게 í•´ 준다. ì´ëŠ” ê·¸ì˜ ìµœëŒ€ ìƒëª…ì  ì´ìƒìœ¼ë¡œ 회복시켜주지는 않는다.~ -@70=~íŠ¸ë¡¤ì˜ ê°•ì¸í•¨~ -@69=~스켈레톤~ -@68=~스켈레톤~ -@67=~ì˜í˜¼ì„ 먹는 ìž~ -@66=~ì˜í˜¼ì„ 먹는 ìž -(네í¬ë¡œë§¨ì‹œ) -레벨: 6 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 5 -효과 범위: 14 피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ 14피트 반경 ì•ˆì— ìžˆëŠ” 모든 살아있는 존재ì—게 3d8ì˜ í”¼í•´ë¥¼ 입힌다. ì´ í”¼í•´ë¥¼ ìž…ê³  ì£½ì€ ì¡´ìž¬ëŠ” ê·¸ 즉시 사ë¼ì§€ë©°, ê·¸ë“¤ì˜ ì •ìˆ˜ëŠ” ì¦‰ê° ë³€í˜•ë˜ì–´ 시전ìžì˜ ëª…ë ¹ì„ ë”°ë¥´ëŠ” 3HDì˜ ìŠ¤ì¼ˆë ˆí†¤ì´ ëœë‹¤. ë˜í•œ, ì´ ì£¼ë¬¸ì˜ ì‹œì „ìžëŠ” ì´ë ‡ê²Œ ì£½ì€ ìƒëª…ì²´ 하나당 +1ì˜ ë³´ë„ˆìŠ¤ë¥¼ 힘, 민첩, ê±´ê°•ì— ë°›ê²Œ ëœë‹¤. ì´ íš¨ê³¼ëŠ” 1í„´ ë™ì•ˆ 지ì†ëœë‹¤. ì˜í˜¼ì„ 먹는 ìžëŠ” ì–¸ë°ë“œ, 주조물, í˜¹ì€ ì •ë ¹ ìƒëª…ì²´ì—게는 효과가 없다.~ -@65=~ì˜í˜¼ì„ 먹는 ìž~ -@64=~ë¼ˆì˜ ë‹¤íŠ¸ +3~ -@63=~ë¼ˆì˜ ë‹¤íŠ¸~ -@62=~ë¼ˆì˜ ë‹¤íŠ¸~ -@61=~ë¼ˆì˜ ë‹¤íŠ¸ -(네í¬ë¡œë§¨ì‹œ) -레벨: 6 -시전 거리: 0 -ì§€ì† ì‹œê°„: 5 ë¼ìš´ë“œ -시전 시간: 5 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ 사용할 수 있으며 ì£¼ë¬¸ì´ íš¨ë ¥ì„ ë°œíœ˜í•  ë™ì•ˆì—는 장비를 해제할 수 없는 9ê°œì˜ ë‹¤íŠ¸ë¥¼ 만들어 낸다. ì´ ë‹¤íŠ¸ë“¤ì€ +3 무기ì´ë©°, 1d4ì ì˜ 피해를 입힌다. 그리고 ì´ ë‹¤íŠ¸ì— ë§žì€ ì ì€ 죽ìŒì— 대한 내성 êµ´ë¦¼ì„ êµ´ë ¤ 실패할 ë•Œì—는 2d6ì ì˜ 피해를 ë” ë°›ê²Œ ë˜ë©°, 5ë¼ìš´ë“œê°„ ê·¸ì˜ íž˜ì€ 3ì ì´ 내려간다. 시전ìžì˜ 다트 숙련ë„는, ë‹¤íŠ¸ì˜ ëª…ì¤‘ë„나 í”¼í•´ì— ê´€ì—¬í•˜ì§€ 않는다.~ -@60=~ë¼ˆì˜ ë‹¤íŠ¸~ -@59=~오틸루í¬ì˜ ë™ê²° 구체~ -@58=~오틸루í¬ì˜ ë™ê²° 구체 -(얼터레ì´ì…˜,ì´ë³´ì¼€ì´ì…˜) -레벨: 6 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 6 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ 레벨당 1d4+2ì ì˜ 냉기 피해를 주는 ëƒ‰ê¸°ì˜ ë³´ì£¼ë¥¼ í•œ ìƒëª…ì²´ì—게 발사한다. 만약 목표가 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´, 그는 보주를 피한 것으로 간주ë˜ì–´ ì–´ë–¤ í”¼í•´ë„ ë°›ì§€ 않는다.~ -@57=~오틸루í¬ì˜ ë™ê²° 구체~ -@56=~í™”ì—¼ì˜ ìž¥ë§‰~ -@55=~í™”ì—¼ì˜ ìž¥ë§‰ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 5 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/2 레벨 (특수) -시전 시간: 5 -효과 범위: 12 피트 반경 -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•œ í•˜ë‚˜ì˜ ìƒëª…체를 불꽃 ì†ì—ì„œ 태워버린다. ê·¸ ìƒëª…체는 ë¶ˆì´ ë¶™ì–´ 매 ë¼ìš´ë“œë§ˆë‹¤ 2d6ì ì˜ 화염 피해를 입으며, 불타고 있는 ìƒëª…체로부터 ë¶ˆê½ƒì´ ë°©ì¶œí•˜ì—¬ 12피트 ë‚´ì— ìžˆëŠ” 모든 ìƒëª…체는 ë°©ì¶œëœ ë¶ˆê½ƒìœ¼ë¡œ ì¸í•´ 1d4ì ì˜ 화염 피해를 입는다. í¬ìƒìžì˜ ë¶ˆê½ƒì— ë§žì€ ìžë“¤ ë˜í•œ í™”ì—¼ì˜ ìž¥ë§‰ì„ í”¼í•˜ê¸° 위해 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. 만약 시전ìžì™€ 대ìƒì´ ë”는 ê°™ì€ ì§€ì—­ì— ìžˆì§€ 않게 ë˜ë©´ í™”ì—¼ì˜ ìž¥ë§‰ì€ ì‚¬ê·¸ëŸ¬ì§„ë‹¤. ì´ ì£¼ë¬¸ì€ íŠ¸ë¡¤ 무리와 서리 ìƒëŸ¬ë§¨ë”를 분산시키는 ë° íŠ¹ížˆ 유용하다.~ -@54=~í™”ì—¼ì˜ ìž¥ë§‰~ -@53=~~ -@52=~산성 구체~ -@51=~산성 구체 -(컨저레ì´ì…˜) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 특수 -시전 시간: 4 -효과 범위: 9 피트 반경 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ë¹›ë‚˜ëŠ” ì—메랄드빛 산성 구체를 소환해, 시전ìžê°€ 가리키는 범위 ë‚´ì˜ ëª©í‘œì—게 날아가게 만든다. 구체가 ëª©í‘œì— ë„달하면 í­ë°œí•˜ë©° í¬ìƒìžë¥¼ 강력한 산으로 ë’¤ë®ëŠ”다. í¬ìƒìžëŠ” 시전ìžì˜ 레벨당 1d4ì ì˜ 산성 피해를 입게 ë˜ë©°, 최대 12d4ì ê¹Œì§€ 올ë¼ê°„다. ì²˜ìŒ í”¼í•´ë¥¼ ìž…ì€ ë‹¤ìŒ, í¬ìƒìžëŠ” ë” ì´ìƒì˜ 피해를 피할 수 있ì„ì§€ì— ëŒ€í•´ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì•¼ 한다. 만약 실패하면, í¬ìƒìžëŠ” ë‹¤ìŒ ë¼ìš´ë“œì—ë„ ê³„ì† ì‚°ì„± 피해를 입게 ëœë‹¤. ë‹¤ìŒ ë¼ìš´ë“œì˜ 피해는 첫 ë¼ìš´ë“œì˜ 피해ì—ì„œ 매 ë¼ìš´ë“œë§ˆë‹¤ 주사위가 2개씩 작아진다. 예를 들어, 8레벨 마법사가 ì´ ì£¼ë¬¸ì„ ì‹œì „í•˜ì—¬ 첫 번째 ë¼ìš´ë“œì— 8d4ì ì˜ 피해를 입혔다면, ë‘ ë²ˆì§¸ ë¼ìš´ë“œì—는 6d4ì ì˜ 피해를 ìž…íž ê²ƒì´ë©°, 세 번째 ë¼ìš´ë“œì—는 4d4ì , 네 번째 ë¼ìš´ë“œì—는 2d4ì ì˜ 피해를 ìž…íž ê²ƒì´ë‹¤. 그리고 ì£¼ë¬¸ì€ ë‹¤ì„¯ 번째 ë¼ìš´ë“œì—ì„œ ë난다. 첫 ë¼ìš´ë“œ ì´í›„ í¬ìƒìžëŠ” 매 ë¼ìš´ë“œë§ˆë‹¤ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì„œ ë” ì´ìƒì˜ 피해를 방지할 수 있다. -산성 구체는 ë˜í•œ 최초 목표로부터 9피트 반경까지 확산ëœë‹¤. 확산 범위 ì•ˆì— ìžˆëŠ” 모든 ìƒëª…체는 ì„í™”/ë³€ì´ì— 대한 내성 êµ´ë¦¼ì„ í•´ì„œ 실패할 경우 ì‹œì „ìž 5레벨당 1d4ì ì˜ 피해를 입게 ëœë‹¤. í™•ì‚°ëœ ê³µê²©ì€ ì§€ì†ì ì¸ 피해를 입히지 않는다.~ -@50=~산성 구체~ -@49=~실청~ -@48=~외침~ -@47=~외침 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 4 -시전 거리: 0 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 1 -효과 범위: 35 피트 15ë„ì˜ ì›ë¿” -내성 굴림: 특수 -ì™¸ì¹¨ì€ ë§ˆë²•ì‚¬ì—게 무시무시한 ëª©ì†Œë¦¬ì˜ íž˜ì„ ì£¼ëŠ” 주문ì´ë‹¤. ì´ë¥¼ 사용하면, 마법사는 35 피트 범위 ë‚´ì—, 귀가 멀어버릴 ì •ë„ì˜ ê³ í•¨ì„ ì§€ë¥¼ 수 있게 ëœë‹¤. ì´ ë²”ìœ„ ë‚´ì— ë“¤ì–´ê°„ 모든 존재는 9ë¼ìš´ë“œê°„ 귀가 멀게 ë˜ë©°, 4d6ì ì˜ 피해를 입는다. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ 귀는 멀지 않게 ë˜ë©°, 피해 ì—­ì‹œ 반으로 줄어들게 ëœë‹¤.~ -@46=~외침~ -@45=~모ë´ì¹´ì´ë„¨ì˜ 역장 발사체~ -@44=~모ë´ì¹´ì´ë„¨ì˜ 역장 발사체 -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 4 -효과 범위: 5 피트 반경 -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ë¹›ë‚˜ëŠ” ë§ˆë²•ì  ì—너지 구체를 만들어 ë‚´ì–´, 마치 마법 화살 주문처럼 ìƒëŒ€ì—게 날아가게 만들며, ì´ëŠ” 절대 빗나가지 않는다. 마법사는 7레벨ì—ì„œ í•˜ë‚˜ì˜ ë°œì‚¬ì²´ë¥¼ 만들 수 있으며, ê·¸ ì´í›„ 3ë ˆë²¨ì´ ì¦ê°€í•  때마다 í•˜ë‚˜ì”©ì˜ ë°œì‚¬ì²´ë¥¼ ë” ë§Œë“¤ 수 있다. 즉, 10레벨ì—ì„œ 2개를, 13레벨ì—ì„œ 3개를, 16레벨ì—ì„œ 4개를 만들 수 있으며, ì´ë ‡ê²Œ 7개까지 발사체를 만들 수 있다. 시전ìžê°€ 25ë ˆë²¨ì— ì´ë¥´ë©´, ìµœëŒ€ì¸ 7ê°œì˜ ë°œì‚¬ì²´ë¥¼ 만들 수 있다. ê°ê°ì˜ 발사체는 2d4ì ì˜ 피해를 입히며, 명중 ì´í›„ì—는 í­ë°œí•˜ì—¬ 시전ìžì˜ 레벨 당 1ì ì”©ì˜ 피해를 추가로 입힌다. 예를 들어, 12레벨 마법사가 ì´ ì£¼ë¬¸ì„ ì‚¬ìš©í•  경우, 2ê°œì˜ ë°œì‚¬ì²´ë¥¼ 불러낼 수 있다. ì´ ë°œì‚¬ì²´ëŠ” ê°ê° 2d4+12ì ì˜ 피해를 ìž…íž ê²ƒì´ë‹¤. ëª…ì¤‘ëœ ìƒëª…체는 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•´ì„œ, 성공할 경우 í­ë°œì— ì˜í•œ 피해를 무효화할 수 있지만, 발사체 ìžì²´ê°€ 주는 2d4ì ì˜ 피해는 내성 êµ´ë¦¼ì„ í—ˆìš©í•˜ì§€ 않는다. 1레벨 마법사 주문 방패는 ì´ ì—­ìž¥ 발사체를 피해 ì—†ì´ í¡ìˆ˜í•´ì¤€ë‹¤. ì´ëŠ” í­ë°œì— ì˜í•œ í”¼í•´ë„ ì—†ì•  준다.~ -@43=~모ë´ì¹´ì´ë„¨ì˜ 역장 발사체~ -@42=~ì ˆë§~ -@41=~스턴ë¨~ -@40=~ê°ì • 조종, ì ˆë§~ -@39=~ê°ì • 조종, ì ˆë§ -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸/현혹) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1í„´ -시전 시간: 4 -효과 범위: 15피트 반경 -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ì•ˆì— ì ˆë§ì˜ ê°ì •ì„ 불러ì¼ìœ¼í‚¨ë‹¤. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•œ 모든 ì ì€ 1í„´ ë™ì•ˆ 가만히 서서 ì•„ë¬´ê²ƒë„ í•˜ì§€ ì•Šì„ ê²ƒì´ë‹¤. ì´ ì£¼ë¬¸ì€ ì‹œì „ë˜ì—ˆì„ ì‹œ 범위 ì•ˆì— ìžˆëŠ” ê°ì • 조종, í¬ë§ì˜ 효과를 ìƒì‡„한다.~ -@38=~ê°ì • 조종, ì ˆë§~ -@37=~ê³µí™©ì— ë¹ ì§~ -@36=~ê°ì • 조종, ê³µí¬~ -@35=~ê°ì • 조종, ê³µí¬ -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸/현혹) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 5ë¼ìš´ë“œ -시전 시간: 4 -효과 범위: 15피트 반경 -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ì•ˆì— ê³µí¬ì˜ ê°ì •ì„ 불러ì¼ìœ¼í‚¨ë‹¤. ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•œ 모든 ì ì€ 5ë¼ìš´ë“œ ë™ì•ˆ ë„ë§ì¹œë‹¤. ì´ ì£¼ë¬¸ì€ ì‹œì „ë˜ì—ˆì„ ì‹œ 범위 ì•ˆì— ìžˆëŠ” ê°ì • 조종, ìš©ê¸°ì˜ íš¨ê³¼ë¥¼ ìƒì‡„한다.~ -@34=~ê°ì • 조종, ê³µí¬~ -@33=~ê°ì • 조종, í¬ë§~ -@32=~ê°ì • 조종, í¬ë§ -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸/현혹) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1시간 -시전 시간: 4 -효과 범위: 15피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ì•ˆì— í¬ë§ì˜ ê°ì •ì„ 불러ì¼ìœ¼í‚¨ë‹¤. ì£¼ë¬¸ì— ì˜í–¥ë°›ëŠ” 모든 ìƒëª…체는 사기가 오르고 내성 굴림, 명중, í”¼í•´ì— +2ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받는다. ì´ ì£¼ë¬¸ì€ ì‹œì „ë˜ì—ˆì„ ì‹œ 범위 ì•ˆì— ìžˆëŠ” 모든 사기 저하 효과를 제거한다.~ -@31=~ê°ì • 조종, í¬ë§~ -@30=~ê°ì • 조종, 용기~ -@29=~ê°ì • 조종, 용기 -(ì¸ì±ˆíŠ¸ë¨¼íŠ¸/현혹) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1시간 -시전 시간: 4 -효과 범위: 15피트 반경 -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ íš¨ê³¼ 범위 ì•ˆì— ìš©ê¸°ì˜ ê°ì •ì„ 불러ì¼ìœ¼í‚¨ë‹¤. ì£¼ë¬¸ì— ì˜í–¥ë°›ëŠ” 모든 ìƒëª…체는 ëª…ì¤‘ì— +1, í”¼í•´ì— +3ì˜ ë³´ë„ˆìŠ¤ë¥¼ 받고, +5ì ì˜ (최대 ìƒëª…ì ì„ 초과해 가질 수 있는) ìž„ì‹œ ìƒëª…ì ì„ 얻게 ëœë‹¤. ì´ ì£¼ë¬¸ì€ ì‹œì „ë˜ì—ˆì„ ì‹œ 범위 ì•ˆì— ìžˆëŠ” 모든 ê³µí¬ íš¨ê³¼ë¥¼ 제거한다.~ -@28=~ê°ì • 조종, 용기~ -@27=~ê´‘í­í™”~ -@26=~ë²¨í‹´ì˜ ë¶ˆíƒ€ëŠ” 피~ -@25=~ë²¨í‹´ì˜ ë¶ˆíƒ€ëŠ” 피 -(네í¬ë¡œë§¨ì‹œ) -레벨: 4 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 1 ë¼ìš´ë“œ/2 레벨 -시전 시간: 4 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 무시 -ì´ ì£¼ë¬¸ì€ ëª©í‘œì˜ í”¼ë¥¼ 불로 바꾸어 매 ë¼ìš´ë“œë§ˆë‹¤ 3d4ì ì˜ 피해를 입히고, í¬ìƒìžëŠ” 고통 ë•Œë¬¸ì— ê´‘í­í™”ëœë‹¤. 목표는 매 ë¼ìš´ë“œë§ˆë‹¤ ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì„ í•œë‹¤. 만약 성공하면 피해와 ê´‘í­í™” ìƒíƒœëŠ” 사ë¼ì§„다. ì´ ì£¼ë¬¸ì€ ì–¸ë°ë“œë‚˜ 피가 없는 다른 ì°¨ì›ì˜ ìƒëª…ì²´(예를 들어 ì •ë ¹ 등)ì—게는 ìž‘ë™í•˜ì§€ 않는다. 만약 ë¶ˆì— ì €í•­ë ¥ì´ ìžˆëŠ” ìƒëª…ì²´ë¼ë©´, ì´ ì£¼ë¬¸ì˜ í”¼í•´ëŠ” ê°ì†Œí•˜ê±°ë‚˜ ë¬´ì‹œë  ê²ƒì´ë‹¤.~ -@24=~ë²¨í‹´ì˜ ë¶ˆíƒ€ëŠ” 피~ -@23=~ë¶•ê´´ì˜ ì°½~ -@22=~ë¶•ê´´ì˜ ì°½ -(ì¸ë³´ì¼€ì´ì…˜) -레벨: 3 -시전 거리: 100 피트 -ì§€ì† ì‹œê°„: 순간 -시전 시간: 3 -효과 범위: 특수 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ ì—­ìž¥ìœ¼ë¡œ ëœ ì°½ì„ ë§Œë“¤ì–´ ë‚´ì–´, 시전ìžê°€ 지정한 방향으로 100피트까지 ë‚ ë ¤ 보낸다. ì´ ì°½ì˜ ê²½ë¡œì— ìžˆëŠ” 모든 ìƒëª…체는 5d4ì ì˜ 부수기 피해를 입게 ë˜ë©°, 시전ìžì˜ 레벨당 2ì ì˜ 피해를 ë” ìž…ê²Œ ëœë‹¤(최대 +30까지). í¬ìƒìžëŠ” ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì„±ê³µí•˜ë©´ ì ˆë°˜ì˜ í”¼í•´ë¥¼ 입는다.~ -@21=~ë¶•ê´´ì˜ ì°½~ -@20=~기절함~ -@19=~ì–¼ìŒ ì°½~ -@18=~ì–¼ìŒ ì°½ -(ì´ë³´ì¼€ì´ì…˜) -레벨: 3 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 3 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: 특수 -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžê°€ ì„ íƒí•œ 목표를 향해 ì–¼ìŒìœ¼ë¡œ 만들어진 ë§ˆë²•ì˜ ì°½ì„ ë°œì‚¬í•©ë‹ˆë‹¤. ì°½ì€ ìžë™ì ìœ¼ë¡œ 명중하여 5d6ì ì˜ 피해를 입힙니다. 목표는 ì£¼ë¬¸ì— ëŒ€í•œ 내성 êµ´ë¦¼ì— ì‹¤íŒ¨í•  경우 3 ë¼ìš´ë“œ ë™ì•ˆ 스턴ë©ë‹ˆë‹¤.~ -@17=~ì–¼ìŒ ì°½~ -@16=~민첩 수정~ -@15=~ê³ ì–‘ì´ì˜ 우아함~ -@14=~ê³ ì–‘ì´ì˜ 우아함 -(얼터레ì´ì…˜) -레벨: 2 -시전 거리: ì ‘ì´‰ -ì§€ì† ì‹œê°„: 1 시간/레벨 -시전 시간: 2 -효과 범위: í•œ ìƒëª…ì²´ -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ë§ˆë²•ì ìœ¼ë¡œ 대ìƒì˜ ë¯¼ì²©ì„ ì¦ê°€ì‹œì¼œì¤€ë‹¤. ê·¸ ì–‘ì€ ëŒ€ìƒì˜ í´ëž˜ìŠ¤ì— ì˜í•´ ê²°ì •ëœë‹¤. ì‹œí”„ë“¤ì€ 1d8ì ì„ 얻게 ë˜ë©°, 파ì´í„°ë‚˜ ë©”ì´ì§€ëŠ” 1d6ì ì„, í´ë ˆë¦­ì€ 1d4ì ì„ 얻는다. ê³ ì–‘ì´ì˜ ìš°ì•„í•¨ì€ ëŒ€ìƒì˜ ë¯¼ì²©ì„ 20ì´ìƒìœ¼ë¡œ 올려주지는 못한다.~ -@13=~ê³ ì–‘ì´ì˜ 우아함~ -@12=~ë°ì¹´ìŠ¤í…Œì´ë¸Œ~ -@11=~ë°ì¹´ìŠ¤í…Œì´ë¸Œ~ -@10=~ë°ì¹´ìŠ¤í…Œì´ë¸Œ~ -@9=~ë°ì¹´ìŠ¤í…Œì´ë¸Œ -(ì´ë³´ì¼€ì´ì…˜) -레벨: 2 -시전 거리: 0 -ì§€ì† ì‹œê°„: 3 ë¼ìš´ë“œ + 1 ë¼ìš´ë“œ/레벨 -시전 시간: 2 -효과 범위: ì‹œì „ìž -내성 굴림: ì—†ìŒ -ì´ ì£¼ë¬¸ì€ ì‹œì „ìžì˜ ì†ì— ì—­ìž¥ì˜ ìŠ¤íƒœí”„ê°€ 나타나게 한다. ì´ ìŠ¤íƒœí”„ëŠ” 마법 무기로 íŒì •í•˜ë©°, 명중시 1-6ì ì˜ 피해를 입히고, ì¼ë°˜ ë¬´ê¸°ì— ë©´ì—­ì¸ ìƒë¬¼ì¡°ì°¨ë„ 공격할 수 있다. 그러나 ì´ ë¬´ê¸°ëŠ” 스태프ì´ë¯€ë¡œ, 시전ìžê°€ 스태프 무기 ê¸°ëŠ¥ì´ ì—†ë‹¤ë©´ 페ë„티를 받고 공격해야 한다. ì´ ìŠ¤íƒœí”„ëŠ” ë˜í•œ ê³µê²©ì„ ëª…ì¤‘ì‹œí‚¬ 때마다 목표ì—게서 1-2ì ì˜ ìƒëª…ì ì„ í¡ìˆ˜í•˜ëŠ” ëŠ¥ë ¥ì´ ìžˆë‹¤. ì´ ìƒëª…ì ì€ 시전ìžì˜ ìƒëª…ì ì— ë”해지지만, ì´ë¯¸ ìž…ì€ í”¼í•´ë¥¼ 치료할 수 ìžˆì„ ë¿ ìƒëª…ì ì˜ 최대치를 ì •ìƒì ì¸ 수준 ì´ìƒìœ¼ë¡œ 올려주지는 못한다.~ -@8=~ë°ì¹´ìŠ¤í…Œì´ë¸Œ~ -@7=~스ë‹ë¡ì˜ 눈뭉치 ë”미 -(ì´ë³´ì¼€ì´ì…˜) -레벨: 2 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 2 -효과 범위: 30 피트 반경 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ ì‹œì•¼ ë‚´ì˜ í•œ 지ì ì— ëˆˆë­‰ì¹˜ì˜ ëŒí’ì„ ì¼ìœ¼í‚¨ë‹¤. ì´ ëˆˆë­‰ì¹˜ë“¤ì€ íš¨ê³¼ 범위 ë‚´ì˜ ëª¨ë“  ê²ƒì„ ë§žì¶”ë©°, 시전ìžì˜ 레벨 당 1d3ì ì˜ 냉기 피해를 입히고, 최대 8ë ˆë²¨ì— 8d3ì ì˜ 피해를 입힌다. ë¶ˆì„ ì‚¬ìš©í•˜ê±°ë‚˜ 불ì—ì„œ 사는 ìƒëª…ì²´ì—게는 레벨 당 1d6ì ì˜ 냉기 피해를 입히며, 최대 8ë ˆë²¨ì— 8d6ì ì˜ 피해를 입힌다.~ -@6=~~ -@5=~스ë‹ë¡ì˜ 눈뭉치 ë”미~ -@4=~스ë‹ë¡ì˜ 눈뭉치 ë”미 -(ì´ë³´ì¼€ì´ì…˜) -레벨: 2 -시전 거리: 시전ìžì˜ 시야 ë‚´ -ì§€ì† ì‹œê°„: 순간 -시전 시간: 2 -효과 범위: 30 피트 반경 -내성 굴림: 1/2 -ì´ ì£¼ë¬¸ì€ ì‹œì•¼ ë‚´ì˜ í•œ 지ì ì— ëˆˆë­‰ì¹˜ì˜ ëŒí’ì„ ì¼ìœ¼í‚¨ë‹¤. ì´ ëˆˆë­‰ì¹˜ë“¤ì€ íš¨ê³¼ 범위 ë‚´ì˜ ëª¨ë“  ê²ƒì„ ë§žì¶”ë©°, 시전ìžì˜ 레벨 당 1d3ì ì˜ 냉기 피해를 입히고, 최대 8ë ˆë²¨ì— 8d3ì ì˜ 피해를 입힌다. ë¶ˆì„ ì‚¬ìš©í•˜ê±°ë‚˜ 불ì—ì„œ 사는 ìƒëª…ì²´ì—게는 레벨 당 1d6ì ì˜ 냉기 피해를 입히며, 최대 8ë ˆë²¨ì— 8d6ì ì˜ 피해를 입힌다.~ -@3=~~ -@2=~스ë‹ë¡ì˜ 눈뭉치 ë”미~ -@1=~주문서~ diff --git a/iwdification/dw/copyover/tra/pl_PL/iwdspells.tra b/iwdification/dw/copyover/tra/pl_PL/iwdspells.tra deleted file mode 100644 index a2efd4f..0000000 --- a/iwdification/dw/copyover/tra/pl_PL/iwdspells.tra +++ /dev/null @@ -1,1218 +0,0 @@ -@375=~Pieśń wojenna Sith: Premie do Klasy Pancerza i Regeneracja~ -@374=~„Pieśń wojenna Sith†-Wszyscy sojusznicy znajdujÄ…cy siÄ™ w promieniu 10 metrów otrzymujÄ… premiÄ™ +2 do Klasy Pancerza, +10% do odpornoÅ›ci na obrażenia sieczne, kÅ‚ute, obuchowe oraz pociski, a ponadto zyskujÄ… zdolność regeneracji 2 punktów życia na rundÄ™.~ -@373=~Pieśń wojenna Sith~ -@372=~Oczarowany~ -@371=~TÄ™sknota Syreny: Oczarowuje istoty~ -@370=~„TÄ™sknota Syreny†-Wszyscy wrogowie znajdujÄ…cy siÄ™ w promieniu 10 metrów muszÄ… wykonać rzut obronny przeciw czarom lub zostanÄ… oczarowani, dziÄ™ki czemu nie bÄ™dÄ… w stanie podjąć żadnej akcji, dopóki nie upÅ‚ynie jedna runda lub nie otrzymajÄ… obrażeÅ„.~ -@369=~TÄ™sknota Syreny~ -@368=~Pieśń Kaudich: Odporność na ataki oparte na dźwiÄ™ku~ -@367=~„Pieśń Kaudich†-Wszyscy sojusznicy znajdujÄ…cy siÄ™ w zasiÄ™gu 10 metrów otrzymujÄ… 50% szans na zniwelowanie efektów dziaÅ‚ania takich czarów jak: Cisza, Krzyk, Wielki krzyk, Rozkaz, Potężniejszy rozkaz lub innych ataków opartych na dźwiÄ™ku.~ -@366=~Pieśń Kaudich~ -@365=~Melodia Tymory: Premie do Szczęścia i UmiejÄ™tnoÅ›ci~ -@364=~„Melodia Tymory†-Wszyscy sojusznicy znajdujÄ…cy siÄ™ w zasiÄ™gu 10 metrów otrzymujÄ… premiÄ™ +1 do Szczęścia, +3 do rzutów obronnych, +10 do Wiedzy, a także +10% do wszystkich zdolnoÅ›ci zÅ‚odziejskich.~ -@363=~Melodia Tymory~ -@362=~Opowieść o Curranie Mocnym Sercu: Odporność na strach~ -@361=~„Opowieść o Curranie Mocnym Sercu†-Wszyscy sojusznicy znajdujÄ…cy siÄ™ w zasiÄ™gu 10 metrów zyskujÄ… na czas trwania pieÅ›ni niewrażliwość na strach, a ponadto każdy dziaÅ‚ajÄ…cy na nich w danej chwili efekt zwiÄ…zany ze strachem zostaje natychmiast zneutralizowany.~ -@360=~Opowieść o Curranie Mocnym Sercu~ -@359=~Ballada o Trzech Bohaterach: Premie do walki~ -@358=~„Ballada o Trzech Bohaterach†-Wszyscy sojusznicy znajdujÄ…cy siÄ™ w zasiÄ™gu 10 metrów otrzymujÄ… premiÄ™ +1 do testów trafienia, obrażeÅ„ oraz wszystkich rzutów obronnych.~ -@357=~Ballada o Trzech Bohaterach~ -@356=~Psalm -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 2 -Sfera: Walka -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 9 -Obszar dziaÅ‚ania: w promieniu 20 metrów -Rzut obronny: brak -Po wypowiedzeniu słów Psalmu na kapÅ‚ana i jego sprzymierzeÅ„ców spada szczególna Å‚aska, powodujÄ…c jednoczeÅ›nie przykre konsekwencje poÅ›ród jego wrogów. ZaklÄ™cie to sprawia, że wszyscy sojusznicy kapÅ‚ana, znajdujÄ…cy siÄ™ w obszarze dziaÅ‚ania czaru, otrzymujÄ… premiÄ™ +1 do testów ataku, minimalnej wartoÅ›ci podczas testów obrażeÅ„ oraz do rzutów obronnych. Ponadto, kostka obrażeÅ„ dla wszystkich efektów, poza bazowymi obrażeniami broni, zostaje obniżona o 1. PrzykÅ‚adowo, ognista kula zadajÄ…ca normalnie 6k6 obrażeÅ„, zada w zamian 6k5 obrażeÅ„, zaÅ› pÅ‚onÄ…cy miecz dÅ‚ugi zadajÄ…cy 1k8 +2 obrażeÅ„ siecznych plus 1k3 obrażeÅ„ od ognia, zada zamiast tego 1k8 +2 obrażeÅ„ siecznych plus 1k2 obrażeÅ„ od ognia. Wrogowie kapÅ‚ana bÄ™dÄ… cierpieć skutki przeciwnego efektu. -Wielokrotne rzucenie Psalmu nie bÄ™dzie powodować kumulowanie siÄ™ efektów jego dziaÅ‚ania. Czar ten wymaga od kapÅ‚ana dość dużej koncentracji, tak wiÄ™c na czas jego trwania nie może on rzucać żadnych innych zaklęć, a prÄ™dkość jego poruszania siÄ™ spada o poÅ‚owÄ™.~ -@355=~Psalm~ -@354=~[.]~ -@353=~Nudnożuk~ -@352=~Nudnożuk~ -@351=~Å»uk kanonier~ -@350=~Å»uk kanonier~ -@349=~Gigantyczny owad -(Przemiany) -Poziom: 4 -Sfera: ZwierzÄ™ta -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 8 godzin -Czas rzucania: 7 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -ZaklÄ™cie to przywoÅ‚uje 2-3 nudnożuków lub żuków kanonierów, które bÄ™dÄ… walczyć u boku czarujÄ…cego. Å»uki bÄ™dÄ… posÅ‚uszne przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zabite.~ -@348=~Gigantyczny owad~ -@347=~Zadawanie krytycznych ran -(Nekromancja) -Poziom: 5 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 8 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia i dotkniÄ™ciu ofiary, kapÅ‚an zadaje jej 27 obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Czar nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Ponadto, może zostać rzucony tylko przez postacie o zÅ‚ym charakterze.~ -@346=~Zadawanie krytycznych ran~ -@345=~Zadawanie poważnych ran -(Nekromancja) -Poziom: 4 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia i dotkniÄ™ciu ofiary, kapÅ‚an zadaje jej 17 obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Czar nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Ponadto, nie może zostać rzucony przez postacie o dobrym charakterze.~ -@344=~Zadawanie poważnych ran~ -@343=~Wyssano dwa poziomy~ -@342=~Wyssanie energii -(Nekromancja) -Poziom: 7 -Sfera: Nekromancja -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: staÅ‚y -Czas rzucania: 3 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Rzucenie tego czaru powoduje otwarcie pomostu pomiÄ™dzy rodzimÄ… sferÄ… rzucajÄ…cego czar a sferÄ… negatywnej energii. CzarujÄ…cy speÅ‚nia rolÄ™ przewodnika pomiÄ™dzy obiema sferami, wysysajÄ…c z ofiary życie i przenoszÄ…c je do sfery negatywnej energii, co w konsekwencji pozbawia jÄ… dwóch poziomów doÅ›wiadczenia. Cel zaklÄ™cia na staÅ‚e traci poziomy, koÅ›ci wytrzymaÅ‚oÅ›ci, punkty życia i umiejÄ™tnoÅ›ci. Poziomy te mogÄ… zostać przywrócone tylko za pomocÄ… kapÅ‚aÅ„skiego czaru zaklÄ™cia Przywrócenie. Czar ten nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne.~ -@341=~Wyssanie energii~ -@340=~OplÄ…tanie~ -@339=~Pokraczny kopiec~ -@338=~Pokraczny kopiec~ -@337=~MyÅ›liwy -(Sprowadzanie) -Poziom: 7 -Sfera: RoÅ›liny -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 8 godzin -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten tworzy dwa pokraczne kopce o 11KW. Istoty te chÄ™tnie pomagajÄ… czarujÄ…cemu w walce lub dowolnych innych zadaniach, które im zleci, pod warunkiem, że bÄ™dÄ… je w stanie wykonać.~ -@336=~MyÅ›liwy~ -@335=~MgÅ‚a Eldath -(Inwokacje) -Poziom: 7 -Sfera: Å»ywioÅ‚y -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 9 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: brak -ZaklÄ™cie to pokrywa caÅ‚y obszar dziaÅ‚ania srebrzystoniebieskÄ… mgÅ‚Ä…. Każda istota, która znajdzie siÄ™ w obrÄ™bie mgÅ‚y, zostaje uleczona z chorób i zatrucia, a także odzyskuje 25 punktów życia.~ -@334=~MgÅ‚a Eldath~ -@333=~WiÄ™ksza tarcza Lathandera -(Sprowadzanie) -Poziom: 7 -Sfera: Strażnicza -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 3 rundy -Czas rzucania: 9 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Czar ten zapewnia wskazanej istocie 100% odpornoÅ›ci na magiÄ™ i caÅ‚kowitÄ… niewrażliwość na otrzymywane obrażenia. Oba te efekty utrzymujÄ… siÄ™ przez caÅ‚y czas jego dziaÅ‚ania. ZaklÄ™cie to nie ma wpÅ‚ywu na istoty o zÅ‚ym charakterze i może być rzucone jedynie przez istoty o charakterze dobrym.~ -@332=~WiÄ™ksza tarcza Lathandera~ -@331=~Zniszczenie -(Nekromancja) -Poziom: 7 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 9 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: specjalny -ZaklÄ™cie to bÅ‚yskawicznie niszczy cel, rozbijajÄ…c go na drobne kawaÅ‚ki. Ofiara może ratować siÄ™ rzutem obronnym przeciw Å›mierci z modyfikatorem -4; w przypadku powodzenia nie ginie, lecz otrzymuje 8k6 magicznych obrażeÅ„. Czar ten może być używany tylko przez postacie o zÅ‚ym charakterze. Należy pamiÄ™tać, że postać zaatakowana tym zaklÄ™ciem, nie może zostać przywrócona do życia za pomocÄ… czaru Wskrzeszenie czy Zmartwychwstanie.~ -@330=~Zniszczenie~ -@329=~ZaklÄ™cie nie zadziaÅ‚aÅ‚o~ -@328=~Nietykalna Å›wiÄ™tość umysÅ‚u -(Odrzucanie) -Poziom: 7 -Sfera: Ochrona -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Czar ten otacza umysÅ‚ rzucajÄ…cego barierÄ… nie do pokonania, przez co chroni go przed wypÅ‚ywami zewnÄ™trznymi. W czasie dziaÅ‚ania zaklÄ™cia, na rzucajÄ…cego nie bÄ™dÄ… miaÅ‚y wpÅ‚ywu efekty zauroczenia, zamÄ™tu, strachu, ogÅ‚upienia, unieruchomienia, snu, labiryntu, szaÅ‚u oraz odurzenia.~ -@327=~Nietykalna Å›wiÄ™tość umysÅ‚u~ -@326=~Symbol beznadziejnoÅ›ci -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 7 -Sfera: Strażnicza -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 3 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: neguje -Symbol beznadziejnoÅ›ci jest potężnym zaklÄ™ciem, które pozwala kapÅ‚anowi na umieszczeniu inskrypcji na ziemi lub innej powierzchni. Symbol pozostaje tam, dopóki jakiÅ› przeciwnik nie zbliży siÄ™ do niego zanadto, wywoÅ‚ujÄ…c tym samym wybuch, po którym wszyscy wrogowie znajdujÄ…cy siÄ™ w zasiÄ™gu dziaÅ‚ania zaklÄ™cia muszÄ… wykonać rzut obronny przeciw czarom z modyfikatorem -2, lub bÄ™dÄ… stali w miejscu, przytÅ‚oczeni chÄ™ciÄ… bezwarunkowej kapitulacji. Nie bÄ™dÄ… mogli wykonać żadnego ruchu, aby bronić siÄ™ przed nadchodzÄ…cymi atakami. W momencie rzucenia, zaklÄ™cie to niweluje dziaÅ‚anie czaru Emocje: odwaga.~ -@325=~Symbol beznadziejnoÅ›ci~ -@324=~Bóle zniszczenia~ -@323=~Symbol bólu -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 7 -Sfera: Strażnicza -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 11 tur -Czas rzucania: 3 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: neguje -Wszyscy wrogowie znajdujÄ…cy siÄ™ w promieniu 5 metrów od symbolu bólu, w momencie jego utworzenia, muszÄ… wykonać rzut obronny przeciw czarom. Niepowodzenie oznacza, że ogarnia ich obezwÅ‚adniajÄ…cy ból, w zwiÄ…zku z czym otrzymujÄ… oni karÄ™ -4 do testów ataku, -2 do ZrÄ™cznoÅ›ci oraz -2 do Klasy Pancerza.~ -@322=~Symbol bólu~ -@321=~Gniew duchowy -(Inwokacje) -Poziom: 6 -Sfera: Walka -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 2 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia kapÅ‚an staje siÄ™ przewodnikiem duchowej energii, która nastÄ™pnie wystrzeliwuje wprost z niego w czterech kierunkach, niczym bÅ‚yskawice. Wszystkie istoty znajdujÄ…ce siÄ™ na drodze bÅ‚yskawic otrzymujÄ… 4k10 magicznych obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Istoty, których charakter znajduje siÄ™ na tej samej osi moralnej (dobry, neutralny, zÅ‚y) co czarujÄ…cego, sÄ… odporne na dziaÅ‚anie tego zaklÄ™cia.~ -@320=~Gniew duchowy~ -@319=~TrÄ…ba powietrzna -(Inwokacje) -Poziom: 6 -Sfera: Å»ywioÅ‚y (powietrze) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: specjalny -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: specjalny -Czar ten tworzy w zasiÄ™gu wzroku rzucajÄ…cego niewielkÄ… trÄ…bÄ™ powietrznÄ…, która przemieszcza siÄ™ w losowym kierunku, raniÄ…c zarówno wrogów, jak i sojuszników. CzarujÄ…cy jest niewrażliwy na dziaÅ‚anie wÅ‚asnego zaklÄ™cia, podobnie jak żywioÅ‚aki i inne istoty dużych rozmiarów. Stworzenie zÅ‚apane przez trÄ…bÄ™ powietrznÄ… otrzymuje 2k8 obrażeÅ„ obuchowych i 2k8 obrażeÅ„ siecznych, a ponadto musi wykonać rzut obronny przeciw zioniÄ™ciom lub zostanie ogÅ‚uszone na dwie rundy. Istoty posiadajÄ…ce 2 lub mniej Kostek WytrzymaÅ‚oÅ›ci, ginÄ… automatycznie. TrÄ…ba powietrzna może wpÅ‚ynąć na maksymalnie osiem istot, po czym rozpÅ‚ywa siÄ™, bez dalszej szkody dla innych.~ -@318=~TrÄ…ba powietrzna~ -@317=~Tarcza entropii -(Odrzucanie) -Poziom: 6 -Sfera: Ochrona -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Po rzuceniu tego zaklÄ™cia, czarujÄ…cy zostaje otoczony ochronnym wirem energii, który blokuje lub odbija wiele ataków. Zapewnia to kapÅ‚anowi premiÄ™ +6 do Klasy Pancerza, +2 do rzutów obronnych oraz 50% odpornoÅ›ci na elektryczność, ogieÅ„, zimno i kwas. KapÅ‚an staje siÄ™ również niewrażliwy na dziaÅ‚anie czaru SÅ‚up ognia oraz wszystkich ataków pociskowych, w tym te, bÄ™dÄ…ce efektem dziaÅ‚ania zaklęć typu Magiczny pocisk. ~ -@316=~Tarcza entropii~ -@315=~Grupowe zadawanie lekkich ran -(Nekromancja) -Poziom: 5 -Sfera: Leczenie -ZasiÄ™g: 0 -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: 1/2 -Po rzuceniu tego czaru kapÅ‚an zadaje pobliskim wrogom 1k8 +1/poziom obrażeÅ„ (poÅ‚owa po rzucie obronnym przeciw czarom). Czar ten nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Nie może być używany przez postacie o dobrym charakterze.~ -@314=~Grupowe zadawanie lekkich ran~ -@313=~ZwierzÄ™cy szaÅ‚ -(Zaczarowania) -Poziom: 5 -Sfera: Walka -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 15 rund -Czas rzucania: 8 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Czar ten sprawia, że wskazanÄ… istotÄ™ przepeÅ‚nia zwierzÄ™cy szaÅ‚. Na czas dziaÅ‚ania zaklÄ™cia jej SiÅ‚a wynosi 19, a ponadto otrzymuje ona 20 punktów życia, premiÄ™ +2 do wszystkich rzutów obronnych, a jej prÄ™dkość poruszania siÄ™ wzrasta o 20%. W trakcie trwania zwierzÄ™cego szaÅ‚u traci ona zdolność do rzucania zaklęć, a ponadto, gdy tylko w zasiÄ™gu jej wzroku znajdÄ… siÄ™ jacyÅ› wrogowie, natychmiast ich atakuje, wykorzystujÄ…c do walki to, co akurat trzyma w rÄ™ku. Ponadto, w każdej rundzie dziaÅ‚ania zaklÄ™cia istnieje 5% szans, że wpadnie w niekontrolowany szaÅ‚, atakujÄ…c zarówno wrogów, jak i sojuszników.~ -@312=~ZwierzÄ™cy szaÅ‚~ -@311=~OsÅ‚ona przed nieumarÅ‚ymi -(Nekromancja) -Poziom: 5 -Sfera: OsÅ‚ony -ZasiÄ™g: 0 -Czas trwania: 1 tura -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 3 metrów -Rzut obronny: brak -Czar ten wzmacnia wpÅ‚yw kapÅ‚ana na nieumarÅ‚ych, choć jest ograniczony do obszaru, na którym ten obecnie przebywa. Dodatkowo kapÅ‚an nie może siÄ™ w trakcie jego trwania poruszać. Każdy nieumarÅ‚y, który wejdzie na obszar dziaÅ‚ania zaklÄ™cia, bÄ™dzie poddany odpÄ™dzaniu, jak w przypadku zdolnoÅ›ci kapÅ‚ana, który je rzuciÅ‚. JeÅ›li odpÄ™dzanie zakoÅ„czy siÄ™ niepowodzeniem, nieumarÅ‚y staje siÄ™ niewrażliwy na kolejne próby poczynione za pomocÄ… tego czaru, chyba że opuÅ›ci obszar jego dziaÅ‚ania i wejdzie doÅ„ ponownie.~ -@310=~OsÅ‚ona przed nieumarÅ‚ymi~ -@309=~Tarcza Lathandera -(Sprowadzanie) -Poziom: 5 -Sfera: Strażnicza -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 2 rundy -Czas rzucania: 8 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Na czas dziaÅ‚ania zaklÄ™cia, istota, na którÄ… zostaÅ‚o ono rzucone, otrzymuje caÅ‚kowitÄ… niewrażliwość na otrzymywane obrażenia. Tarcza Lathandera nie dziaÅ‚a na istoty o zÅ‚ym charakterze i nie może być używana przez postacie, które takowy posiadajÄ….~ -@308=~Tarcza Lathandera~ -@307=~RaniÄ…ce kamienie -(Przemiany, Zaczarowania) -Poziom: 5 -Sfera: Å»ywioÅ‚y (ziemia) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 12 rund -Czas rzucania: 6 -Obszar dziaÅ‚ania: w promieniu 2,5 metra -Rzut obronny: specjalny -Czar ten zmienia znajdujÄ…ce siÄ™ w polu widzenia kamienie w kolczaste twory, które zlewajÄ… siÄ™ z tÅ‚em. Każda istota, która wejdzie w obszar dziaÅ‚ania czaru, otrzymuje 2k4 obrażeÅ„ kÅ‚utych na rundÄ™ i musi wykonać rzut obronnym przeciw czarom lub jej prÄ™dkość poruszania siÄ™ zostanie obniżona o 30%.~ -@306=~RaniÄ…ce kamienie~ -@305=~SÅ‚uszny gniew wiernych -(Zaczarowania/Zauroczenia) -Poziom: 5 -Sfera: Walka -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 8 -Obszar dziaÅ‚ania: w promieniu 5,5 metra -Rzut obronny: brak -Czar ten obdarza sprzymierzeÅ„ców kapÅ‚ana swego rodzaju boskim szaleÅ„stwem, zwiÄ™kszajÄ…cym czasowo ich umiejÄ™tnoÅ›ci bojowe. Wszyscy sojusznicy kapÅ‚ana, bÄ™dÄ…cy w obszarze efektu, otrzymujÄ… na czas trwania czaru premiÄ™ +1 do testów ataku i rzutów obronnych oraz 8 dodatkowych punktów życia (które mogÄ… podnieść aktualnÄ… ich ilość poza maksymalnÄ… dla danej postaci pulÄ™). Sojusznicy posiadajÄ…cy taki sam charakter, co kapÅ‚an, otrzymujÄ… dodatkowy atak na rundÄ™ (eliminujÄ…cy wpÅ‚yw dziaÅ‚ania przyspieszenia), premiÄ™ +2 do testów ataku, obrażeÅ„ oraz rzutów obronnych, jak również zyskujÄ… niewrażliwość na zauroczenie i czary unieruchamiajÄ…ce. Każda postać bÄ™dÄ…ca pod wpÅ‚ywem SÅ‚usznego gniewu wiernych bÄ™dzie zmÄ™czona, gdy tylko zaklÄ™cie przestanie dziaÅ‚ać.~ -@304=~SÅ‚uszny gniew wiernych~ -@303=~Åšciana księżycowej poÅ›wiaty -(Inwokacje) -Poziom: 4 -Sfera: Ochrona, SÅ‚oÅ„ce -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 7 -Obszar dziaÅ‚ania: Å›ciana o dÅ‚ugoÅ›ci 2,5 metra i szerokoÅ›ci 0,5 metra -Rzut obronny: brak -Czar ten powoÅ‚uje do istnienia migoczÄ…cy gobelin bÅ‚Ä™kitno-biaÅ‚ej energii. PowstaÅ‚a w ten sposób Å›ciana jest niematerialna i nie wymaga fizycznego puntu zaczepienia, przez co można przez niÄ… z Å‚atwoÅ›ciÄ… przejść. Istoty o zÅ‚ym charakterze, które przekroczÄ… Å›cianÄ™, otrzymujÄ… 2k10 magicznych obrażeÅ„, zaÅ› nieumarli 5k10 magicznych obrażeÅ„. Istota przechodzÄ…ca przez Å›cianÄ™ może otrzymać obrażenia tylko raz.~ -@302=~Åšciana księżycowej poÅ›wiaty~ -@301=~Wachlarz cierniowy -(Przemiany) -Poziom: 4 -Sfera: RoÅ›liny -ZasiÄ™g: 10 metrów -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 3 -Obszar dziaÅ‚ania: 90° stożek o promieniu 5,5 metra -Rzut obronny: 1/2 -Czar ten tworzy wachlarz kolców, gwoździ i cierni, które wystrzeliwujÄ… z dÅ‚oni czarujÄ…cego. PokrywajÄ… one obszar stożka o promieniu 5,5 metra, zadajÄ…c 2k10 obrażeÅ„ kÅ‚utych wszystkim istotom, znajdujÄ…cym siÄ™ w obszarze dziaÅ‚ania zaklÄ™cia (rzut obronny przeciw Å›mierci zmniejsza obrażenia do 1k10).~ -@300=~Wachlarz cierniowy~ -@299=~Nieprzytomny(a)~ -@298=~Miażdżąca fala -(Inwokacje) -Poziom: 4 -Sfera: Å»ywioÅ‚y (woda) -ZasiÄ™g: 33 metry -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: specjalny -Czar ten przywoÅ‚uje szerokÄ… na 1,5 metra falÄ™, która porusza siÄ™ w kierunku wyznaczonym przez czarujÄ…cego, uderzajÄ…c z miażdżącÄ… siÅ‚Ä… wszystkich, którzy stanÄ… jej na drodze. Fala zadaje 4k10 obrażeÅ„ obuchowych, a ponadto trafione przez niÄ… istoty majÄ… 25% szans na to, że zostanÄ… ogÅ‚uszone lub 5% szans, że stracÄ… przytomność na dwie rundy. Rzut obronny przeciw zioniÄ™ciom zmniejsza obrażenia o poÅ‚owÄ™ i pozwala uniknąć efektów ogÅ‚uszenia lub utraty przytomnoÅ›ci.~ -@297=~Miażdżąca fala~ -@296=~Maczuga z gwiezdnego metalu~ -@295=~Maczuga z gwiezdnego metalu~ -@294=~Maczuga z gwiezdnego metalu -(Sprowadzanie) -Poziom: 4 -Sfera: Walka -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 3 tury -Czas rzucania: 7 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Czar ten tworzy magicznÄ… maczugÄ™, wykonanÄ… z żelaza pochodzÄ…cego z meteorytów. Zadaje ona 1k6 +2 obrażeÅ„ obuchowych, zapewnia premiÄ™ +2 do testów ataku i jest traktowana jako broÅ„ +4 na potrzeby okreÅ›lania istot, które może zranić. Modyfikatory za wysokÄ… SiÅ‚Ä™, biegÅ‚oÅ›ci i specjalizacje liczone sÄ… w normalny sposób. Maczuga zadaje dodatkowe 2k6 obrażeÅ„ obuchowych istotom nienaturalnym (nieumarÅ‚ym, żywioÅ‚akom, golemom, istotom pozaplanarnym itp.).~ -@293=~Maczuga z gwiezdnego metalu~ -@292=~Niewyczerpana wytrzymaÅ‚ość -(Nekromancja) -Poziom: 4 -Sfera: Nekromancja -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 9 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -ZaklÄ™cie to przywraca wybranej istocie wytrzymaÅ‚ość, eliminujÄ…c tym samym ciążace na niej efekty zmÄ™czenia.~ -@291=~Niewyczerpana wytrzymaÅ‚ość~ -@290=~Chmura morowego powietrza -(Przemiany) -Poziom: 4 -Sfera: Walka, Å»ywioÅ‚y (powietrze) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 4 rundy -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 4 metrów -Rzut obronny: neguje -Czar ten przeksztaÅ‚ca powietrze w promieniu 4 metrów w wywoÅ‚ujÄ…cÄ… mdÅ‚oÅ›ci szarÄ… mgÅ‚Ä™. RzucajÄ…cy, oraz istoty nieżywe, sÄ… niewrażliwe na efekty dziaÅ‚ania chmury. Istota narażona na wpÅ‚yw tego peÅ‚nego chorób powietrza musi co rundÄ™ wykonywać rzut obronny przeciw zioniÄ™ciom lub odniesie 3 magiczne obrażenia, straci 3 punkty SiÅ‚y i ZrÄ™cznoÅ›ci oraz zostanie oÅ›lepiona. Utrata cech i Å›lepota trwajÄ… przez jednÄ… turÄ™. ChmurÄ™ morowego powietrza mogÄ… rzucać jedynie postacie o zÅ‚ym charakterze.~ -@289=~Chmura morowego powietrza~ -@288=~OgÅ‚uszenie~ -@287=~Uzdrowienie~ -@286=~Åaknienie krwi -(Przemiany) -Poziom: 4 -Sfera: Walka -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 7 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Czar ten dziaÅ‚a jedynie na postać gracza lub sprzymierzone z niÄ… istoty. Po jego rzuceniu, wyznaczona istota wpada w szaÅ‚, atakujÄ…c nieustannie najbliższe stworzenie, dopóki nie padnie ono martwe, a nastÄ™pnie wybiera kolejny cel. BÄ™dÄ…c pod wpÅ‚ywem Åaknienia krwi staje siÄ™ ona niewrażliwa na zauroczenie, sen, strach, unieruchomienie, ogÅ‚uszenie, zamÄ™t, emocje, zaklÄ™cia symboli i podobne efekty. Ponadto, otrzymuje premiÄ™ +2 do testów trafienia, +3 do testów obrażeÅ„, +2 do SiÅ‚y, +10 do maksymalnej wartoÅ›ci punktów życia, a także +2 do prÄ™dkoÅ›ci poruszania siÄ™. Czar ten ma jednakże kilka wad: na czas jego dziaÅ‚ania punkty życia bÄ™dÄ…cej pod jego wpÅ‚ywem istoty sÄ… zakryte, a sama istota nie może korzystać z dobrodziejstw żadnego efektu, który by je przywracaÅ‚. Po zakoÅ„czeniu dziaÅ‚ania czaru, istota jest zmÄ™czona, a jej SiÅ‚a spada do 3 na okres dwóch tur. Czar Åaknienie krwi nie dziaÅ‚a na stworzenia o charakterze praworzÄ…dnym, jak również nie może być przez nie używany.~ -@285=~Åaknienie krwi~ -@284=~Recytacja -(Odrzucanie, Inwokacje/WywoÅ‚ywanie) -Poziom: 4 -Sfera: Walka -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 8 metrów -Rzut obronny: brak -WypowiadajÄ…c Å›wiÄ™te sÅ‚owa, kapÅ‚an obdarza bÅ‚ogosÅ‚awieÅ„stwem siebie i swoich sprzymierzeÅ„ców, siejÄ…c jednoczeÅ›nie zamÄ™t poÅ›ród swych wrogów i osÅ‚abiajÄ…c ich. Towarzysze kapÅ‚ana zyskujÄ… premiÄ™ +2 do testów ataku i rzutów obronnych, zaÅ› wrogowie otrzymujÄ… karÄ™ -2 do testów ataku i rzutów obronnych. Czar ten nie unieważnia zaklÄ™cia Modlitwa, można wiÄ™c pozostawać pod wpÅ‚ywem obu, a efekty ich dziaÅ‚ania kumulujÄ… siÄ™.~ -@283=~Recytacja~ -@282=~WyÅ‚adowanie Å‚adunku statycznego~ -@281=~Åadunek statyczny -(Przemiany) -Poziom: 4 -Sfera: Pogoda -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: pole widzenia rzucajÄ…cego czar -Rzut obronny: 1/2 -Åadunek statyczny jest podobny do czaru Wezwanie bÅ‚yskawic, z tym, że może być on rzucany wewnÄ…trz budynków. Czar ten pozwala rzucajÄ…cemu na stworzenie Å‚adunku statycznego, wokół dowolnej istoty znajdujÄ…cej siÄ™ w obszarze jego dziaÅ‚ania, zadajÄ…c jej tym samym 2k8 obrażeÅ„ od elektrycznoÅ›ci oraz dodatkowo 1k8 obrażeÅ„ na poziom czarujÄ…cego. Åadunek zadaje obrażenia raz na turÄ™ przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia.~ -@280=~Åadunek statyczny~ -@279=~Podpalenie -(Przemiany) -Poziom: 4 -Sfera: Å»ywioÅ‚y (ogieÅ„) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 1 metra -Rzut obronny: brak -Po rzuceniu tego czaru, w punkcie wyznaczonym przez rzucajÄ…cego pojawiajÄ… siÄ™ pÅ‚omienie, które zadajÄ… wszystkim istotom, znajdujÄ…cym siÄ™ w obszarze dziaÅ‚ania zaklÄ™cia, 1k4 obrażeÅ„ od ognia, plus 1 obrażenie na poziom czarujÄ…cego. Istoty te bÄ™dÄ… otrzymywać obrażenia co rundÄ™ bez wzglÄ™du na to, kiedy znalazÅ‚y siÄ™ wewnÄ…trz obszaru zaklÄ™cia.~ -@278=~Podpalenie~ -@277=~Åaska Ilmatera -(Nekromancja) -Poziom: 3 -Sfera: Nekromancja, Ochrona -ZasiÄ™g: 10 metrów -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 6 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -W efekcie rzucenia tego zaklÄ™cia, czarujÄ…cy zamienia siÄ™ wÅ‚asnÄ… energiÄ… życiowÄ… z ofiarÄ…, wymieniajÄ…c siÄ™ z niÄ… wszelkimi fizycznymi obrażeniami. ZaklÄ™cie dziaÅ‚a tylko wtedy, gdy czarujÄ…cy posiada w momencie zamiany wiÄ™cej punktów życia, niż cel. Zamiana ma charakter staÅ‚y, chyba że czarujÄ…cy użyje zwykÅ‚ych metod leczenia obrażeÅ„, i może ona zostać przeprowadzona z odlegÅ‚oÅ›ci nie przekraczajÄ…cej zasiÄ™gu dziaÅ‚ania czaru. Wymieniane sÄ… jedynie punkty życia, czarujÄ…cy nie może nabyć od ofiary innych stanów, takich jak choroba, zatrucie, odurzenie, czy podobnego rodzaju przypadÅ‚oÅ›ci. -Czar ten nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Nie mogÄ… go używać postacie o zÅ‚ym charakterze.~ -@276=~Åaska Ilmatera~ -@275=~Zadawanie Å›rednich ran -(Nekromancja) -Poziom: 3 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia i dotkniÄ™ciu ofiary, kapÅ‚an zadaje jej 14 obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Czar nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Ponadto, nie może zostać rzucony przez postacie o dobrym charakterze.~ -@274=~Zadawanie Å›rednich ran~ -@273=~OsÅ‚ona przed burzÄ… -(Odrzucanie) -Poziom: 3 -Sfera: Ochrona, Pogoda -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 6 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -DziÄ™ki temu zaklÄ™ciu, czarujÄ…cy zostaje otoczony kulÄ… energii, która porusza siÄ™ wraz z nim, zwiÄ™kszajÄ…c jego odporność na ogieÅ„, zimno i elektryczność do 50%.~ -@272=~OsÅ‚ona przed burzÄ…~ -@271=~Dotyk pleÅ›ni -(Przemiany) -Poziom: 3 -Sfera: RoÅ›liny -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: specjalny -Czas rzucania: 6 -Obszar dziaÅ‚ania: w promieniu 3 metrów -Rzut obronny: specjalny -Czar ten zaraża pojedynczÄ… istotÄ™, której ciaÅ‚o pokrywa siÄ™ szybko rozprzestrzeniajÄ…cÄ… siÄ™ brÄ…zowÄ… pleÅ›niÄ…. Zakażona istota wykonuje rzut obronny przeciw czarom. Jeżeli zakoÅ„czy siÄ™ on niepowodzeniem, wówczas zakażenie staje siÄ™ bardzo poważne, a dotkniÄ™ta nim istota otrzymuje nastÄ™pujÄ…ce obrażenia: -1. runda: 4k6 obrażeÅ„ -2. runda: 3k6 obrażeÅ„ -3. runda: 2k6 obrażeÅ„ -4. runda: 1k6 obrażeÅ„ -Jeżeli rzut obronny siÄ™ powiedzie, wówczas obrażenia ulegajÄ… zmniejszeniu: -1. runda: 2k6 obrażeÅ„ -2. runda: 1k6 obrażeÅ„ -3. runda: 1k6 obrażeÅ„ -Po upÅ‚yniÄ™ciu pierwszej rundy, w każdej nastÄ™pnej istota znajdujÄ…ca siÄ™ w odlegÅ‚oÅ›ci 3 metrów od ofiary musi wykonać rzut obronny przeciwko czarom lub zostanie zarażona pleÅ›niÄ…. Sytuacja taka powtarza siÄ™ do chwili, aż pleśń nie zdąży na czas zakazić nowego gospodarza, tracÄ…c tym samym swoje wÅ‚aÅ›ciwoÅ›ci. Istoty znajdujÄ…ce siÄ™ już pod wpÅ‚ywem pleÅ›ni nie mogÄ… siÄ™ niÄ… zarazić ponownie. Po upÅ‚yniÄ™ciu czasu dziaÅ‚ania zaklÄ™cia, brÄ…zowa pleśń szybko obumiera.~ -@270=~Dotyk pleÅ›ni~ -@269=~Oberwanie chmury -(Inwokacje) -Poziom: 3 -Sfera: Å»ywioÅ‚y (woda) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 2 rundy -Czas rzucania: 6 -Obszar dziaÅ‚ania: w promieniu 5,5 metra -Rzut obronny: brak -Czar ten sprowadza na wybrany obszar magiczny deszcz. Wszystkie stworzenia zwiÄ…zane z zimnem i ogniem otrzymujÄ… 2k3 magicznych obrażeÅ„ na rundÄ™. Ponadto, wszystkie istoty znajdujÄ…ce siÄ™ wewnÄ…trz obszaru dziaÅ‚ania zaklÄ™cia majÄ… 50% szans na to, że zostanÄ… trafione bÅ‚yskawicÄ…, zadajÄ…cÄ… 2k6 obrażeÅ„ od elektrycznoÅ›ci (poÅ‚owa obrażeÅ„ po rzucie obronnym przeciw czarom). ZaklÄ™cia PÅ‚omienne ostrze i CaÅ‚un pÅ‚omieni, a także aury salamander zostajÄ… ugaszone pod wpÅ‚ywem Oberwania chmury.~ -@268=~Oberwanie chmury~ -@267=~Kolce -(Przemiany) -Poziom: 3 -Sfera: Å»ywioÅ‚y (ziemia) -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 6 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: brak -ZaklÄ™cie to pokrywa teren wokół kolczastymi roÅ›linami. Każda istota, wkraczajÄ…ca na ten obszar, otrzymuje 1k4 obrażeÅ„ kÅ‚utych i 1k4 obrażeÅ„ siecznych w każdej rundzie dziaÅ‚ania czaru.~ -@266=~Kolce~ -@265=~KrÄ…g koÅ›ci -(Nekromancja) -Poziom: 3 -Sfera: Strażnicza, Tworzenie -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 3 rundy -Czas rzucania: 3 -Obszar dziaÅ‚ania: w promieniu 1 metra -Rzut obronny: brak -Czar ten tworzy barierÄ™ z koÅ›ci, które wirujÄ… wokół czarujÄ…cego, sprawiajÄ…c, że na czas trwania zaklÄ™cia nie może siÄ™ on poruszać. Każdy, kto stanie na drodze wirujÄ…cym koÅ›ciom, bÄ™dzie otrzymywaÅ‚ co rundÄ™ 1k6 obrażeÅ„ obuchowych i 1k6 obrażeÅ„ siecznych. Czar ten nie może być używany przez postacie o zÅ‚ym charakterze.~ -@264=~KrÄ…g koÅ›ci~ -@263=~Księżycowe ostrze~ -@262=~Księżycowe ostrze~ -@261=~Księżycowe ostrze -(Inwokacje) -Poziom: 3 -Sfera: Walka, SÅ‚oÅ„ce -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 6 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Czar ten powoÅ‚uje do istnienia bezszelestny i pozbawiony wagi konstrukt w ksztaÅ‚cie miecza, stworzony ze Å›wiatÅ‚a księżyca, który wyrasta z dÅ‚oni czarujÄ…cego na ponad metr. Księżycowe ostrze jest traktowane jak broÅ„ +4 na potrzeby okreÅ›lania istot, które może zranić, choć premia ta nie jest dodawana do testów ataku wykonywanych tÄ… broniÄ…. Ponadto, ze wzglÄ™du na swÄ… niematerialnÄ… naturÄ™, nie uwzglÄ™dniane sÄ… podczas walki w zwarciu premie ze wzglÄ™du na wysokÄ… SiÅ‚Ä™. -Trafienie księżycowym ostrzem wysysa z ofiary życie, zadajÄ…c jej 1k12 +4 magicznych obrażeÅ„, plus dodatkowe 1k12 obrażeÅ„ w przypadku nieumarÅ‚ych, którzy sÄ… na dziaÅ‚anie tej broni szczególnie podatni. Celne trafienie dziaÅ‚a również zakłócajÄ…co na magiÄ™, sprawiajÄ…c, że każda próba rzucenia zaklÄ™cia przez ofiarÄ™ w przeciÄ…gu kolejnej rundy, zakoÅ„czy siÄ™ niepowodzeniem.~ -@260=~Księżycowe ostrze~ -@259=~UÅ›pienie~ -@258=~Egzaltacja -(Odrzucanie) -Poziom: 3 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 9 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Czar ten pozwala kapÅ‚anowi wspomóc i ochronić jakÄ…kolwiek istotÄ™ innÄ… niż on sam. Poprzez dotyk, rzucajÄ…cy usuwa efekty strachu, uÅ›pienia, ogÅ‚upienia, nieprzytomnoÅ›ci oraz zatrucia, jak również szaÅ‚u, czy innych efektów wpÅ‚ywajÄ…cych na umysÅ‚. Dodatkowo cel jest chroniony przed czarami i atakami powodujÄ…cymi te efekty przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia.~ -@257=~Egzaltacja~ -@256=~WywoÅ‚anie choroby -(Nekromancja) -Poziom: 3 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 8 godzin -Czas rzucania: 9 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: neguje -ZaklÄ™cie to wywoÅ‚uje u dotkniÄ™tej przez kapÅ‚ana istoty chorobÄ™, która osÅ‚abia jÄ…, obniżajÄ…c jej SiÅ‚Ä™ o 5k4 punktów. Rzut obronny przeciw czarom neguje ten efekt. ZaklÄ™cie to nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Nie może być używane przez istoty o dobrym charakterze.~ -@255=~WywoÅ‚anie choroby~ -@254=~Kary do walki~ -@253=~Premie do walki~ -@252=~Modlitwa -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 3 -Sfera: Walka -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 6 -Obszar dziaÅ‚ania: w promieniu 10 metrów -Rzut obronny: brak -Modlitwa obdarza kapÅ‚ana i jego sojuszników Å‚askÄ…, Å›ciÄ…gajÄ…c jednoczeÅ›nie klÄ…twÄ™ na jego wrogów. Przyjazne kapÅ‚anowi postacie otrzymujÄ… premiÄ™ +1 do testów ataku, obrażeÅ„ i rzutów obronnych, podczas gdy wrogowie otrzymujÄ… karÄ™ -1 do testów ataku, obrażeÅ„ i rzutów obronnych. Każda istota znajdujÄ…ca siÄ™ w obszarze dziaÅ‚ania czaru, w momencie jego rzucenia, która opuÅ›ci później ten obszar, nadal bÄ™dzie znajdować siÄ™ pod jego wpÅ‚ywem. Tak wiÄ™c, jeÅ›li wojownicy zechcÄ… Å›cigać tego umykajÄ…cego goblina, Modlitwa nadal bÄ™dzie na nich dziaÅ‚ać.~ -@251=~Modlitwa~ -@250=~Zadawanie umiarkowanych ran -(Nekromancja) -Poziom: 2 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia i dotkniÄ™ciu ofiary, kapÅ‚an zadaje jej 11 obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Czar nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Ponadto, nie może zostać rzucony przez postacie o dobrym charakterze.~ -@249=~Zadawanie umiarkowanych ran~ -@248=~Szpony bestii~ -@247=~Szpony bestii~ -@246=~Szpony bestii -(Przemiany) -Poziom: 2 -Sfera: Walka -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 5 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Czar ten zmienia ramiona rzucajÄ…cego w szpony potężnej bestii, obdarzajÄ…c go SiÅ‚Ä… o wartoÅ›ci 18/72 i pozwalajÄ…c zadawać ofiarom 2k4 obrażeÅ„ siecznych (plus premia za SiÅ‚Ä™). CzarujÄ…cy może atakować szponami dwa razy na rundÄ™,otrzymujÄ…c przy tym premiÄ™ +2 do testów trafienia.~ -@245=~Szpony bestii~ -@244=~Otoczony srebrzystÄ… poÅ›wiatÄ… (kara -2 do KP)~ -@243=~Lanca jednorożca -(Inwokacje) -Poziom: 2 -Sfera: Walka -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: specjalny -Czar ten tworzy częściowo eterycznÄ… lancÄ™ o srebrnym odcieniu i ksztaÅ‚cie rogu jednorożca. Gdy czarujÄ…cy namierzy ofiarÄ™, lanca natychmiast wystrzeli, zadajÄ…c 3k6 obrażeÅ„ kÅ‚utych (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Mimo, iż po uderzeniu lanca ulega rozproszeniu, pozostawia wokół ofiary srebrzystÄ… poÅ›wiatÄ™, czyniÄ…c jÄ… tym samym Å‚atwym celem. Ofiara otrzymuje w zwiÄ…zku z tym karÄ™ -2 do Klasy Pancerza na trzy rundy.~ -@242=~Lanca jednorożca~ -@241=~Uzdrowienie~ -@240=~Leczenie umiarkowanych ran -(Nekromancja) -Poziom: 2 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Ten czar to potężniejsza wersja 1. poziomowego zaklÄ™cia kapÅ‚aÅ„skiego o nazwie Leczenie lekkich ran. RzucajÄ…cy go kapÅ‚an przywraca istocie, na której poÅ‚oży rÄ™ce, 11 punktów życia, a także eliminuje u niej efekty odurzenia. ZaklÄ™cie to nie dziaÅ‚a nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne.~ -@239=~Leczenie umiarkowanych ran~ -@238=~OÅ›lepienie~ -@237=~SÅ‚oneczny żar -(Inwokacje) -Poziom: 1 -Sfera: SÅ‚oÅ„ce -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 4 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: specjalny -Z chwilÄ… rzucenia tego zaklÄ™cia z nieba spada jaskrawy promieÅ„ gorÄ…cego żaru, uderzajÄ…c cel wybrany przez rzucajÄ…cego czar. Trafiona istota otrzymuje obrażenia w wysokoÅ›ci 1k6 +1 na poziom czarujÄ…cego. JeÅ›li celem jest nieumarÅ‚y lub istota wrażliwa na jaskrawe Å›wiatÅ‚o, obrażenia wynoszÄ… 1k6 +2 na poziom czarujÄ…cego. Oprócz odniesionych ran, ofiara zostaje również oÅ›lepiona na trzy rundy. JeÅ›li wykona rzut obronny przeciw czarom, nie zostanie oÅ›lepiona i otrzyma tylko poÅ‚owÄ™ obrażeÅ„.~ -@236=~SÅ‚oneczny żar~ -@235=~Zadawanie lekkich ran -(Nekromancja) -Poziom: 1 -Sfera: Leczenie -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia i dotkniÄ™ciu ofiary, kapÅ‚an zadaje jej 8 obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom). Czar nie dziaÅ‚a na nieumarÅ‚ych, konstrukty oraz istoty pozaplanarne. Ponadto, nie może zostać rzucony przez postacie o dobrym charakterze.~ -@234=~Zadawanie lekkich ran~ -@233=~PrzekleÅ„stwo~ -@232=~PrzekleÅ„stwo -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 1 -Sfera: wszystkie -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 6 rund -Czas rzucania: 9 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: brak -Po wypowiedzeniu słów PrzekleÅ„stwa, rzucajÄ…cy czar obniża morale wrogich istot o 1. Ponadto, otrzymujÄ… one modyfikator -1 do rzutów obronnych i testów ataku. PrzekleÅ„stwo dziaÅ‚a na wszystkie istoty w promieniu 5 metrów wokół wskazanego punktu (tak wiÄ™c znajdujÄ…ce siÄ™ pod jego wpÅ‚ywem stworzenia, które opuszczÄ… ten obszar, w dalszym ciÄ…gu bÄ™dÄ… odczuwać jego efekty, natomiast istoty, które wejdÄ… na ów obszar po rzuceniu czaru, już nie).~ -@231=~KlÄ…twa~ -@230=~Wybrana postać zostaÅ‚a uzdrowiona. Przywrócono 11 punktów życia.~ -@229=~Oko kamienia -Oko to chroni rzucajÄ…cego przed pojedynczym atakiem powodujÄ…cym petryfikacjÄ™. -Może być również wykorzystane jako 3. poziomowy czar maga Unieruchomienie osoby, uniemożliwiajÄ…c poruszanie siÄ™ humanoidom o rozmiarze czÅ‚owieka lub mniejszym przez jednÄ… rundÄ™/poziom (rzut obronny przeciw czarom neguje).~ -@228=~Oko kamienia~ -@227=~Oko duchowe -Oko to blokuje jeden magiczny atak powodujÄ…cy natychmiastowÄ… Å›mierć (ZaklÄ™cie Å›mierci, Palec Å›mierci, SÅ‚owo mocy: giÅ„, Zabijanie żyjÄ…cych, Zniszczenie). -Zamiast tego, czarodziej może wykorzystać drzemiÄ…cÄ… w oku moc jako 2. poziomowy czar maga PromieÅ„ osÅ‚abienia, obniżajÄ…c SiÅ‚Ä™ celu o 5 (rzut obronny przeciw czarom neguje).~ -@226=~Oko duchowe~ -@225=~Oko hartu ducha -Oko to blokuje jeden efekt powodujÄ…cy ogÅ‚oszenie, gÅ‚uchotÄ™, Å›lepotÄ™ lub ciszÄ™. -Może być zamiast tego wykorzystane jako 4. poziomowy czar maga Okrzyk, zadajÄ…c 4k6 magicznych obrażeÅ„ i wywoÅ‚ujÄ…c gÅ‚uchotÄ™ u istot znajdujÄ…cych siÄ™ na obszarze stożka o promieniu 15 metrów (poÅ‚owa obrażeÅ„ i unikniÄ™cie gÅ‚uchoty po rzucie obronnym przeciw czarom).~ -@224=~Oko hartu ducha~ -@223=~Oko jadowe -Oko to zatrzymuje jeden atak lub efekt, który mógÅ‚by spowodować zatrucie rzucajÄ…cego. -Może być również wykorzystane jako 4. poziomowy czar kapÅ‚aÅ„ski Trucizna, zadajÄ…c jednej istocie 20 obrażeÅ„ w przeciÄ…gu dwudziestu sekund (rzut obronny przeciw truciznom neguje).~ -@222=~Oko jadowe~ -@221=~Oko miecza -Oko to odbija najbliższy atak fizyczny skierowany na rzucajÄ…cego. -Może być wykorzystane jako 1. poziomowy czar maga Magiczny pocisk, tworzÄ…c maksymalnie pięć pocisków (jeden na każde dwa poziomy doÅ›wiadczenia powyżej pierwszego), z których każdy zadaje 1k4 +1 magicznych obrażeÅ„.~ -@220=~Oko miecza~ -@219=~Oko maga -Oko to pochÅ‚ania jednorazowo obrażenia zadane przez ogieÅ„, elektryczność, zimno lub kwas. -Może być również wykorzystane jako 3. poziomowy czar maga BÅ‚yskawica, zadajÄ…c 1k6 obrażeÅ„ od elektrycznoÅ›ci na poziom (maksymalnie 10k6) wszystkim istotom stojÄ…cym jej na drodze.~ -@218=~Oko maga~ -@217=~Oko umysÅ‚u -Kula ta chroni rzucajÄ…cego przez atakami mentalnymi, takimi jak zauroczenie, emocje, czy strach. -Oko może być wykorzystane jako 1. poziomowy czar maga Zauroczenie osoby, sprawiajÄ…c że jedna humanoidalna istota znajdzie siÄ™ przez jednÄ… turÄ™ pod kontrolÄ… rzucajÄ…cego (rzut obronny przeciw czarom neguje).~ -@216=~Oko umysÅ‚u~ -@215=~Nie możesz rzucić tego zaklÄ™cia, póki nie skoÅ„czysz rzucać obecnego czaru.~ -@214=~Siedem oczu~ -@213=~Siedem oczu -(Odrzucanie) -Poziom: 7 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 7 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to powoÅ‚uje do istnienia siedem magicznych kul w ksztaÅ‚cie oka, które unoszÄ… siÄ™ nad gÅ‚owÄ… maga, tworzÄ…c coÅ› w rodzaju pierÅ›cienia. Każde oko posiada zdolnoÅ›ci obronne i ofensywne, ale z chwilÄ… użycia traci swÄ… moc. Każda kolejna próba zastosowania tego czaru nie powiedzie siÄ™, jeżeli czas trwania poprzedniego zaklÄ™cia nie dobiegÅ‚ koÅ„ca, bez wzglÄ™du na to, czy pozostaÅ‚y jeszcze jakieÅ› magiczne oczy, czy też nie. Poniżej przedstawiona zostaÅ‚a charakterystyka każdego oka: -Oko umysÅ‚u – chroni rzucajÄ…cego przed przez atakami mentalnymi, takimi jak zauroczenie, emocje, czy strach. Może być wykorzystane jako 1. poziomowy czar maga Zauroczenie osoby, sprawiajÄ…c że jedna humanoidalna istota znajdzie siÄ™ przez jednÄ… turÄ™ pod kontrolÄ… rzucajÄ…cego (rzut obronny przeciw czarom neguje). -Oko miecza – odbija najbliższy atak fizyczny skierowany na rzucajÄ…cego. Może być wykorzystane jako 1. poziomowy czar maga Magiczny pocisk, tworzÄ…c maksymalnie pięć pocisków (jeden na każde dwa poziomy doÅ›wiadczenia powyżej pierwszego), z których każdy zadaje 1k4 +1 magicznych obrażeÅ„. -Oko maga – pochÅ‚ania jednorazowo obrażenia zadane przez ogieÅ„, elektryczność, zimno lub kwas. Może być również wykorzystane jako 3. poziomowy czar maga BÅ‚yskawica, zadajÄ…c 1k6 obrażeÅ„ od elektrycznoÅ›ci na poziom (maksymalnie 10k6) wszystkim istotom stojÄ…cym jej na drodze. -Oko jadowe – zatrzymuje jeden atak lub efekt, który mógÅ‚by spowodować zatrucie rzucajÄ…cego. Może być również wykorzystane jako 4. poziomowy czar kapÅ‚aÅ„ski Trucizna, zadajÄ…c jednej istocie 20 obrażeÅ„ w przeciÄ…gu dwudziestu sekund (rzut obronny przeciw truciznom neguje). -Oko duchowe – blokuje jeden magiczny atak powodujÄ…cy natychmiastowÄ… Å›mierć (ZaklÄ™cie Å›mierci, Palec Å›mierci, SÅ‚owo mocy: giÅ„, Zabijanie żyjÄ…cych, Zniszczenie). Zamiast tego, czarodziej może wykorzystać drzemiÄ…cÄ… w oku moc jako 2. poziomowy czar maga PromieÅ„ osÅ‚abienia, obniżajÄ…c SiÅ‚Ä™ celu o 5 (rzut obronny przeciw czarom neguje). -Oko hartu ducha – blokuje jeden efekt powodujÄ…cy ogÅ‚oszenie, gÅ‚uchotÄ™, Å›lepotÄ™ lub ciszÄ™. Może być zamiast tego wykorzystane jako 4. Poziomowy czar maga Okrzyk, zadajÄ…c 4k6 magicznych obrażeÅ„ i wywoÅ‚ujÄ…c gÅ‚uchotÄ™ u istot znajdujÄ…cych siÄ™ na obszarze stożka o promieniu 15 metrów (poÅ‚owa obrażeÅ„ i unikniÄ™cie gÅ‚uchoty po rzucie obronnym przeciw czarom). -Oko kamienia – chroni rzucajÄ…cego przed pojedynczym atakiem powodujÄ…cym petryfikacjÄ™. Może być również wykorzystane jako 3. poziomowy czar maga Unieruchomienie osoby, uniemożliwiajÄ…c poruszanie siÄ™ humanoidom o rozmiarze czÅ‚owieka lub mniejszym przez jednÄ… rundÄ™/poziom (rzut obronny przeciw czarom neguje).~ -@212=~Siedem oczu~ -@211=~Gniew Malavona~ -@210=~Gniew Malavona -(WywoÅ‚ywanie) -Poziom: 7 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 1 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: 1/2 -Gniew Malavona to zaklÄ™cie stworzone przez czarownika z rasy mrocznych elfów o imieniu Malavon. Po jego rzuceniu, z ciaÅ‚a czarujÄ…cego wystrzeliwujÄ… we wszystkich kierunkach strzaÅ‚ki czystej energii, raniÄ…c zarówno wrogów, jak i przyjaciół. Te maÅ‚e magiczne pociski zadajÄ… 20k4 kÅ‚utych obrażeÅ„ (poÅ‚owÄ™ po rzucie obronnym przeciw czarom) wszystkim, którzy znajdÄ… siÄ™ na ich drodze. Czar ten jest szczególnie przydatny, gdy mag jest otoczony przez wrogów.~ -@209=~Gniew Malavona~ -@208=~Uderzenie vorpalne~ -@207=~Åšmierć~ -@206=~NieumarÅ‚y zniszczony~ -@205=~Mieszkaniec zewnÄ™trznych sfer zniszczony ~ -@204=~Cienie~ -@203=~Cienie -(Iluzje/Urojenia) -Poziom: 6 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 6 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -ZaklÄ™cie to jest podobne do czarów Potwory z cienia i Potwory z półcienia, pozwalajÄ…c czarujÄ…cemu uksztaÅ‚tować materiaÅ‚ z Półplanu Cienia, tworzÄ…c z niego iluzoryczne stworzenia. Cienie te sÄ… wytrzymalsze, niż te przywoÅ‚ane za pomocÄ… zaklęć Potwory z cienia i Potwory z półcienia i bÄ™dÄ… posÅ‚uszne czarujÄ…cemu dopóki nie zostanÄ… zgÅ‚adzone lub dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia.~ -@202=~Cienie~ -@201=~DotkniÄ™cie lisza~ -@200=~DotkniÄ™cie lisza~ -@199=~DotkniÄ™cie lisza -(Nekromancja) -Poziom: 6 -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 6 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: specjalny -Czar ten nadaje rzucajÄ…cemu moc dotyku lisza oraz zapewnia mu jego odpornoÅ›ci. W czasie jego dziaÅ‚ania, czarujÄ…cy zyskuje niewrażliwość na paraliż i strach, a jego dÅ‚onie jarzÄ… siÄ™ nieziemskim zielonym blaskiem, zadajÄ…c 1k10 obrażeÅ„ od zimna i paraliżujÄ…c dotkniÄ™tÄ… istotÄ™, chyba że wykona ona rzut obronny przeciw paraliżowi. Czar ten nie dziaÅ‚a na nieumarÅ‚ych.~ -@198=~DotkniÄ™cie lisza~ -@197=~UsuniÄ™cie efektów~ -@196=~Tarcza antymagiczna~ -@195=~Tarcza antymagiczna -(Odrzucanie) -Poziom: 6 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 1 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to otacza czarujÄ…cego niewidzialnÄ… barierÄ…, która porusza siÄ™ wraz z nim. Bariera ta czyni maga niewrażliwym na wszelkie magiczne ataki, lecz uniemożliwia mu również rzucanie czarów. -Tarcza antymagiczna rozprasza również gÅ‚uchotÄ™ i ogÅ‚upienie u czarujÄ…cego.~ -@194=~Tarcza antymagiczna~ -@193=~Silny jaszczuroczÅ‚ek~ -@192=~Goblin gwardzista~ -@191=~Goblin gwardzista~ -@190=~Potwory z półcienia~ -@189=~Potwory z półcienia -(Iluzje/Urojenia) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 5 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten jest podobny do 4. poziomowego zaklÄ™cia maga o nazwie Potwory z cienia, z tÄ… różnicÄ…, że przywoÅ‚ane istoty sÄ… znacznie potężniejsze.~ -@188=~Potwory z półcienia~ -@187=~BroÅ„ trolli~ -@186=~Troll~ -@185=~Troll~ -@184=~Potwory z cienia~ -@183=~Potwory z cienia -(Iluzje/Urojenia) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 4 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten formuje substancjÄ™ z Półplanu Cienia, tworzÄ…c z niej coÅ› na ksztaÅ‚t iluzorycznych potworów. W danym momencie może przyzwać maksymalnie sześć tych cienistych stworzeÅ„, lecz caÅ‚kowita ilość ich Kostek wytrzymaÅ‚oÅ›ci nie przekracza poziomu czarujÄ…cego.~ -@182=~Cieniste potwory~ -@181=~Przyspieszenie ruchów~ -@180=~Spowolnienie ruchów~ -@179=~Spowolnienie~ -@178=~PoÅ›pieszny odwrót -(Przemiany) -Poziom: 1 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 3 rundy -Czas rzucania: 1 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to podwaja na krótko prÄ™dkość poruszania siÄ™ istoty, która je rzuciÅ‚a... umożliwiajÄ…c jej zazwyczaj ucieczkÄ™. Gdy jest ono aktywne, na rzucajÄ…cego nie dziaÅ‚ajÄ… pozostaÅ‚e efekty wpÅ‚ywajÄ…ce na ruch, jak np. czary Przyspieszenie ruchów, czy Spowolnienie ruchów. Ponadto, istota która znajduje siÄ™ pod wpÅ‚ywem PoÅ›piesznego odwrotu nie może atakować, rzucać czarów, ani używać przedmiotów lub specjalnych zdolnoÅ›ci... jedyne, co może zrobić, to uciekać.~ -@177=~PoÅ›pieszny odwrót~ -@176=~Miecz Mordenkainena~ -@175=~Miecz Mordenkainena~ -@174=~Miecz Mordenkainena -(WywoÅ‚ywanie) -Poziom: 7 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 7 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -ZaklÄ™cie to przywoÅ‚uje migoczÄ…cy miecz energii, który może być kontrolowny przez czarujÄ…cego siÅ‚Ä… jego umysÅ‚u. Zadaje on takie obrażenia, jak gdyby byÅ‚ używany przez wojownika na poziomie o poÅ‚owÄ™ niższym, niż czarujÄ…cy, i pomimo że trzyma siÄ™ go w dÅ‚oni, może on ranić istoty znajdujÄ…ce siÄ™ gdziekolwiek w zasiÄ™gu wzroku rzucajÄ…cego czar. Chociaż miecz nie dodaje premii do testów ataku, zadaje obrażenia istotom, które normalnie można zranić jedynie broniÄ… o umagicznieniu +2, lub wyższym. Po trafieniu zadaje 5k6 siecznych obrażeÅ„.~ -@173=~Miecz Mordenkainena~ -@172=~Å»ywioÅ‚ak wody~ -@171=~Å»ywioÅ‚ak wody~ -@170=~Sprowadzenie żywioÅ‚aka wody~ -@169=~Sprowadzenie żywioÅ‚aka wody -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten pozwala na przyzwanie ze Sfery Å»ywioÅ‚u Wody żywioÅ‚aka o 8 KW, a nastÄ™pnie spÄ™tanie go, by wykonywaÅ‚ polecenie czarujÄ…cego. Å»ywioÅ‚ak ten bÄ™dzie walczyÅ‚ w imieniu osoby rzucajÄ…cej czar przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanie zniszczony.~ -@168=~Sprowadzenie żywioÅ‚aka wody~ -@167=~Å»ywioÅ‚ak powietrza~ -@166=~Å»ywioÅ‚ak powietrza~ -@165=~Sprowadzenie żywioÅ‚aka powietrza~ -@164=~Sprowadzenie żywioÅ‚aka powietrza -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten pozwala na przyzwanie ze Sfery Å»ywioÅ‚u Powietrza żywioÅ‚aka o 8 KW, a nastÄ™pnie spÄ™tanie go, by wykonywaÅ‚ polecenie czarujÄ…cego. Å»ywioÅ‚ak ten bÄ™dzie walczyÅ‚ w imieniu osoby rzucajÄ…cej czar przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanie zniszczony.~ -@163=~Sprowadzenie żywioÅ‚aka powietrza~ -@162=~Å»ywioÅ‚ak ognia~ -@161=~Å»ywioÅ‚ak ognia~ -@160=~Sprowadzenie żywioÅ‚aka ognia~ -@159=~Sprowadzenie żywioÅ‚aka ognia -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten pozwala na przyzwanie ze Sfery Å»ywioÅ‚u Ognia żywioÅ‚aka o 8 KW, a nastÄ™pnie spÄ™tanie go, by wykonywaÅ‚ polecenie czarujÄ…cego. Å»ywioÅ‚ak ten bÄ™dzie walczyÅ‚ w imieniu osoby rzucajÄ…cej czar przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanie zniszczony.~ -@158=~Sprowadzenie żywioÅ‚aka ognia~ -@157=~Å»ywioÅ‚ak ziemi~ -@156=~Å»ywioÅ‚ak ziemi~ -@155=~Sprowadzenie żywioÅ‚aka ziemi~ -@154=~Sprowadzenie żywioÅ‚aka ziemi -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten pozwala na przyzwanie ze Sfery Å»ywioÅ‚u Ziemi żywioÅ‚aka o 8 KW, a nastÄ™pnie spÄ™tanie go, by wykonywaÅ‚ polecenie czarujÄ…cego. Å»ywioÅ‚ak ten bÄ™dzie walczyÅ‚ w imieniu osoby rzucajÄ…cej czar przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanie zniszczony.~ -@153=~Sprowadzenie żywioÅ‚aka ziemi~ -@152=~PrzywoÅ‚anie potwora III~ -@151=~PrzywoÅ‚anie potwora III -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 5 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 4 rundy + 1 runda/poziom -Czas rzucania: 5 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k4 potwory o 3 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@150=~PrzywoÅ‚anie potwora III~ -@149=~JaszczuroczÅ‚ek~ -@148=~JaszczuroczÅ‚ek~ -@147=~PrzywoÅ‚anie potwora II~ -@146=~PrzywoÅ‚anie potwora II -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 4 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 3 rundy + 1 runda/poziom -Czas rzucania: 4 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k6 potworów o 2 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@145=~PrzywoÅ‚anie potwora II~ -@144=~Goblin~ -@143=~Goblin~ -@142=~PrzywoÅ‚anie potwora I~ -@141=~PrzywoÅ‚anie potwora I -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 3 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 2 rundy + 1 runda/poziom -Czas rzucania: 3 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 2k3 potworów o 1 Kostce. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@140=~PrzywoÅ‚anie potwora I~ -@139=~Atak~ -@138=~Minotaur~ -@137=~Minotaur~ -@136=~PrzywoÅ‚anie potwora V~ -@135=~PrzywoÅ‚anie potwora V -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 7 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 6 rund + 1 runda/poziom -Czas rzucania: 7 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k3 potwory o 5 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@134=~PrzywoÅ‚anie potwora V~ -@133=~[.]~ -@132=~[.]~ -@131=~Salamandra~ -@130=~Salamandra~ -@129=~Lodowa salamandra~ -@128=~Lodowa salamandra~ -@127=~PrzywoÅ‚anie potwora VI~ -@126=~PrzywoÅ‚anie potwora VI -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 8 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 7 rund + 1 runda/poziom -Czas rzucania: 8 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k3 potwory o 6 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@125=~PrzywoÅ‚anie potwora VI~ -@124=~Atak~ -@123=~Umbrowy kolos~ -@122=~Umbrowy kolos~ -@121=~Szkielet strażnik~ -@120=~Szkielet strażnik~ -@119=~PrzywoÅ‚anie potwora VII~ -@118=~PrzywoÅ‚anie potwora VII -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 9 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 8 rund + 1 runda/poziom -Czas rzucania: 9 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k2 potwory o 7 lub 8 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@117=~PrzywoÅ‚anie potwora VII~ -@116=~PrzywoÅ‚anie potwora IV~ -@115=~PrzywoÅ‚anie potwora IV -(Sprowadzanie/PrzywoÅ‚ywanie) -Poziom: 6 -ZasiÄ™g: 6 metrów -Czas dziaÅ‚ania: 5 rund + 1 runda/poziom -Czas rzucania: 6 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -MocÄ… tego zaklÄ™cia czarodziej przyzywa 1k3 potwory o 4 Kostkach. PojawiajÄ… siÄ™ one w obszarze dziaÅ‚ania czaru i można im nakazać atakowanie przeciwników czarujÄ…cego, dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia lub dopóki nie zostanÄ… zgÅ‚adzone.~ -@114=~PrzywoÅ‚anie potwora IV~ -@113=~Czaszka~ -@112=~[.]~ -@111=~Przedmiot przezroczystoÅ›ci potworów~ -@110=~CieÅ„~ -@109=~CieÅ„~ -@108=~PrzywoÅ‚anie cieni~ -@107=~PrzywoÅ‚anie cieni -(Sprowadzanie/PrzywoÅ‚ywanie, Nekromancja) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda + 1 runda/poziom -Czas rzucania: 5 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: brak -Czar ten przywoÅ‚uje trzy cienie o 4 KW. BÄ™dÄ… one speÅ‚niać polecenia czarujÄ…cego, atakujÄ…c jego wrogów lub wykonujÄ…c różne zadania, dopóki nie zostanÄ… zgÅ‚adzone lub dopóki nie skoÅ„czy siÄ™ dziaÅ‚anie zaklÄ™cia.~ -@106=~PrzywoÅ‚anie cieni~ -@105=~Å»elazna pięść~ -@104=~Å»elazna pięść~ -@103=~zapada na ciężkÄ… chorobÄ™~ -@102=~Chory~ -@101=~Zatrucie~ -@100=~Trucizna~ -@99=~Å»elazne ciaÅ‚o~ -@98=~Å»elazne ciaÅ‚o -(Przemiany) -Poziom: 8 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 8 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to przeksztaÅ‚ca ciaÅ‚o czarujÄ…cego w żywe żelazo, zapewniajÄ…c mu potężne odpornoÅ›ci i zdolnoÅ›ci. W trakcie jego dziaÅ‚ania czarujÄ…cy otrzymuje 100% odpornoÅ›ci na elektryczność oraz trucizny, 50% odpornoÅ›ci na ogieÅ„ i 25% odpornoÅ›ci na obrażenia obuchowe. ZaklÄ™cia wpÅ‚ywajÄ…ce na fizjologiÄ™ i zdolność oddychania czarujÄ…cego sÄ… ignorowane. Ponadto, współczynnik SiÅ‚y rzucajÄ…cego czar wzrasta do 25 i może on atakować dwa razy na rundÄ™ żelaznymi pięściami, zadajÄ…c 2k4 obrażeÅ„ plus premia za wysokÄ… SiÅ‚Ä™. -Niestety, ruchy czarujÄ…cego stajÄ… siÄ™ powolne i niezdarne, sprawiajÄ…c, że jego prÄ™dkość poruszania obniża siÄ™ do 25% pierwotnej wartoÅ›ci oraz uniemożliwiajÄ…c mu rzucanie czarów, dopóki nie skoÅ„czy siÄ™ dziaÅ‚anie Å»elaznego ciaÅ‚a.~ -@97=~Å»elazne ciaÅ‚o~ -@96=~Utrata przytomnoÅ›ci~ -@95=~Wielki okrzyk~ -@94=~Wielki okrzyk -(Inwokacje) -Poziom: 8 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 1 -Obszar dziaÅ‚ania: 15° stożek o promieniu 5,5 metra -Rzut obronny: 1/2 -Po wypowiedzeniu słów zaklÄ™cia Wielki okrzyk, z ust czarujÄ…cego wydobywa siÄ™ ogÅ‚uszajÄ…cy podmuch siÅ‚y w ksztaÅ‚cie stożka o promieniu 5,5 metra. Czar ten jest niezwykle wyczerpujÄ…cy i niebezpieczny dla użytkownika, wysysajÄ…c z niego 2k4 punkty życia i zmuszajÄ…c go do wykonania rzutu obronnego przeciw czarom, aby nie straciÅ‚ przytomnoÅ›ci na jednÄ… turÄ™. Istoty posiadajÄ…ce 5 lub mniej Kostek WytrzymaÅ‚oÅ›ci, które znajdÄ… siÄ™ w obszarze dziaÅ‚ania zaklÄ™cia, natychmiast ginÄ…. PozostaÅ‚e istoty muszÄ… wykonać rzut obronny przeciw czarom lub zostanÄ… ogÅ‚uszone na dwie rundy, ogÅ‚uchnÄ… na cztery rundy i otrzymajÄ… 4k12 magicznych obrażeÅ„. Udany rzut obronny sprawi, że zostajÄ… one ogÅ‚uszone na jednÄ… rundÄ™, ogÅ‚uchnÄ… na dwie rundy i otrzymajÄ… 2k12 magicznych obrażeÅ„.~ -@93=~Wielki okrzyk~ -@92=~~ -@91=~Zauroczenie~ -@90=~Okropne zaurocznie~ -@89=~Dominacja~ -@88=~Morale zostaÅ‚o zÅ‚amane: panika~ -@87=~Odurzenie~ -@86=~ZamÄ™t~ -@85=~BezmyÅ›lność~ -@84=~Unieruchomienie~ -@83=~Paraliż~ -@82=~Unieruchomienie~ -@81=~ZasÅ‚oniÄ™cie umysÅ‚u~ -@80=~ZasÅ‚oniÄ™cie umysÅ‚u -(Odrzucanie) -Poziom: 8 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 24 godziny -Czas rzucania: 1 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -BÄ™dÄ…cy formÄ… samokontroli i ochrony prywatnoÅ›ci, czar ZasÅ‚oniÄ™cie umysÅ‚u chroni umysÅ‚ istoty przed niemal każdym rodzajem mentalnego efektu – urokami, labiryntem, ogÅ‚upieniem, zamÄ™tem, strachem, odurzeniem, szaÅ‚em, unieruchomieniem i petryfikacjÄ….~ -@79=~ZasÅ‚oniÄ™cie umysÅ‚u~ -@78=~Duszenie~ -@77=~Duszenie -(Przemiany) -Poziom: 7 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 4 rundy -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: specjalny -Czar ten pozbawia oddechu wszystkie istoty znajdujÄ…ce siÄ™ w obszarze jego dziaÅ‚ania. Istoty nie muszÄ…ce oddychać sÄ… niepodatne na jego wpÅ‚yw. DuszÄ…ce siÄ™ stworzenia otrzymujÄ… karÄ™ -4 do Klasy Pancerza, -4 do testów trafienia i -6 do ZrÄ™cznoÅ›ci. Ponadto, mogÄ… wykonywać w ciÄ…gu rundy o jeden atak mniej, ich prÄ™dkość poruszania zostaje zmniejszona o poÅ‚owÄ™, a także otrzymujÄ… co rundÄ™ 4k8 magicznych obrażeÅ„. Rzut obronny neguje wszystkie efekty, poza 2k8 obrażeniami otrzymywanymi przez jednÄ… rundÄ™. Efekt zaczyna sÅ‚abnąć w chwili, w której istota opuÅ›ci obszar dziaÅ‚ania czaru, aczkolwiek może minąć runda, zanim zÅ‚apie oddech.~ -@76=~Duszenie~ -@75=~NawaÅ‚nica kwasu~ -@74=~NawaÅ‚nica kwasu -(WywoÅ‚ywanie) -Poziom: 7 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/poziom -Czas rzucania: 7 -Obszar dziaÅ‚ania: w promieniu 4 metrów -Rzut obronny: 1/2 -Czar ten uwalnia deszcz kwasu, który zalewa obszar jego dziaÅ‚ania, zadajÄ…c 1k4 obrażeÅ„ od kwasu co rundÄ™ przez pierwsze trzy rundy dziaÅ‚ania czaru, 1k6 obrażeÅ„ przez trzy nastÄ™pne rundy i 1k8 obrażeÅ„ w każdej kolejnej rundzie. Wydostanie siÄ™ poza obszar dziaÅ‚ania NawaÅ‚nicy kwasu nie spowoduje zaprzestania otrzymywania obrażeÅ„, albowiem kwas przywiera do skóry, zaÅ› każda istota znajdujÄ…ca siÄ™ wewnÄ…trz tego obszaru bÄ™dzie otrzymywaÅ‚a obrażenia od kwasu przez caÅ‚y czas dziaÅ‚ania zaklÄ™cia. BÄ™dÄ…ce pod wpÅ‚ywem dziaÅ‚ania chmury istoty wykonujÄ… co rundÄ™ rzut obronny przeciw czarom, otrzymujÄ…c w danej rundzie poÅ‚owÄ™ obrażeÅ„, jeÅ›li ten zakoÅ„czyÅ‚ siÄ™ powodzeniem.~ -@73=~NawaÅ‚nica kwasu~ -@72=~WytrzymaÅ‚ość trolla~ -@71=~WytrzymaÅ‚ość trolla -(Nekromancja) -Poziom: 6 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 2 tury -Czas rzucania: 6 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to obdarza czarujÄ…cego wytrzymaÅ‚oÅ›ciÄ… trolla, pozwalajÄ…c mu na regeneracjÄ™ 5 punktów życia co rundÄ™, aż do odzyskania peÅ‚nej ich iloÅ›ci.~ -@70=~WytrzymaÅ‚ość trolla~ -@69=~Szkielet~ -@68=~Szkielet~ -@67=~Pożeracz dusz~ -@66=~Pożeracz dusz -(Nekromancja) -Poziom: 6 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 5 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: brak -Czar ten zadaje 3k8 magicznych obrażeÅ„ wszystkim żywym stworzeniom znajdujÄ…cym siÄ™ w promieniu 4 metrów. Każda istota, która umrze w wyniku dziaÅ‚ania tych obrażeÅ„, zostaje unicestwiona, a jej esencja zostaje przeksztaÅ‚cona w szkielet o 3 KW, znajdujÄ…cy siÄ™ pod kontrolÄ… czarujÄ…cego. Ponadto, za każdÄ… zabitÄ… w ten sposób istotÄ™ czarujÄ…cy otrzymuje na jednÄ… turÄ™ premiÄ™ +1 do SiÅ‚y, ZrÄ™cznoÅ›ci i Kondycji. ZaklÄ™cie to nie dziaÅ‚a na nieumarÅ‚ych, konstrukty i żywioÅ‚aki.~ -@65=~Pożeracz dusz~ -@64=~KoÅ›ciana strzaÅ‚ka +3~ -@63=~StrzaÅ‚ka kostna~ -@62=~KoÅ›ciane strzaÅ‚ki~ -@61=~KoÅ›ciane strzaÅ‚ki -(Nekromancja) -Poziom: 6 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 5 rund -Czas rzucania: 5 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -Czar ten tworzy dziewięć strzaÅ‚ek, które mogÄ… być użyte przez czarujÄ…cego. Nie można ich odÅ‚ożyć dopóki nie upÅ‚ynie czas dziaÅ‚ania zaklÄ™cia. PowstaÅ‚e strzaÅ‚ki posiadajÄ… umagicznienie +3, zadajÄ… 1k4 +3 obrażeÅ„ od pocisków, a trafiona nimi istota musi wykonać rzut obronny przeciw Å›mierci lub otrzyma 2k6 magicznych obrażeÅ„, a jej SiÅ‚a zostanie obniżona o 3 na okres piÄ™ciu rund. Utrata siÅ‚y nie jest kumulatywna, a nieudany rzut obronny nie spowoduje, że bÄ™dzie ona trwaÅ‚a dÅ‚użej. BiegÅ‚ość czarujÄ…cego w posÅ‚ugiwaniu siÄ™ strzaÅ‚kami (lub jej brak) nie wpÅ‚ywa na szansÄ™ trafienia w cel.~ -@60=~KoÅ›ciane strzaÅ‚ki~ -@59=~ZamrażajÄ…ca sfera Otiluke'a~ -@58=~ZamrażajÄ…ca sfera Otiluke'a -(Przemiany, WywoÅ‚ywanie) -Poziom: 6 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 6 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: neguje -Czar ten wystrzeliwuje w kierunku wybranej istoty kulÄ™ zimna, zadajÄ…cÄ… 1k4 +2 obrażenia od zimna na poziom czarujÄ…cego. JeÅ›li cel wykona rzut obronny przeciw czarom, uchyla siÄ™ przed kulÄ…, unikajÄ…c caÅ‚kowicie obrażeÅ„.~ -@57=~ZamrażajÄ…ca sfera Otiluke'a~ -@56=~CaÅ‚un pÅ‚omieni~ -@55=~CaÅ‚un pÅ‚omieni -(Inwokacje) -Poziom: 5 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/2 poziomy (specjalny) -Czas rzucania: 5 -Obszar dziaÅ‚ania: w promieniu 1,5 metra -Rzut obronny: neguje -Czar ten sprawia, że bÄ™dÄ…ca pod jego wpÅ‚ywem istota wybucha pÅ‚omieniami, jeÅ›li nie wykona rzutu obronnego przeciw czarom. Ofiara bÄ™dzie pÅ‚onąć, otrzymujÄ…c co rundÄ™ 2k6 obrażeÅ„ od ognia i wypluwajÄ…c przy tym z siebie jÄ™zory ognia, zadajÄ…ce 1k4 obrażeÅ„ od ognia każdemu stworzeniu, które znajduje siÄ™ nie dalej, niż 1,5 metra od niej. Każdy, kto zostanie zraniony pÅ‚omieniami buchajÄ…cymi od ofiary, musi również wykonać rzut obronny przeciw czarom lub sam zajmie siÄ™ ogniem. CaÅ‚un ognia wygasza siÄ™, jeÅ›li rzucajÄ…cy zaklÄ™cie i ofiara nie znajdujÄ… siÄ™ już na tym samym obszarze. Czar ten jest szczególnie użyteczny podczas potyczek z grupami trolli i lodowych salamander.~ -@54=~CaÅ‚un pÅ‚omieni~ -@53=~~ -@52=~Kula z witriolem~ -@51=~Kula z witriolem -(Sprowadzanie) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: specjalny -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 1,5 metra -Rzut obronny: specjalny -Czar ten przywoÅ‚uje kulÄ™ migoczÄ…cego szmaragdowego kwasu, którÄ… można skierować w stronÄ™ dowolnego celu znajdujÄ…cego siÄ™ w zasiÄ™gu wzroku. Kiedy kula dotrze do ofiary, wybucha, oblewajÄ…c jÄ… żrÄ…cym kwasem. Istota otrzymuje 1k4 obrażeÅ„ od kwasu na poziom czarujÄ…cego; maksymalnie 12k4 obrażeÅ„. Po poczÄ…tkowych obrażeniach, ofiara musi wykonać rzut obronny przeciw czarom celem unikniÄ™cia kolejnych obrażeÅ„. JeÅ›li zakoÅ„czy siÄ™ on niepowodzeniem, istota otrzymuje obrażenia od kwasu w kolejnych rundach, lecz z każdÄ… rundÄ… malejÄ… one o 2 kostki. PrzykÅ‚adowo, czarodziej 8. poziomu zadaje 8k4 obrażeÅ„ w pierwszej rundzie, 6k4 w drugiej rundzie, 4k4 w trzeciej, 2k4 w czwartej, a dziaÅ‚anie czaru koÅ„czy siÄ™ w rundzie piÄ…tej. W każdej rundzie ofiara ataku może wykonać rzut obronny przeciw czarom, aby uniknąć dalszych obrażeÅ„. -Kula z witriolem rozpryskuje kwas w promieniu 1,5 metra wokół istoty bÄ™dÄ…cej celem ataku. Wszystkie stworzenia znajdujÄ…ce siÄ™ w obszarze rozprysku muszÄ… wykonać rzut obronny przeciw polimorfii/paraliżowi, bÄ…dź otrzymajÄ… 1k4 obrażeÅ„ na każde pięć poziomów czarujÄ…cego. Rozprysk nie powoduje ciÄ…gÅ‚ych obrażeÅ„.~ -@50=~Kula z witriolem~ -@49=~GÅ‚uchota~ -@48=~Okrzyk~ -@47=~Okrzyk -(Inwokacje) -Poziom: 4 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 1 -Obszar dziaÅ‚ania: 15° stożek o promieniu 5,5 metra -Rzut obronny: specjalny -ZaklÄ™cie to obdarza czarujÄ…cego nieprawdopodobnymi zdolnoÅ›ciami wokalnymi, pozwalajÄ…c mu na emitowanie rozdzierajÄ…cego uszy krzyku na obszarze przyjmujÄ…cym ksztaÅ‚t stożka. Każda istota znajdujÄ…ca siÄ™ objÄ™ta dziaÅ‚aniem tego czaru staje siÄ™ gÅ‚ucha przez dziewięć rund, a także otrzymuje 4k6 magicznych obrażeÅ„. Rzut obronny przeciw czarom neguje gÅ‚uchotÄ™ i obniża otrzymane obrażenia o poÅ‚owÄ™.~ -@46=~Okrzyk~ -@45=~Pociski mocy Mordenkainena~ -@44=~Pociski mocy Mordenkainena -(Inwokacje) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 0,5 metra -Rzut obronny: specjalny -ZaklÄ™cie to powoÅ‚uje do istnienia poÅ‚yskujÄ…cÄ… kulÄ™ magicznej energii, która wystrzeliwuje z dÅ‚oni czarodzieja, trafiajÄ…c bezbÅ‚Ä™dnie ofiarÄ™. Można tutaj dostrzec duże podobieÅ„stwo do czaru Magiczny pocisk. Czarodziej tworzy jeden pocisk na 7. poziomie oraz kolejny pocisk, co każde trzy poziomy po poziomie siódmym (czyli dwa pociski na 10. poziomie, trzy na 13. poziomie, cztery na 16. poziomie itd., aż do maksymalnej iloÅ›ci siedmiu pocisków na 25. poziomie. Każdy pocisk zadaje ofierze 2k4 obrażeÅ„, a nastÄ™pnie wywoÅ‚uje falÄ™ uderzeniowÄ… o promieniu 0,5 metra, zadajÄ…cÄ… 1 obrażenie na poziom czarujÄ…cego. PrzykÅ‚adowo, czarodziej 12. poziomu może stworzyć dwa pociski, z których każdy zadaje 2k4 +12 magicznych obrażeÅ„. Zaatakowane istoty mogÄ… wykonać rzut obronny przeciw czarom, aby uniknąć obrażeÅ„ pochodzÄ…cych od fali uderzeniowej, lecz nie od samego pocisku. ZaklÄ™cie maga 1. poziomu o nazwie Tarcza unieszkodliwia pociski mocy, w tym obrażenia wywoÅ‚ane falÄ… udrzeniowÄ….~ -@43=~Pociski mocy Mordenkainena~ -@42=~Beznadzieja~ -@41=~OgÅ‚uszony~ -@40=~Emocje: beznadziejność~ -@39=~Emocje: beznadziejność -(Zaczarowania/Zauroczenia) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 tura -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: neguje -Czar ten wywoÅ‚uje uczucie beznadziejnoÅ›ci na caÅ‚ym obszarze dziaÅ‚ania. Wszyscy wrogowie, którzy nie wykonajÄ… rzutu obronnego przeciw czarom stojÄ… bezczynnie przez jednÄ… turÄ™. Po rzuceniu, zaklÄ™cie to anuluje, na obszarze swego dziaÅ‚ania, efekty czaru Emocje: nadzieja.~ -@38=~Emocje: beznadziejność~ -@37=~Panika~ -@36=~Emocje: strach~ -@35=~Emocje: strach -(Zaczarowania/Zauroczenia) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 5 rund -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: neguje -Czar ten wywoÅ‚uje uczucie strachu na caÅ‚ym obszarze dziaÅ‚ania. Wszyscy wrogowie, którzy nie wykonajÄ… rzutu obronnego przeciw czarom, uciekajÄ… w panice przez pięć rund. W momencie rzucenia, zaklÄ™cie to niweluje dziaÅ‚anie czaru Emocje: odwaga.~ -@34=~Emocje: strach~ -@33=~Emocje: nadzieja~ -@32=~Emocje: nadzieja -(Zaczarowania/Zauroczenia) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 godzina -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: brak -Czar ten wywoÅ‚uje uczucie nadziei na caÅ‚ym obszarze dziaÅ‚ania. Wszystkie istoty znajdujÄ…ce siÄ™ pod jego wpÅ‚ywem otrzymujÄ… premiÄ™ +2 do rzutów obronnych, testów ataku oraz obrażeÅ„, a ponadto wzrasta ich morale. W momencie rzucenia, zaklÄ™cie to niweluje dziaÅ‚anie czaru Emocje: beznadziejność.~ -@31=~Emocje: nadzieja~ -@30=~Emocje: odwaga~ -@29=~Emocje: odwaga -(Zaczarowania/Zauroczenia) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 godzina -Czas rzucania: 4 -Obszar dziaÅ‚ania: w promieniu 2 metrów -Rzut obronny: brak -Czar ten wywoÅ‚uje uczucie odwagi na caÅ‚ym obszarze dziaÅ‚ania. Wszystkie istoty znajdujÄ…ce siÄ™ pod jego wpÅ‚ywem otrzymujÄ… premiÄ™ +1 do testów trafienia, +3 do testów obrażeÅ„ oraz +5 tymczasowych punktów życia (punkty te mogÄ… przekroczyć maksymalnÄ… dla danej istoty ilość). ZaklÄ™cie to niweluje wszelkie efekty strachu, aktywne na obszarze jego dziaÅ‚ania w momencie rzucenia.~ -@28=~Emocje: odwaga~ -@27=~SzaÅ‚~ -@26=~PÅ‚onÄ…ca krew Beltyna~ -@25=~PÅ‚onÄ…ca krew Beltyna -(Nekromancja) -Poziom: 4 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: 1 runda/2 poziomy -Czas rzucania: 4 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: neguje -Czar ten sprawia, że krew wybranej istoty wybucha żywym ogniem, sprawiajÄ…c, że otrzymuje ona 3k4 obrażeÅ„ co rundÄ™, a także wpada w berserk bÄ™dÄ…cy wynikiem odczuwanego bólu. Ofiara musi co rundÄ™ wykonywać rzut obronny przeciw czarom; udany pozwala uniknąć obrażeÅ„ oraz wpadniÄ™cia w szaÅ‚. ZaklÄ™cie to nie dziaÅ‚a na nieumarÅ‚ych oraz istoty pozaplanarne nie posiadajÄ…ce krwi (takie jak żywioÅ‚aki). JeÅ›li stworzenie jest odporne na ogieÅ„, odporność ta obniży lub caÅ‚kowicie zredukuje obrażenia otrzymane w wyniku dziaÅ‚ania tego czaru.~ -@24=~PÅ‚onÄ…ca krew Beltyna~ -@23=~Lanca zmÄ…cenia~ -@22=~Lanca zmÄ…cenia -(Inwokacje) -Poziom: 3 -ZasiÄ™g: 33 metry -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 3 -Obszar dziaÅ‚ania: specjalny -Rzut obronny: 1/2 -Czar ten tworzy lancÄ™ mocy, która wystrzeliwuje z rÄ™ki czarujÄ…cego w kierunku wybranego przezeÅ„ punktu, znajdujÄ…cego siÄ™ w odlegÅ‚oÅ›ci nie wiÄ™kszej, niż 33 metry. Każda istota znajdujÄ…ca siÄ™ na drodze lancy otrzymuje 5k4 obrażeÅ„ obuchowych plus 2 obrażenia na poziom czarujÄ…cego (maksymalnie +30). Rzut obronny przeciw czarom obniża obrażenia poÅ‚owÄ™.~ -@21=~Lanca zmÄ…cenia~ -@20=~OszoÅ‚omienie~ -@19=~Lodowa lanca~ -@18=~Lodowa lanca -(WywoÅ‚ywanie) -Poziom: 3 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 3 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: specjalny -Czar ten wystrzeliwuje w kierunku wybranego przez czarodzieja celu magicznÄ… lodowÄ… lancÄ™. Trafia ona automatycznie, zadajÄ…c 5k6 obrażeÅ„ od zimna i zmuszajÄ…c ofiarÄ™ do wykonania rzutu obronnego przeciw czarom, by uniknąć ogÅ‚uszenia na trzy rundy.~ -@17=~Lodowa lanca~ -@16=~Modyfikator zrÄ™cznoÅ›ci~ -@15=~Zwinność kota~ -@14=~Zwinność kota -(Przemiany) -Poziom: 2 -ZasiÄ™g: dotyk -Czas dziaÅ‚ania: 1 godzina/poziom -Czas rzucania: 2 -Obszar dziaÅ‚ania: 1 istota -Rzut obronny: brak -Po rzuceniu tego zaklÄ™cia ZrÄ™czność wskazanej istoty zostaje w magiczny sposób zwiÄ™kszona o ilość zależnÄ… od jej klasy. Åotrzykowie otrzymujÄ… 1k8 punktów, wojownicy i czarodzieje 1k6 punktów, a kapÅ‚ani 1k4 punkty. JeÅ›li postać posiada wiÄ™cej niż jednÄ… klasÄ™, stosowana jest wyższa kostka. Zwinność kota nie może zwiÄ™kszyć ZrÄ™cznoÅ›ci powyżej 20.~ -@13=~Zwinność kota~ -@12=~Laska mocy~ -@11=~Laska mocy~ -@10=~Laska mocy~ -@9=~Laska mocy -(WywoÅ‚ywanie) -Poziom: 2 -ZasiÄ™g: 0 -Czas dziaÅ‚ania: 3 rundy + 1 runda/poziom -Czas rzucania: 2 -Obszar dziaÅ‚ania: rzucajÄ…cy czar -Rzut obronny: brak -ZaklÄ™cie to tworzy w rÄ™ku czarujÄ…cego laskÄ™ mocy. Zadaje ona 1k6 obrażeÅ„ i jest traktowana jak magiczna broÅ„ +1, na potrzeby okreÅ›lenia istot, które może zranić. BroÅ„ ta należy do kategorii kijów, tak wiÄ™c jeÅ›li czarujÄ…cy nie posiada biegÅ‚oÅ›ci w walce tym typem broni, wówczas Laska mocy używana jest z modyfikatorem ujemnym. BroÅ„ ta posiada również moc wysysania z ofiary 1k2 punktów życia po każdym trafieniu. Punkty te sÄ… dodawane do puli czarujÄ…cego, ale mogÄ… one jedynie uleczyć odniesione przez niego obrażenia i nie mogÄ… podnieść iloÅ›ci punktów życia ponad ustalone dla niego maksimum.~ -@8=~Laska mocy~ -@7=~Lawina Å›nieżnych kul Snilloca -(WywoÅ‚ywanie) -Poziom: 2 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 2 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia, z wybranego miejsca, znajdujÄ…cego siÄ™ w obrÄ™bie dziaÅ‚ania czaru, wystrzeliwuje chmara kul Å›niegowych. TrafiajÄ… one we wszystko, co znajduje siÄ™ w zasiÄ™gu funkcjonowania efektu, zadajÄ…c 1k3 obrażeÅ„ od zimna na poziom czarujÄ…cego, aż do maksymalnie 8k3 obrażeÅ„ na 8. poziomie. Przeciw istotom posÅ‚ugujÄ…cym siÄ™ ogniem lub zrodzonym z ognia, czar ten zadaje 1k6 obrażeÅ„ na poziom czarujÄ…cego, aż do maksymalnie 8k6 obrażeÅ„ na 8. poziomie.~ -@6=~~ -@5=~Lawina Å›nieżnych kul Snilloca~ -@4=~Lawina Å›nieżnych kul Snilloca -(WywoÅ‚ywanie) -Poziom: 2 -ZasiÄ™g: pole widzenia rzucajÄ…cego czar -Czas dziaÅ‚ania: natychmiastowy -Czas rzucania: 2 -Obszar dziaÅ‚ania: w promieniu 5 metrów -Rzut obronny: 1/2 -Po rzuceniu tego zaklÄ™cia, z wybranego miejsca, znajdujÄ…cego siÄ™ w obrÄ™bie dziaÅ‚ania czaru, wystrzeliwuje chmara kul Å›niegowych. TrafiajÄ… one we wszystko, co znajduje siÄ™ w zasiÄ™gu funkcjonowania efektu, zadajÄ…c 1k3 obrażeÅ„ od zimna na poziom czarujÄ…cego, aż do maksymalnie 8k3 obrażeÅ„ na 8. poziomie. Przeciw istotom posÅ‚ugujÄ…cym siÄ™ ogniem lub zrodzonym z ognia, czar ten zadaje 1k6 obrażeÅ„ na poziom czarujÄ…cego, aż do maksymalnie 8k6 obrażeÅ„ na 8. poziomie.~ -@3=~~ -@2=~Lawina Å›nieżnych kul Snilloca~ -@1=~Zwój~ diff --git a/iwdification/dw/copyover/tra/ru_RU/iwdspells.tra b/iwdification/dw/copyover/tra/ru_RU/iwdspells.tra deleted file mode 100644 index c0066d1..0000000 --- a/iwdification/dw/copyover/tra/ru_RU/iwdspells.tra +++ /dev/null @@ -1,1226 +0,0 @@ -@375=~Ð‘Ð¾ÐµÐ²Ð°Ñ Ð¿ÐµÑнь Ситта — Ð‘Ð¾Ð½ÑƒÑ Ðº защите и регенерациÑ~ -@374=~«Военный гимн Ситта» -Ð’Ñе Ñоюзники в радиуÑе 30 футов получают ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ +2 к клаÑÑу защиты, +10% к Ñопротивлению рубÑщему, режущему, дробÑщему и метательному урону, а также ÑпоÑобноÑÑ‚ÑŒ к регенерации 2 пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð² раунд.~ -@373=~Ð‘Ð¾ÐµÐ²Ð°Ñ Ð¿ÐµÑнь Ситта~ -@372=~Порабощение~ -@371=~Стон Сирены — Порабощает ÑущеÑтва~ -@370=~«Плач Сирены» -Ð’Ñе враги в радиуÑе 30 футов, провалившие ÑпаÑброÑок против заклинаниÑ, завлекаютÑÑ Ð¿Ð»Ð°Ñ‡ÐµÐ¼ и терÑÑŽÑ‚ ÑпоÑобноÑÑ‚ÑŒ дейÑтвовать на протÑжении на 1 раунда, или до Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð¼Ð¸ урона.~ -@369=~Стон Сирены~ -@368=~ПеÑÐ½Ñ ÐšÐ°ÑƒÐ´Ð¸ÐµÑ â€” Сопротивление звуковым атакам~ -@367=~«ПеÑнь КаудиеÑ» -Ð’Ñе Ñоюзники в радиуÑе 30 футов Ñ Ð²ÐµÑ€Ð¾ÑтноÑтью 50% избавлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ воздейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ð¹ «Тишина», «Крик», «Великий крик», «Приказ», «Великий приказ» и других, ÑвÑзанных Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð½ÐµÑением Ñлов.~ -@366=~ПеÑÐ½Ñ ÐšÐ°ÑƒÐ´Ð¸ÐµÑ~ -@365=~ÐœÐµÐ»Ð¾Ð´Ð¸Ñ Ð¢Ð¸Ð¼Ð¾Ñ€Ñ‹ — Улучшение удачи и навыков~ -@364=~Â«ÐœÐµÐ»Ð¾Ð´Ð¸Ñ Ð¢Ð¸Ð¼Ð¾Ñ€Ñ‹Â» -Ð’Ñе Ñоюзники в радиуÑе 30 футов получают +1 к удаче, +3 к ÑпаÑброÑкам, +10 к знанию легенд, а также +10% ко вÑем воровÑким навыкам.~ -@363=~ÐœÐµÐ»Ð¾Ð´Ð¸Ñ Ð¢Ð¸Ð¼Ð¾Ñ€Ñ‹~ -@362=~Сага о Курране Храброе Сердце — Иммунитет к Ñтраху~ -@361=~«Сага о Курране Храброе Сердце» -Ð’Ñе Ñоюзники в радиуÑе 30 футов избавлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ любого воздейÑÑ‚Ð²Ð¸Ñ Ñтраха и получают к нему иммунитет на Ð²Ñ€ÐµÐ¼Ñ Ð¸ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑни.~ -@360=~Сага о Курране Храброе Сердце~ -@359=~Баллада о трех героÑÑ… — Боевые улучшениÑ~ -@358=~«Баллада о трех героÑх» -Ð’Ñе Ñоюзники в радиуÑе 30 футов получают +1 к броÑкам атаки, +1 к урону и +1 ко вÑем ÑпаÑброÑкам.~ -@357=~Баллада о трех героÑÑ…~ -@356=~РаÑпев -(Вызывание/Призывание) -Уровень: 2 -Сфера: Бой -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 60 футов -СпаÑброÑок: нет -Жрец взывает к оÑобому раÑположению Ð´Ð»Ñ ÑÐµÐ±Ñ Ð¸ Ñвоей группы, а также причинÑет вред противникам. ПоÑле его Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð²Ñе дружеÑтвенные заклинателю ÑущеÑтва в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÑŽÑ‚ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ +1 к ÑпаÑброÑкам, броÑкам атаки, броÑкам лечениÑ, минимальному урону. Кроме того, броÑки урона любых Ñффектов, направленные на объект, находÑщийÑÑ Ð¿Ð¾Ð´ дейÑтвием Ñтого заклинаниÑ, за иÑключением базового урона Ð¾Ñ€ÑƒÐ¶Ð¸Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐ°ÑŽÑ‚ÑÑ Ð½Ð° 1. Ðапример, «Огненный шар» вмеÑто 6d6 урона от Ð¾Ð³Ð½Ñ Ð±ÑƒÐ´ÐµÑ‚ причинÑÑ‚ÑŒ только 6d5, а пылающий длинный меч, который наноÑит 1d8+2 рубÑщего и 1d3 огненного урона, будет наноÑить только 1d8+2 рубÑщего и 1d5 огненного урона. Враги жреца получают противоположный Ñффект ко вÑем аналогичным параметрам. -Многократные Ñффекты Ñтого Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð½Ðµ ÑуммируютÑÑ. Это заклинание требует от Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ концентрации, так что жрец не Ñможет иÑпользовать другие Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ñпева, а ÑкороÑÑ‚ÑŒ его Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐ°ÐµÑ‚ÑÑ Ð²Ð´Ð²Ð¾Ðµ.~ -@355=~РаÑпев~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Жук-точильщик~ -@352=~Жук-точильщик~ -@351=~Жук-бомбардир~ -@350=~Жук-бомбардир~ -@349=~ГигантÑкое наÑекомое -(Изменение) -Уровень: 4 -Сфера: Животные -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 8 чаÑов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает двух или трех жуков, точильщиков или бомбардиров, которые будут ÑражатьÑÑ Ð½Ð° Ñтороне Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾ Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ пока не будут убиты.~ -@348=~ГигантÑкое наÑекомое~ -@347=~ÐанеÑти критичеÑкие раны -(ÐекромантиÑ) -Уровень: 5 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: Ñнижает урон вдвое -Прочитав заклинание и дотронувшиÑÑŒ до ÑущеÑтва, жрец наноÑит ему 27 единиц урона (половину при уÑпешном ÑпаÑброÑке против заклинаниÑ). Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно доÑтупно только злым перÑонажам.~ -@346=~ÐанеÑти критичеÑкие раны~ -@345=~ÐанеÑти Ñерьезные раны -(ÐекромантиÑ) -Уровень: 4 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: Ñнижает урон вдвое -Прочитав заклинание и дотронувшиÑÑŒ до ÑущеÑтва, жрец наноÑит ему 17 единиц урона (половину при уÑпешном ÑпаÑброÑке против заклинаниÑ). Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно недоÑтупно добрым перÑонажам.~ -@344=~ÐанеÑти Ñерьезные раны~ -@343=~Откачано два уровнÑ~ -@342=~Отток Ñнергии -(ÐекромантиÑ) -Уровень: 7 -Сфера: ÐÐµÐºÑ€Ð¾Ð¼Ð°Ð½Ñ‚Ð¸Ñ -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: поÑтоÑнно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Открывает канал между планом, на котором находитÑÑ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»ÑŒ, и Планом Ðегативной Энергии. Сам заклинатель ÑтановитÑÑ ÑвÑзующим звеном, Ð¾Ñ‚ÐºÐ°Ñ‡Ð¸Ð²Ð°Ñ Ð¸ переправлÑÑ Ð¶Ð¸Ð·Ð½ÐµÐ½Ð½ÑƒÑŽ Ñилу жертвы на План Ðегативной Энергии, таким образом, Ð»Ð¸ÑˆÐ°Ñ ÐµÐµ двух уровней опыта. Уровни терÑÑŽÑ‚ÑÑ Ð½Ð°Ð²Ñегда вмеÑте Ñ Ð¿ÑƒÐ½ÐºÑ‚Ð°Ð¼Ð¸ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¸ полученными ÑпоÑобноÑÑ‚Ñми. Вернуть вÑÑ‘ Ñто можно только Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ жречеÑкого Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«Ð’Ð¾ÑÑтановление». Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно доÑтупно только перÑонажам Ñо злым мировоззрением.~ -@341=~Отток Ñнергии~ -@340=~Запутывание~ -@339=~ÐŸÐ¾Ð»Ð·ÑƒÑ‡Ð°Ñ ÐºÑƒÑ‡Ð°~ -@338=~ÐŸÐ¾Ð»Ð·ÑƒÑ‡Ð°Ñ ÐºÑƒÑ‡Ð°~ -@337=~ПреÑледователь -(Вызывание) -Уровень: 7 -Сфера: РаÑÑ‚ÐµÐ½Ð¸Ñ -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 8 чаÑов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -ПоÑвлÑÑŽÑ‚ÑÑ Ð´Ð²Ðµ ползучие кучи Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ 11, которые охотно помогают заклинателю в бою и выполнÑÑŽÑ‚ любые приказы, которые Ñмогут.~ -@336=~ПреÑледователь~ -@335=~Туман Эльдат -(ПроÑвление) -Уровень: 7 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: нет -ОблаÑÑ‚ÑŒ дейÑÑ‚Ð²Ð¸Ñ Ð¾ÐºÑƒÑ‚Ñ‹Ð²Ð°ÐµÑ‚ ÑеребриÑто-голубой туман. Ð’Ñе ÑущеÑтва в тумане избавлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ болезней и Ñдов и воÑÑтанавливают по 25 пунктов здоровьÑ.~ -@334=~Туман Эльдат~ -@333=~Великий щит Латандера -(Вызывание) -Уровень: 7 -Сфера: Охрана -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 3 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Ðа Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ†ÐµÐ»ÑŒ неуÑзвима Ð´Ð»Ñ Ð»ÑŽÐ±Ð¾Ð³Ð¾ урона и получает 100% Ñопротивление магии. Злые ÑущеÑтва не могут быть защищены Ñтим заклинанием. «Великий щит Латандера» могут читать только добрые перÑонажи.~ -@332=~Великий щит Латандера~ -@331=~Уничтожение -(ÐекромантиÑ) -Уровень: 7 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: оÑобый -Цель моментально уничтожаетÑÑ, разлетаÑÑÑŒ на мелкие куÑочки. Удачный ÑпаÑброÑок против Ñмерти Ñ ÑƒÑ…ÑƒÐ´ÑˆÐµÐ½Ð¸ÐµÐ¼ −4 позволÑет избежать ÑƒÐ½Ð¸Ñ‡Ñ‚Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ получить 8d6 единиц магичеÑкого урона. Это заклинание могут читать только злые перÑонажи. Обратите внимание, что перÑонаж, убитый «Уничтожением», не Ñможет воÑÑтать из мертвых под дейÑтвием заклинаний «Оживление» или «ВоÑкрешение».~ -@330=~Уничтожение~ -@329=~Заклинание не подейÑтвовало~ -@328=~ÐÐµÐ¿Ñ€Ð¾Ð½Ð¸Ñ†Ð°ÐµÐ¼Ð°Ñ Ñ‡Ð¸Ñтота разума -(Ограждение) -Уровень: 7 -Сфера: Защита -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -УкреплÑет разум заклинателÑ, Ð·Ð°Ñ‰Ð¸Ñ‰Ð°Ñ ÐµÐ³Ð¾ от внешних воздейÑтвий. Во Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾Ð½ не подвергаетÑÑ Ð¾Ñ‡Ð°Ñ€Ð¾Ð²Ð°Ð½Ð¸ÑŽ, замешательÑтву, Ñтраху, Ñлабоумию, удержанию, уÑыплению, попаданию в лабиринт, ÑоÑтоÑнию берÑерка и опьÑнению. ~ -@327=~ÐÐµÐ¿Ñ€Ð¾Ð½Ð¸Ñ†Ð°ÐµÐ¼Ð°Ñ Ñ‡Ð¸Ñтота разума~ -@326=~Символ: БезнадежноÑÑ‚ÑŒ -(Вызывание/Призывание) -Уровень: 7 -Сфера: Охрана -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: отменÑет дейÑтвие -Это мощное заклинание, которое позволÑет жрецу начертить Ñимвол на земле или другой поверхноÑти. Символ оÑтаетÑÑ Ð½Ð° меÑте до тех пор, пока кто-нибудь не подойдет к нему Ñлишком близко, поÑле чего он взрываетÑÑ, и вÑе в облаÑти его дейÑтвиÑ, кто провалит ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ ÑƒÑ…ÑƒÐ´ÑˆÐµÐ½Ð¸ÐµÐ¼ −2, оÑтанавливаютÑÑ, мучаÑÑÑŒ унынием и Ñознанием безыÑходноÑти. Они никак не будут защищатьÑÑ Ð¾Ñ‚ нападениÑ. Ð’ момент Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñет вÑе Ñффекты Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«Ð­Ð¼Ð¾Ñ†Ð¸Ñ: Ðадежда» в облаÑти дейÑтвиÑ.~ -@325=~Символ: БезнадежноÑÑ‚ÑŒ~ -@324=~УжаÑные боли~ -@323=~Символ: Боль -(Вызывание/Призывание) -Уровень: 7 -Сфера: Охрана -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 11 ходов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: отменÑет дейÑтвие -Ð’Ñе враги в пределах 15 футов от Ñимвола боли должны Ñделать ÑпаÑброÑок против заклинаниÑ. Провалив ÑпаÑброÑок, они мучаютÑÑ Ñтрашной болью и получают ухудшение −4 к броÑкам на атаку, а ловкоÑÑ‚ÑŒ и клаÑÑ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ у них ÑнижаютÑÑ Ð½Ð° 2.~ -@322=~Символ: Боль~ -@321=~Духовный гнев -(ПроÑвление) -Уровень: 6 -Сфера: Бой -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 2 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: Ñнижает урон вдвое -Ð’ теле жреца концентрируетÑÑ Ð´ÑƒÑ…Ð¾Ð²Ð½Ð°Ñ Ð¼Ð¾Ñ‰ÑŒ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð·Ð°Ñ‚ÐµÐ¼ вылетает в четырех направлениÑÑ…, как разрÑды молнии. Любое ÑущеÑтво на пути у разрÑда получает 4d10 единиц урона магией (вдвое меньше при удачном ÑпаÑброÑке). СущеÑтва, разделÑющие Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»ÐµÐ¼ моральные ÑƒÐ±ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ (добрые, нейтральные, злые), не подвержены дейÑтвию заклинаниÑ.~ -@320=~Духовный гнев~ -@319=~Вихрь -(ПроÑвление) -Уровень: 6 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (Воздух) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: оÑÐ¾Ð±Ð°Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: оÑобый -Около Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑвлÑетÑÑ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¾Ð¹ вихрь, который можно отправить в любую точку в поле зрениÑ. ДоÑтигнув Ñтой точки, вихрь выходит из-под ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¸ начинает беÑпорÑдочно кружить, Ð¿Ð¾Ñ€Ð°Ð¶Ð°Ñ Ð²Ñех подрÑд. Его дейÑтвию не подвергаетÑÑ Ñам заклинатель, а также Ñлементали и другие огромные ÑущеÑтва. Любой, кто окажетÑÑ Ð½Ð° пути у вихрÑ, получает 2d8 дробÑщего и 2d8 рубÑщего урона, а при неудачном ÑпаÑброÑке против Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð´Ñ‹Ñ…Ð°Ð½Ð¸Ñ ÐµÑ‰Ðµ и Ñтрадает от контузии на 2 раунда. СущеÑтва Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð½Ðµ выше 2 автоматичеÑки погибают. Вихрь поражает не более 8 целей, а затем раÑÑеиваетÑÑ.~ -@318=~Вихрь~ -@317=~Щит Ñнтропии -(Отречение) -Уровень: 6 -Сфера: Защита -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Ð—Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾ÐºÑ€ÑƒÐ¶Ð°ÐµÑ‚ защитный ÑнергетичеÑкий вихрь, который поглощает или отражает большую чаÑÑ‚ÑŒ атак. Жрец получает улучшение +6 к клаÑÑу защиты и 50% Ñопротивление к ÑлектричеÑкому, огненному, холодному и киÑлотному урону. Кроме того, заклинатель ÑтановитÑÑ Ð½ÐµÑƒÑзвим к «Пламенному удару» и вÑем ÑнарÑдам, в том чиÑле магичеÑким.~ -@316=~Щит Энтропии~ -@315=~ÐанеÑти множеÑтвенные легкие раны -(ÐекромантиÑ) -Уровень: 5 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: Ñнижает урон вдвое -Жрец наноÑит врагам Ñ€Ñдом 1d8 единиц урона + 1 единица за каждый уровень заклинателÑ. УÑпешный ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñнижает урон вдвое. Эта заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно доÑтупно только перÑонажам Ñо злым мировоззрением.~ -@314=~ÐанеÑти множеÑтвенные легкие раны~ -@313=~Ð–Ð¸Ð²Ð¾Ñ‚Ð½Ð°Ñ ÑроÑÑ‚ÑŒ -(Зачарование) -Уровень: 5 -Сфера: Бой -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 15 раундов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Цель ÑтановитÑÑ Ñвирепой, Ñловно дикий зверь. Ее Ñила возраÑтает до 19, она получает 20 дополнительных пунктов здоровьÑ, прибавку +20% к ÑкороÑти Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¸ +2 ко вÑем ÑпаÑброÑкам. Ðа Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ†ÐµÐ»ÑŒ терÑет ÑпоÑобноÑÑ‚ÑŒ колдовать. Ее можно нормально контролировать, пока в ее поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð½Ðµ попадет враг. Тогда цель тут же атакует его в ближнем бою, пользуÑÑÑŒ тем оружием, что держит в руках. С вероÑтноÑтью 5% каждый раунд цель может впаÑÑ‚ÑŒ в ÑоÑтоÑние берÑерка и Ñтанет нападать на вÑех подрÑд.~ -@312=~Ð–Ð¸Ð²Ð¾Ñ‚Ð½Ð°Ñ ÑроÑÑ‚ÑŒ~ -@311=~Оберег от нежити -(ÐекромантиÑ) -Уровень: 5 -Сфера: Опека -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 10 футов -СпаÑброÑок: нет -УÑиливает воздейÑтвие жреца на нежить в той облаÑти, где было прочитано. Оно изгонÑет любую нежить, вошедшую в Ñту облаÑÑ‚ÑŒ, как еÑли бы Ñто делал Ñам жрец. ПоÑле неудачной попытки Ð¸Ð·Ð³Ð½Ð°Ð½Ð¸Ñ Ñто заклинание переÑтает влиÑÑ‚ÑŒ на неживое Ñоздание, еÑли только оно не покинет облаÑÑ‚ÑŒ дейÑÑ‚Ð²Ð¸Ñ Ð¸ не войдет в нее Ñнова.~ -@310=~Оберег от нежити~ -@309=~Щит Латандера -(Вызывание) -Уровень: 5 -Сфера: Охрана -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 2 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Ðа Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ†ÐµÐ»ÑŒ ÑтановитÑÑ Ð½ÐµÑƒÑзвима Ð´Ð»Ñ Ð»ÑŽÐ±Ð¾Ð³Ð¾ урона. Злые ÑущеÑтва не могут быть защищены Ñтим заклинанием. «Щит Латандера» могут читать только добрые и нейтральные перÑонажи.~ -@308=~Щит Латандера~ -@307=~ШипаÑтые камни -(Изменение, Зачарование) -Уровень: 5 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (ЗемлÑ) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 12 раундов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 8 футов -СпаÑброÑок: оÑобый -ИзменÑет камни вокруг, Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰Ð°Ñ Ð¸Ñ… в оÑтрые шипы, торчащие из земли. Любое ÑущеÑтво, Ð·Ð°Ñ…Ð¾Ð´Ñ Ð² зону поражениÑ, получает 2d4 колющего урона каждый раунд, а еÑли ему не удаетÑÑ ÑпаÑброÑок против заклинаниÑ, то ÑкороÑÑ‚ÑŒ его Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ð´Ð°ÐµÑ‚ на 30%.~ -@306=~ШипаÑтые камни~ -@305=~Праведный гнев верующего -(Зачарование/Очарование) -Уровень: 5 -Сфера: Бой -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 17 футов -СпаÑброÑок: нет -Приводит Ñоюзников жреца в ÑоÑтоÑние Ñвоеобразного религиозного ÑкÑтаза, улучшающего их ÑпоÑобноÑти в бою. Ð’Ñе Ñоюзники жреца, попавшие в облаÑÑ‚ÑŒ дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, получают улучшение +1 к броÑкам на атаку и ÑпаÑброÑкам, а также 8 дополнительных пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ (здоровье может превыÑить нормальный макÑимум). ПерÑонажи одного Ð¼Ð¸Ñ€Ð¾Ð²Ð¾Ð·Ð·Ñ€ÐµÐ½Ð¸Ñ Ñо жрецом получают дополнительную атаку за раунд и улучшение +2 к броÑкам на атаку, урон и ÑпаÑброÑкам. ПоÑле Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð²Ñе, на кого оно дейÑтвовало, чувÑтвуют уÑталоÑÑ‚ÑŒ.~ -@304=~Праведный гнев верующего~ -@303=~Стена лунного Ñвета -(ПроÑвление) -Уровень: 4 -Сфера: Защита, Солнце -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: Ñтена длиной в 8 футов и шириной в 5 футов -СпаÑброÑок: нет -Ð’ указанном меÑте поÑвлÑетÑÑ Ð¼ÐµÑ€Ñ†Ð°ÑŽÑ‰Ð°Ñ ÑнергетичеÑÐºÐ°Ñ Ð·Ð°Ð²ÐµÑа бело-Ñиней раÑцветки. Стена неоÑÑзаема, не требует привÑзки к материальному предмету, Ñквозь нее можно без труда пройти. Злые ÑущеÑтва при проходе Ñквозь Ñтену получают 2d10 единиц магичеÑкого урона, а Ð·Ð»Ð°Ñ Ð½ÐµÐ¶Ð¸Ñ‚ÑŒ — 5d10 единиц. Урон наноÑитÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ при первом переÑечении Ñтены.~ -@302=~Стена лунного Ñвета~ -@301=~Колючие брызги -(Изменение) -Уровень: 4 -Сфера: РаÑÑ‚ÐµÐ½Ð¸Ñ -ДальноÑÑ‚ÑŒ: 30 футов -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: 90-градуÑный ÐºÐ¾Ð½ÑƒÑ Ð² 17 футов -СпаÑброÑок: Ñнижает урон вдвое -Заклинатель выбраÑывает из рук множеÑтво шипов, колючек и иголок. Они разлетаютÑÑ Ð² пределах конуÑа длиной в 17 футов, наноÑÑ Ð²Ñем ÑущеÑтвам в облаÑти дейÑÑ‚Ð²Ð¸Ñ 2d10 единиц колющего урона (половину при уÑпешном ÑпаÑброÑке против Ñмерти).~ -@300=~Колючие брызги~ -@299=~Без ÑознаниÑ~ -@298=~Ð¡Ð¾ÐºÑ€ÑƒÑˆÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð²Ð¾Ð»Ð½Ð° -(ПроÑвление) -Уровень: 4 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (Вода) -ДальноÑÑ‚ÑŒ: 100 футов -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: оÑобый -Ð’ направлении, указанном заклинателем, движетÑÑ Ð¼Ð¾Ñ‰Ð½Ð°Ñ Ð²Ð¾Ð»Ð½Ð° воды, ÑÐ¼ÐµÑ‚Ð°Ñ Ð²ÑÑ‘ на Ñвоем пути. Волна наноÑит 4d10 дробÑщего урона, а также может контузить ÑущеÑтво на 2 раунда (вероÑтноÑÑ‚ÑŒ 25%) или лишить ÑÐ¾Ð·Ð½Ð°Ð½Ð¸Ñ (вероÑтноÑÑ‚ÑŒ 5%). УÑпешный ÑпаÑброÑок против Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð´Ñ‹Ñ…Ð°Ð½Ð¸Ñ Ð½Ð°Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñƒ Ñнижает урон и позволÑет избежать контузии и потери ÑознаниÑ.~ -@297=~Ð¡Ð¾ÐºÑ€ÑƒÑˆÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð²Ð¾Ð»Ð½Ð°~ -@296=~Дубинка из звездного металла~ -@295=~Дубинка из звездного металла~ -@294=~Дубинка из звездного металла -(Вызывание) -Уровень: 4 -Сфера: Бой -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 3 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Ð’ руке Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑвлÑетÑÑ Ð²Ð¾Ð»ÑˆÐµÐ±Ð½Ð°Ñ Ð´ÑƒÐ±Ð¸Ð½ÐºÐ° из метеоритного железа, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð½Ð°Ð½Ð¾Ñит 1d6+2 единиц дробÑщего урона, дает улучшение +2 к атаке и урону. При определении, каких ÑущеÑтв можно ей поразить, она раÑцениваетÑÑ ÐºÐ°Ðº оружие Ñ Ð·Ð°Ñ‡Ð°Ñ€Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ +4. ДейÑтвуют вÑе ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¸ ÑƒÑ…ÑƒÐ´ÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñиле, навыкам и Ñпециализации. ПротивоеÑтеÑтвенным ÑущеÑтвам (нежити, ÑлементалÑм, големам, ÑущеÑтвам Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… планов и так далее) дубинка дополнительно наноÑит 2d6 дробÑщего урона.~ -@293=~Дубинка из звездного металла~ -@292=~Ð‘ÐµÐ·ÑƒÐ¿Ñ€ÐµÑ‡Ð½Ð°Ñ Ð²Ñ‹Ð½Ð¾ÑливоÑÑ‚ÑŒ -(ÐекромантиÑ) -Уровень: 4 -Сфера: ÐÐµÐºÑ€Ð¾Ð¼Ð°Ð½Ñ‚Ð¸Ñ -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -ПрикоÑнувшиÑÑŒ к цели, заклинатель возвращает ей Ñилы, пропавшие от уÑталоÑти.~ -@291=~Ð‘ÐµÐ·ÑƒÐ¿Ñ€ÐµÑ‡Ð½Ð°Ñ Ð²Ñ‹Ð½Ð¾ÑливоÑÑ‚ÑŒ~ -@290=~Чумное облако -(Изменение) -Уровень: 4 -Сфера: Бой, Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (Воздух) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 4 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 12 футов -СпаÑброÑок: отменÑет дейÑтвие -Воздух в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ÑÑ Ð² тошнотворные Ñероватые клубы тумана. Облако не влиÑет на Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¸ неживых ÑущеÑтв. Каждый раунд, проведенный в зараженном облаке, жертва получает 3 единицы магичеÑкого урона, терÑет по 3 единицы Ñилы и ловкоÑти и Ñлепнет. Эти Ñффекты ÑохранÑÑŽÑ‚ÑÑ Ð½Ð° 1 ход. Это заклинание могут читать только злые перÑонажи.~ -@289=~Чумное облако~ -@288=~ÐанеÑти контузию~ -@287=~Пункты Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð²Ð¾ÑÑтановлены~ -@286=~ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ ÑроÑÑ‚ÑŒ -(Изменение) -Уровень: 4 -Сфера: Бой -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -ДейÑтвует только на перÑонажей игрока или их Ñоюзников. Цель впадает в ÑоÑтоÑние берÑерка, атакует ближайшее ÑущеÑтво, пока оно не погибнет, а затем переходит к Ñледующему. Заклинание делает цель неуÑзвимой Ð´Ð»Ñ Ð¾Ñ‡Ð°Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, Ñна, Ñтраха, удержаниÑ, контузии, замешательÑтва, заклинаниÑм Ñимволов и Ñмоций и аналогичного воздейÑтвиÑ. Также цель получает ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ +2 к атаке, +3 к урону и 10 дополнительных пунктов здоровьÑ, увеличиваетÑÑ ÐµÐµ ÑкороÑÑ‚ÑŒ передвижениÑ, а Ñила возраÑтает на 2. Ðо у Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ ÐµÑÑ‚ÑŒ и недоÑтатки. Оно не позволÑет Ñледить за уровнем Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ñ†ÐµÐ»Ð¸ и лечить ее. По окончании дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ†ÐµÐ»ÑŒ ощущает уÑталоÑÑ‚ÑŒ, а ее Ñила на 2 хода ÑнижаетÑÑ Ð´Ð¾ 3. Â«ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ ÑроÑть» не дейÑтвует на законопоÑлушных ÑущеÑтв, и читать ее могут только нейтральные и хаотичные перÑонажи.~ -@285=~ÐšÑ€Ð¾Ð²Ð°Ð²Ð°Ñ ÑроÑÑ‚ÑŒ~ -@284=~Ð”ÐµÐºÐ»Ð°Ð¼Ð°Ñ†Ð¸Ñ -(Ограждение, ПроÑвление/Воплощение) -Уровень: 4 -Сфера: Бой -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 25 футов -СпаÑброÑок: нет -Ð”ÐµÐºÐ»Ð°Ð¼Ð¸Ñ€ÑƒÑ Ð¾Ñ‚Ñ€Ñ‹Ð²Ð¾Ðº ÑвÑщенного текÑта или гимн, жрец призывает на ÑÐµÐ±Ñ Ð¸ Ñоюзников благоÑловение Ñвоего божеÑтва, одновременно Ð¿Ð¾Ð²ÐµÑ€Ð³Ð°Ñ Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð½Ð¸ÐºÐ¾Ð² в ÑмÑтение и оÑлаблÑÑ Ð¸Ñ…. Жрец и его Ñоюзники делают атаки и ÑпаÑброÑки Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸ÐµÐ¼ +2, а враги — Ñ ÑƒÑ…ÑƒÐ´ÑˆÐµÐ½Ð¸ÐµÐ¼ −2. Это заклинание не отменÑет Ñффект «Молитвы» — их можно применить вмеÑте, и воздейÑтвие будет ÑкладыватьÑÑ.~ -@283=~ДекламациÑ~ -@282=~ЭлектроÑтатичеÑкий разрÑд~ -@281=~СтатичеÑкий разрÑд -(Изменение) -Уровень: 4 -Сфера: Погода -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -СпаÑброÑок: Ñнижает урон вдвое -Это заклинание дейÑтвует примерно так же, как заклинание «Вызвать молнию», но его можно иÑпользовать в помещении. Оно окружает каждое ÑущеÑтво в облаÑти дейÑÑ‚Ð²Ð¸Ñ ÑтатичеÑким зарÑдом, который наноÑит урон ÑлектричеÑтвом, 2d8 Ð¿Ð»ÑŽÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ 1d8 на каждый уровень опыта заклинателÑ. Ð’ течение вÑего Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ñ€Ñд бьет каждый ход.~ -@280=~СтатичеÑкий разрÑд~ -@279=~Сотворить огонь -(Изменение) -Уровень: 4 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (Огонь) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 4 футов -СпаÑброÑок: нет -Из указанной заклинателем точки вырываетÑÑ Ð¾Ð³Ð¾Ð½ÑŒ, который наноÑит вÑем ÑущеÑтвам в облаÑти дейÑÑ‚Ð²Ð¸Ñ 1d4 единиц урона от Ð¾Ð³Ð½Ñ Ð¿Ð»ÑŽÑ 1 единицу за каждый уровень заклинателÑ. Жертвы получают Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð´Ð¸Ð½ раз в раунд незавиÑимо от того, когда они вошли в зону охвата.~ -@278=~Сотворить огонь~ -@277=~МилоÑÑ‚ÑŒ Ильматера -(ÐекромантиÑ) -Уровень: 3 -Сфера: ÐекромантиÑ, Защита -ДальноÑÑ‚ÑŒ: 30 футов -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Вызвав Ñто заклинание, заклинатель обмениваетÑÑ Ñвоими жизненными Ñилами Ñ Ñ†ÐµÐ»ÑŒÑŽ, Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ð°Ñ Ð²Ñе повреждениÑ. Это заклинание дейÑтвует только еÑли у Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð±Ð¾Ð»ÑŒÑˆÐµ пунктов здоровьÑ, чем у его цели. Обмен жизненными Ñилами оÑтаетÑÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñ‹Ð¼ до тех пор, пока не иÑпользуютÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ðµ ÑпоÑобы лечениÑ. Его невозможно провеÑти Ñ Ñ€Ð°ÑÑтоÑниÑ, превышающего допуÑтимую дальноÑÑ‚ÑŒ. ПеремещаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ пункты здоровьÑ; заклинатель не может принÑÑ‚ÑŒ на ÑÐµÐ±Ñ Ð½ÐµÐ³Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ðµ ÑоÑтоÑние цели, такое как болезнь, отравление, опъÑнение или другие недуги. -Это заклинание недоÑтупно перÑонажам Ñо злым мировоззрением. Оно не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов.~ -@276=~МилоÑÑ‚ÑŒ Ильматера~ -@275=~ÐанеÑти Ñредние раны -(ÐекромантиÑ) -Уровень: 3 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: Ñнижает урон вдвое -Прочитав Ñто заклинание и дотронувшиÑÑŒ до ÑущеÑтва, жрец нанеÑет ему 14 единиц урона (или вдвое меньше при уÑпешном ÑпаÑброÑке против заклинаниÑ). Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов, а также недоÑтупно добрым перÑонажам.~ -@274=~ÐанеÑти Ñредние раны~ -@273=~Оболочка бури -(Ограждение) -Уровень: 3 -Сфера: Защита, Погода -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Вокруг Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ‚ Ñ‚ÐµÐ¼Ð½Ð°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ° разрушительной Ñнергии, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð³Ð°ÐµÑ‚ÑÑ Ð²Ð¼ÐµÑте Ñ Ð½Ð¸Ð¼. Любой урон от огнÑ, холода и ÑлектричеÑтва Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐµ уменьшаютÑÑ Ð½Ð°Ð¿Ð¾Ð»Ð¾Ð²Ð¸Ð½Ñƒ.~ -@272=~Оболочка бури~ -@271=~ПрикоÑновение плеÑени -(Изменение) -Уровень: 3 -Сфера: РаÑÑ‚ÐµÐ½Ð¸Ñ -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: оÑÐ¾Ð±Ð°Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 10 футов -СпаÑброÑок: оÑобый -Заклинатель прикаÑаетÑÑ Ðº ÑущеÑтву и поражает его коричневой плеÑенью, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð±Ñ‹Ñтро раÑпроÑтранÑетÑÑ. Жертве разрешаетÑÑ Ñделать ÑпаÑброÑок против заклинаниÑ; в Ñлучае провала заражение ÑтановитÑÑ Ñерьезным, и ÑущеÑтво получает урон: -1-й раунд: 4d6 единиц -2-й раунд: 3d6 единиц -3-й раунд: 2d6 единиц -4-й раунд: 1d6 единиц -При уÑпешном ÑпаÑброÑке урон меньше: -1-й раунд: 2d6 единиц -2-й раунд: 1d6 единиц -3-й раунд: 1d6 единиц -Каждый раунд, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñо второго, ближайшее из ÑущеÑтв, находÑщихÑÑ Ð² пределах 10 футов от жертвы, поражаетÑÑ Ð¿Ð»ÐµÑенью в полную Ñилу, еÑли не Ñделает уÑпешный ÑпаÑброÑок от заклинаний. Это продолжаетÑÑ, пока не кончатÑÑ Ð¿Ð¾Ð´Ñ…Ð¾Ð´Ñщие жертвы Ð´Ð»Ñ Ð¿Ð»ÐµÑени. СущеÑтва, уже находÑщиеÑÑ Ð¿Ð¾Ð´ ее воздейÑтвием, не могут заразитьÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñ‡Ð½ÐµÐ²Ð°Ñ Ð¿Ð»ÐµÑень быÑтро погибает.~ -@270=~ПрикоÑновение плеÑени~ -@269=~Ливень -(ПроÑвление) -Уровень: 3 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (Вода) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 2 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 17 футов -СпаÑброÑок: нет -Вызывает волшебный дождь, который проходит в облаÑти дейÑтвиÑ. СущеÑтва, живущие в огне или льдах или иÑпользующие огненные или ледÑные атаки, получают каждый раунд 2d3 единиц магичеÑкого урона. Помимо Ñтого, любое ÑущеÑтво в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ñ Ð²ÐµÑ€Ð¾ÑтноÑтью 50% каждый раунд может Ñтать жертвой удара молнии, который наноÑит 2d6 урона от ÑлектричеÑтва (вдвое меньше при уÑпешном ÑпаÑброÑке против заклинаниÑ). «Ливень» гаÑит ауры Ñаламандр, Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«ÐŸÐ»Ð°Ð¼ÐµÐ½Ð½Ñ‹Ð¹ клинок» и «Саван пламени».~ -@268=~Ливень~ -@267=~РаÑтущие шипы -(Изменение) -Уровень: 3 -Сфера: Ð¡Ñ‚Ð¸Ñ…Ð¸Ñ (ЗемлÑ) -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: нет -Ð—ÐµÐ¼Ð»Ñ Ð²Ð¾ÐºÑ€ÑƒÐ³ покрываетÑÑ ÐºÐ¾Ð²Ñ€Ð¾Ð¼ шипаÑÑ‚Ñ‹Ñ… раÑтений. Любое ÑущеÑтво, вÑтупив в облаÑÑ‚ÑŒ охвата, получает 1d4 колющего и 1d4 рубÑщего урона каждый раунд до иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ.~ -@266=~РаÑтущие шипы~ -@265=~КоÑÑ‚Ñной круг -(ÐекромантиÑ) -Уровень: 3 -Сфера: Охрана, Созидание -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 3 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 3 футов -СпаÑброÑок: нет -Вокруг Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÐµÑ‚ быÑтро вращатьÑÑ Ð±Ð°Ñ€ÑŒÐµÑ€ из коÑтей. Любой, кто окажетÑÑ Ñƒ них на пути, каждый раунд получает 1d6 дробÑщего и 1d6 рубÑщего урона. Заклинатель не может передвигатьÑÑ, пока коÑÑ‚Ñной круг активен. Это заклинание недоÑтупно добрым перÑонажам.~ -@264=~КоÑÑ‚Ñной круг~ -@263=~Лунный клинок~ -@262=~Лунный клинок~ -@261=~Лунный клинок -(ПроÑвление) -Уровень: 3 -Сфера: Бой, Солнце -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Ð’ руке Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑвлÑетÑÑ Ð±ÐµÑшумный невеÑомый клинок, ÑоÑтоÑщий из лунного Ñвета. У Ð¾Ñ€ÑƒÐ¶Ð¸Ñ Ð½ÐµÑ‚ бонуÑа к THAC0, но оно раÑцениваетÑÑ ÐºÐ°Ðº +4, еÑли нужно ударить ÑущеÑтво, неуÑзвимое Ð´Ð»Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ð³Ð¾ оружиÑ. ПоÑкольку лунный клинок имеет нематериальную природу, при обращении Ñ Ð½Ð¸Ð¼ не учитываютÑÑ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñиле. -Лунный клинок вытÑгивает у цели жизненные Ñилы, наноÑÑ 1d12+4 единиц магичеÑкого урона. Ðежить чувÑтвительна к Ñтому оружию и получает дополнительно 1d12 единиц урона. Кроме того, попадание на Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð¿ÑƒÑ‚Ñ‹Ð²Ð°ÐµÑ‚ магию, поÑтому любое заклинание, которое жертва прочитает в Ñледующем раунде, провалитÑÑ.~ -@260=~Лунный клинок~ -@259=~УÑыпление~ -@258=~Ð­ÐºÐ·Ð°Ð»ÑŒÑ‚Ð°Ñ†Ð¸Ñ -(Ограждение) -Уровень: 3 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -Этим заклинанием жрец может помочь и дать защиту любому ÑущеÑтву, кроме ÑÐµÐ±Ñ Ñамого. ПрикоÑнувшиÑÑŒ к цели, заклинатель Ñнимает Ñффекты Ñтраха, Ñна, ÑлабоумиÑ, потери ÑознаниÑ, отравлениÑ, ÑроÑти и раÑтерÑнноÑти, а также на Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð´ÐµÐ»Ð°ÐµÑ‚ цель неуÑзвимой Ð´Ð»Ñ Ð°Ñ‚Ð°Ðº и заклинаний, вызывающих такие Ñффекты.~ -@257=~ЭкзальтациÑ~ -@256=~ÐаÑлать болезнь -(ÐекромантиÑ) -Уровень: 3 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 8 чаÑов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: отменÑет дейÑтвие -ДотронувшиÑÑŒ до цели, жрец наÑылает на нее болезнь, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²Ñ‹ÑаÑывает 5d4 единиц Ñилы. УÑпешный ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет избежать воздейÑтвиÑ. Заклинание не дейÑтвует на нежить, механизмы и ÑущеÑтва Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Добрые перÑонажи не могут иÑпользовать «ÐаÑлать болезнь».~ -@255=~ÐаÑлать болезнь~ -@254=~Ð£Ñ…ÑƒÐ´ÑˆÐµÐ½Ð¸Ñ Ð² бою~ -@253=~Ð£Ð»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð² бою~ -@252=~Молитва -(Вызывание/Призывание) -Уровень: 3 -Сфера: Бой -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 30 футов -СпаÑброÑок: нет -Молитва дарует божеÑтвенное благоÑловение жрецу и его Ñоюзникам, а их врагов проклинает. Союзники получают улучшение +1 к броÑкам на атаку, на урон и к ÑпаÑброÑкам, а враги — ухудшение −1. Ð’Ñе ÑущеÑтва, находившиеÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, оÑтанутÑÑ Ð¿Ð¾Ð´ дейÑтвием «Молитвы» и поÑле того, как покинут Ñту зону, так что, еÑли воины броÑÑÑ‚ÑÑ Ð² погоню за убегающим гоблином, Ñффект Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтанетÑÑ Ñ Ð½Ð¸Ð¼Ð¸.~ -@251=~Молитва~ -@250=~ÐанеÑти умеренные раны -(ÐекромантиÑ) -Уровень: 2 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: Ñнижает урон вдвое -Прочитав заклинание и дотронувшиÑÑŒ до ÑущеÑтва, жрец наноÑит ему 11 единиц урона (при уÑпешном ÑпаÑброÑке вдвое меньше). Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно недоÑтупно добрым перÑонажам.~ -@249=~ÐанеÑти умеренные раны~ -@248=~Коготь зверÑ~ -@247=~Коготь зверÑ~ -@246=~Коготь Ð·Ð²ÐµÑ€Ñ -(Изменение) -Уровень: 2 -Сфера: Бой -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Руки Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰Ð°ÑŽÑ‚ÑÑ Ð² когти мощного зверÑ, Ð¿Ñ€Ð¸Ð´Ð°Ð²Ð°Ñ ÐµÐ¼Ñƒ Ñилу 18/72 и возможноÑÑ‚ÑŒ наноÑить врагу 2d4 (+ добавочные за Ñилу) единиц рубÑщего урона. Заклинатель может бить когтÑми дважды за раунд, атака производитÑÑ Ñ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¸ÐµÐ¼ +2.~ -@245=~Коготь зверÑ~ -@244=~ОчерчиваетÑÑ ÑеребриÑтым ÑиÑнием (штраф −2 к КЗ)~ -@243=~Копье аликорна -(ПроÑвление) -Уровень: 2 -Сфера: Бой -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: оÑобый -Создает ÑеребриÑтое, чаÑтично Ñфирное копье в форме аликорна (рога единорога). Копье тут же летит в выбранную заклинателем цель, наноÑÑ ÐµÐ¹ 3d6 единиц колющего урона (половину при уÑпешном ÑпаÑброÑке против заклинаниÑ). ПоÑле удара копье иÑчезает, но еще 3 раунда вокруг цели оÑтаетÑÑ ÑеребриÑтое ÑиÑние, которое временно Ñнижает клаÑÑ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ цели на 2.~ -@242=~Копье Ðликорна~ -@241=~Здоровье воÑÑтановлено~ -@240=~Вылечить умеренные раны -(ÐекромантиÑ) -Уровень: 2 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -УÑÐ¸Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð¶Ñ€ÐµÑ‡ÐµÑкого Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð’Ñ‹Ð»ÐµÑ‡Ð¸Ñ‚ÑŒ легкие раны». ВоÑÑтанавливает 11 пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ñƒ ÑущеÑтва и Ñнимает опьÑнение. Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов.~ -@239=~Вылечить умеренные раны~ -@238=~ОÑлепление~ -@237=~Солнечный ожог -(ПроÑвление) -Уровень: 1 -Сфера: Солнце -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: оÑобый -Ðа выбранную заклинателем цель Ñ Ð½ÐµÐ±ÐµÑ Ð¿Ð°Ð´Ð°ÐµÑ‚ обжигающий луч Ñвета. СпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет цели Ñократить урон от ожога вдвое. Жертва получает 1d6 единиц урона + 1 единицу за каждый уровень заклинателÑ. Ðежить и монÑтры, чувÑтвительные к Ñркому Ñвету, получают 1d6 единиц урона + 2 единицы за каждый уровень заклинателÑ. Жертва также оÑлеплÑетÑÑ Ð½Ð° 3 раунда.~ -@236=~Солнечный ожог~ -@235=~ÐанеÑти легкие раны -(ÐекромантиÑ) -Уровень: 1 -Сфера: ИÑцеление -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: Ñнижает урон вдвое -Прочитав заклинание и дотронувшиÑÑŒ до ÑущеÑтва, жрец наноÑит ему 8 единиц урона (половину при уÑпешном ÑпаÑброÑке против заклинаниÑ). Это заклинание не дейÑтвует на нежить, механизмы и ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… планов. Оно недоÑтупно добрым перÑонажам.~ -@234=~ÐанеÑти легкие раны~ -@233=~ПроклÑтие~ -@232=~ПроклÑтие -(Вызывание/Призывание) -Уровень: 1 -Сфера: Ð’Ñе -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 6 раундов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: нет -Снижает боевой дух врагов и ухудшает на 1 их ÑпаÑброÑки и броÑки на атаку. Как только заклинание прочитано, оно оказывает Ñвое дейÑтвие на вÑех ÑущеÑтв внутри 15-футового куба Ñ Ñ†ÐµÐ½Ñ‚Ñ€Ð¾Ð¼ в точке, указанной заклинателем. Таким образом, ÑущеÑтва, покинувшие границы куба поÑле Ñтого, продолжают находитьÑÑ Ð¿Ð¾Ð´ дейÑтвием заклинаниÑ, а те, кто вошел в зону охвата, ему уже не подвергаютÑÑ.~ -@231=~ПроклÑтие~ -@230=~Это заклинание иÑцелÑет выбранного перÑонажа. ВоÑÑтанавливаетÑÑ Ð¾Ð´Ð¸Ð½Ð½Ð°Ð´Ñ†Ð°Ñ‚ÑŒ пунктов здоровьÑ.~ -@229=~Око ÐºÐ°Ð¼Ð½Ñ -Единожды предохранÑет Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð² камень. -Это око также можно иÑпользовать как магичеÑкое заклинание 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð£Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ перÑону», которое делает неподвижными человекоподобных ÑущеÑтв на 1 раунд за уровень (только еÑли они провалÑÑ‚ ÑпаÑброÑок против заклинаниÑ).~ -@228=~Око камнÑ~ -@227=~Око духа -Блокирует магичеÑкую атаку, вызывающую мгновенную Ñмерть («Смертельное заклÑтие», «ПерÑÑ‚ Ñмерти», «Слово Ñилы: Умри», «Умерщвление», «Уничтожение»). -Это око можно иÑпользовать как магичеÑкое заклинание 2-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð›ÑƒÑ‡ оÑлаблениÑ», которое Ñнижает Ñилу цели до 5 (только еÑли она провалит ÑпаÑброÑок против заклинаниÑ).~ -@226=~Око духа~ -@225=~Око ÑтойкоÑти -Предотвращает контузию, глухоту, Ñлепоту или немоту. -Это око также можно иÑпользовать как магичеÑкое заклинание 4-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐšÑ€Ð¸ÐºÂ», которое наноÑит 4d6 единиц магичеÑкого урона и оглушает ÑущеÑтв на раÑÑтоÑнии конуÑа в 35 футов. ЕÑли ÑущеÑтва уÑпешно выполнÑÑ‚ ÑпаÑброÑок против заклинаниÑ, то ÑнизÑÑ‚ урон вдвое и не оглохнут.~ -@224=~Око ÑтойкоÑти~ -@223=~Око Ñда -ОÑтанавливает одну атаку или дейÑтвие, ÑпоÑобные отравить заклинателÑ. -Это око можно иÑпользовать как жречеÑкое заклинание 4-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð¯Ð´Â», которое наноÑит 20 единиц урона в течение 20 Ñекунд одному ÑущеÑтву (только еÑли оно провалит ÑпаÑброÑок против Ñда).~ -@222=~Око Ñда~ -@221=~Око меча -Отражает первую физичеÑкую атаку, направленную на заклинателÑ. -Это око можно иÑпользовать как магичеÑкое заклинание 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐœÐ°Ð³Ð¸Ñ‡ÐµÑкий ÑнарÑд», которое Ñоздает до 5 ÑнарÑдов (один за каждые два ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ð¿Ñ‹Ñ‚Ð°, кроме первого), которые наноÑÑÑ‚ цели 1d4+1 единиц магичеÑкого урона.~ -@220=~Око меча~ -@219=~Око мага -Поглощает одну атаку холодом, огнем, ÑлектричеÑтвом или киÑлотой. -Это око можно иÑпользовать как магичеÑкое заклинание 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð Ð°Ð·Ñ€Ñд молнии», которое наноÑит 1d6 единиц урона от ÑлектричеÑтва вÑем ÑущеÑтвам на Ñвоем пути.~ -@218=~Око мага~ -@217=~Око разума -Защищает Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ воздейÑÑ‚Ð²Ð¸Ñ Ð½Ð° разум, к примеру, очарованиÑ, Ñмоций, Ñтраха. -Это око можно иÑпользовать как магичеÑкое заклинание 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐžÑ‡Ð°Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ перÑону», которое на 1 ход подчинÑет воле Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ð´Ð½Ð¾ человекоподобное ÑущеÑтво (только еÑли оно провалит ÑпаÑброÑок против заклинаниÑ).~ -@216=~Око разума~ -@215=~ÐÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚ÑŒ Ñто заклинание, пока не закончено чтение текущего заклинаниÑ.~ -@214=~Семь очей~ -@213=~Семь очей -(Ограждение) -Уровень: 7 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Ðад головой Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑвлÑÑŽÑ‚ÑÑ Ñемь магичеÑких Ñфер, медленно летающих по кругу. У каждого ока еÑÑ‚ÑŒ возможноÑÑ‚ÑŒ защиты или нападениÑ, но иÑпользовать его можно только Ð´Ð»Ñ Ñ‡ÐµÐ³Ð¾-либо одного, а затем он терÑет Ñилу. До иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð²Ð¾Ð»ÑˆÐµÐ±Ð½Ð¸Ðº не может прочитать «Семь очей» Ñнова, незавиÑимо от того, оÑталиÑÑŒ ли еще неиÑпользованные очи. СвойÑтва очей опиÑаны ниже. -Око разума — защищает Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ воздейÑÑ‚Ð²Ð¸Ñ Ð½Ð° разум, к примеру, зачарованиÑ, Ñмоций, Ñтраха. Может быть иÑпользовано как магичеÑкое заклинание 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐžÑ‡Ð°Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ перÑону», Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¼Ñƒ при неудачном ÑпаÑброÑке против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»ÑŒ может управлÑÑ‚ÑŒ жертвой в течение 1 хода. -Око меча — отражает первую физичеÑкую атаку, направленную на заклинателÑ. Может быть иÑпользовано как магичеÑкое заклинание 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐœÐ°Ð³Ð¸Ñ‡ÐµÑкий ÑнарÑд», которое выпуÑкает до 5 ÑнарÑдов (по одному за каждые два ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ð¿Ñ‹Ñ‚Ð°, помимо первого) Ñ ÑƒÑ€Ð¾Ð½Ð¾Ð¼ 1d4+1 от магии. -Око мага — поглощает одну атаку холодом, огнем, ÑлектричеÑтвом или киÑлотой. Может быть иÑпользовано как магичеÑкое заклинание 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð Ð°Ð·Ñ€Ñд молнии», которое наноÑит 1d6 урона ÑлектричеÑтвом за уровень Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ (до макÑимума в 10d6) вÑем ÑущеÑтвам на Ñвоем пути. -Око Ñда — оÑтанавливает одну атаку или дейÑтвие, ÑпоÑобные отравить заклинателÑ. Может быть иÑпользовано как жречеÑкое заклинание 4-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð¯Ð´Â», которое при неудачном ÑпаÑброÑке против Ñда наноÑит жертве 20 единиц урона в течение 20 Ñекунд. -Око духа — блокирует магичеÑкую атаку, вызывающую мгновенную Ñмерть («Смертельное заклÑтие», «ПерÑÑ‚ Ñмерти», «Слово Ñилы: Умри», «Умерщвление», «Уничтожение»). Может быть иÑпользовано как магичеÑкое заклинание 2-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð›ÑƒÑ‡ оÑлаблениÑ», которое при неудачном ÑпаÑброÑке против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñнижает Ñилу жертвы до 5. -Око ÑтойкоÑти — предотвращает контузию, глухоту, Ñлепоту или молчание. Также может быть иÑпользовано как магичеÑкое заклинание 4-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«ÐšÑ€Ð¸ÐºÂ», которое наноÑит 4d6 магичеÑкого урона и оглушает жертв в радиуÑе 35-футового конуÑа. При уÑпешном ÑпаÑброÑке против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¶ÐµÑ€Ñ‚Ð²Ñƒ не контузит, и она получает лишь половину урона. -Око ÐºÐ°Ð¼Ð½Ñ â€” предохранÑет Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð² камень. Также может быть иÑпользован как магичеÑкое заклинание 3-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð£Ð´ÐµÑ€Ð¶Ð°Ñ‚ÑŒ перÑону», которое при неудачном ÑпаÑброÑке против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾Ð±ÐµÐ·Ð´Ð²Ð¸Ð¶Ð¸Ð²Ð°ÐµÑ‚ жертву размером Ñ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ° или меньше на 1 раунд/уровень. -До Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ Ñнова прочитать «Семь очей», даже еÑли вÑе глаза уже были иÑпользованы.~ -@212=~Семь очей~ -@211=~ЯроÑÑ‚ÑŒ Малавона~ -@210=~ЯроÑÑ‚ÑŒ Малавона -(Воплощение) -Уровень: 7 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: Ñнижает урон вдвое -Это заклинание разработал маг-дроу Малавон. Из тела Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ð¾ вÑех направлениÑÑ… вылетают Ñтрелы из чиÑтой Ñнергии, поражающие и друзей, и врагов. Эти ÑнергетичеÑкие конуÑÑ‹ наноÑÑÑ‚ 20d4 единиц колющего урона любой цели, что окажетÑÑ Ñƒ них на пути. Заклинание оÑобенно Ñффективно, еÑли маг оказалÑÑ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½ противниками.~ -@209=~ЯроÑÑ‚ÑŒ Малавона~ -@208=~РазÑщий удар~ -@207=~Смерть~ -@206=~Ðежить уничтожена~ -@205=~Уничтожено ÑущеÑтво Ñ Ð’Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ Плана~ -@204=~Тени~ -@203=~Тени -(ИллюзиÑ/Фантом) -Уровень: 6 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Это заклинание дейÑтвует подобно заклинаниÑм «Чудовища тени» и «Чудовища полутени» — оно позволÑет заклинателю Ñоздавать из материи полуплана Теней призрачных ÑущеÑтв, которые подчинÑÑŽÑ‚ÑÑ ÐµÐ³Ð¾ приказам, пока не погибнут или не иÑтечет Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ. Тени Ñильнее, чем чудовища тени и чудовища полутени.~ -@202=~Тени~ -@201=~ПрикоÑновение лича~ -@200=~ПрикоÑновение лича~ -@199=~ПрикоÑновение лича -(ÐекромантиÑ) -Уровень: 6 -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: оÑобый -Заклинатель, подобно личу, ÑтановитÑÑ Ð½ÐµÑƒÑзвим к параличу и Ñтраху на Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, а его руки обретают Ñилу прикоÑÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð»Ð¸Ñ‡Ð° — они излучают неземной зеленый Ñвет, который наноÑит 1d10 урона от холода цели, которой каÑаетÑÑ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»ÑŒ, и парализует ее, еÑли жертва провалит ÑпаÑброÑок против парализации. Ðе дейÑтвует на нежить.~ -@198=~ПрикоÑновение лича~ -@197=~Эффекты развеÑны~ -@196=~ÐнтимагичеÑÐºÐ°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ°~ -@195=~ÐнтимагичеÑÐºÐ°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ° -(Ограждение) -Уровень: 6 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Окружает Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ñ‹Ð¼ барьером, который перемещаетÑÑ Ð²Ð¼ÐµÑте Ñ Ð½Ð¸Ð¼. Эта оболочка защищает Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ любых магичеÑких атак, но при Ñтом не дает ему читать заклинаниÑ, кроме направленных на ÑÐµÐ±Ñ Ñамого. Кроме того, она развеивает глухоту и Ñлабоумие.~ -@194=~ÐнтимагичеÑÐºÐ°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ°~ -@193=~Крепкий человек-Ñщер~ -@192=~Элитный гоблин~ -@191=~Элитный гоблин~ -@190=~Чудовища полутени~ -@189=~Чудовища полутени -(ИллюзиÑ/Фантом) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Это заклинание дейÑтвует подобно заклинанию «Чудовища тени» 4-го уровнÑ, но вызывает более мощных ÑущеÑтв.~ -@188=~Чудовища полутени~ -@187=~Оружие троллей~ -@186=~Тролль~ -@185=~Тролль~ -@184=~Чудовища тени~ -@183=~Чудовища тени -(ИллюзиÑ/Фантом) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Создает иллюзорных чудовищ из материи Полуплана Тени. Единовременно можно призвать до 6 ÑущеÑтв, однако Ñумма их уровней Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð½Ðµ может превыÑить макÑимальный Ð·Ð°Ð¿Ð°Ñ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ.~ -@182=~Чудовища тени~ -@181=~Под дейÑтвием уÑкорениÑ~ -@180=~Замедление~ -@179=~Замедление~ -@178=~БыÑтрое отÑтупление -(Изменение) -Уровень: 1 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 3 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -ÐžÐ±Ñ‹Ñ‡Ð½Ð°Ñ ÑкороÑÑ‚ÑŒ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ð¾Ð·Ñ€Ð°Ñтает вдвое на некоторое времÑ... обычно доÑтаточное, чтобы убежать. Во Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Â«Ð‘Ñ‹Ñтрого отÑтуплениÑ» на цель не влиÑÑŽÑ‚ другие заклинаниÑ, затрагивающие передвижение, например, «УÑкорение» и «Замедление». Кроме того, заклинатель не Ñможет атаковать, читать заклинаниÑ, иÑпользовать предметы или ÑпоÑобноÑти... он Ñможет только бежать.~ -@177=~БыÑтрое отÑтупление~ -@176=~Меч Морденкайнена~ -@175=~Меч Морденкайнена~ -@174=~Меч Морденкайнена -(Воплощение) -Уровень: 7 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Создает иÑкрÑщийÑÑ ÐºÐ»Ð¸Ð½Ð¾Ðº Ñилы, который заклинатель контролирует ментально. Меч бьет так, как еÑли бы им пользовалÑÑ Ð²Ð¾Ð¸Ð½ ÑƒÑ€Ð¾Ð²Ð½Ñ Ð²Ð´Ð²Ð¾Ðµ меньшего, чем маг. ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, что заклинатель держит меч в руках, им можно атаковать любое ÑущеÑтво в поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð¼Ð°Ð³Ð°. Улучшений к атаке у клинка нет, но он может поразить врага, уÑзвимого только Ð´Ð»Ñ Ð¾Ñ€ÑƒÐ¶Ð¸Ñ, зачарованного на +2 и выше. РубÑщий урон, наноÑимый мечом, ÑоÑтавлÑет 5d6 единиц.~ -@173=~Меч Морденкайнена~ -@172=~Водный Ñлементаль~ -@171=~Водный Ñлементаль~ -@170=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð´Ñ‹~ -@169=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð´Ñ‹ -(Вызывание/Призывание) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ñо Стихийного Плана Воды и заÑтавлÑет подчинитьÑÑ Ð²Ð¾Ð»Ðµ заклинателÑ. Элементаль ÑражаетÑÑ Ð½Ð° Ñтороне заклинателÑ, пока не погибнет или не иÑтечет Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ.~ -@168=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð´Ñ‹~ -@167=~Элементаль воздуха~ -@166=~Элементаль воздуха~ -@165=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð·Ð´ÑƒÑ…Ð°~ -@164=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð·Ð´ÑƒÑ…Ð° -(Вызывание/Призывание) -Уровень: 6 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Заклинатель открывает оÑобые врата на Стихийный План Воздуха, и поблизоÑти от него поÑвлÑетÑÑ Ñлементаль воздуха Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ 8. Элементаль выполнÑет команды заклинателÑ, пока не будет убит, или не иÑтечет Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ.~ -@163=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð²Ð¾Ð·Ð´ÑƒÑ…Ð°~ -@162=~Огненный Ñлементаль~ -@161=~Огненный Ñлементаль~ -@160=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð¾Ð³Ð½Ñ~ -@159=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð¾Ð³Ð½Ñ -(Вызывание/Призывание) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Волшебник призывает ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ 8 Ñо Стихийного Плана ÐžÐ³Ð½Ñ Ð¸ управлÑет им. Элементаль ÑражаетÑÑ Ð½Ð° Ñтороне заклинателÑ, а по иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ñ‡Ð°Ñ€ возвращаетÑÑ Ð½Ð° родной план, еÑли оÑталÑÑ Ð² живых.~ -@158=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð¾Ð³Ð½Ñ~ -@157=~ЗемлÑной Ñлементаль~ -@156=~ЗемлÑной Ñлементаль~ -@155=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð·ÐµÐ¼Ð»Ð¸~ -@154=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð·ÐµÐ¼Ð»Ð¸ -(Вызывание/Призывание) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Волшебник призывает ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ 8 Ñо Стихийного Плана Земли и управлÑет им. Элементаль ÑражаетÑÑ Ð½Ð° Ñтороне заклинателÑ, а по иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ñ‡Ð°Ñ€ возвращаетÑÑ Ð½Ð° родной план, еÑли оÑталÑÑ Ð² живых.~ -@153=~Вызвать ÑÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ð»Ñ Ð·ÐµÐ¼Ð»Ð¸~ -@152=~Призывание монÑтров III~ -@151=~Призывание монÑтров III -(Вызывание/Призывание) -Уровень: 5 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 4 раунда + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Ппризывает 1d4 монÑтров третьего уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@150=~Призывание монÑтров III~ -@149=~Человек-Ñщер~ -@148=~Человек-Ñщер~ -@147=~Призывание монÑтров II~ -@146=~Призывание монÑтров II -(Вызывание/Призывание) -Уровень: 4 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 3 раунда + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 1d6 монÑтров второго уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ атакуют врагов Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾ иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ пока не будут убиты.~ -@145=~Призывание монÑтров II~ -@144=~Гоблин~ -@143=~Гоблин~ -@142=~Призывание монÑтров I~ -@141=~Призывание монÑтров I -(Вызывание/Призывание) -Уровень: 3 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 2 раунда + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 2d3 монÑтров первого уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@140=~Призывание монÑтров I~ -@139=~Ðтака~ -@138=~Минотавр~ -@137=~Минотавр~ -@136=~Призывание монÑтров V~ -@135=~Призывание монÑтров V -(Вызывание/Призывание) -Уровень: 7 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 6 раундов + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 1d3 монÑтров пÑтого уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@134=~Призывание монÑтров V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Саламандра~ -@130=~Саламандра~ -@129=~ЛедÑÐ½Ð°Ñ Ñаламандра~ -@128=~ЛедÑÐ½Ð°Ñ Ñаламандра~ -@127=~Призывание монÑтров VI~ -@126=~Призывание монÑтров VI -(Вызывание/Призывание) -Уровень: 8 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 7 раундов + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 1d3 монÑтров шеÑтого уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@125=~Призывание монÑтров VI~ -@124=~Ðтака~ -@123=~Бурый увалень~ -@122=~Бурый увалень~ -@121=~КоÑÑ‚Ñной Ñтраж~ -@120=~КоÑÑ‚Ñной Ñтраж~ -@119=~Призывание монÑтров VII~ -@118=~Призывание монÑтров VII -(Вызывание/Призывание) -Уровень: 9 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 8 раундов + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 9 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 1d2 монÑтров Ñедьмого или воÑьмого уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@117=~Призывание монÑтров VII~ -@116=~Призывание монÑтров IV~ -@115=~Призывание монÑтров IV -(Вызывание/Призывание) -Уровень: 6 -ДальноÑÑ‚ÑŒ: 20 футов -ДлительноÑÑ‚ÑŒ: 5 раундов + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает 1d3 монÑтров четвертого уровнÑ. Они поÑвлÑÑŽÑ‚ÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов. По иÑтечении Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ÑтавшиеÑÑ Ð² живых монÑтры иÑчезают.~ -@114=~Призывание монÑтров IV~ -@113=~Череп~ -@112=~Monster Transparency -Do not translate~ -@111=~Monster Transparancy Item~ -@110=~Тень~ -@109=~Тень~ -@108=~Призвать тень~ -@107=~Призвать тень -(Вызывание/Призывание, ÐекромантиÑ) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: нет -Призывает три тени Ñ ÑƒÑ€Ð¾Ð²Ð½ÐµÐ¼ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ 4. Тени подчинÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¸ÐºÐ°Ð·Ð°Ð¼ заклинателÑ, Ð°Ñ‚Ð°ÐºÑƒÑ ÐµÐ³Ð¾ врагов или выполнÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ðµ заданиÑ, пока не будут убиты или не кончитÑÑ Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ.~ -@106=~Призвать тень~ -@105=~Железный кулак~ -@104=~Железный кулак~ -@103=~Пораженный отвратительной болезнью~ -@102=~Болеет~ -@101=~Отравление~ -@100=~Яд~ -@99=~Железное тело~ -@98=~Железное тело -(Изменение) -Уровень: 8 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 8 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Тело Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€ÐµÐ²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ÑÑ Ð² наÑтоÑщее железо и ÑтановитÑÑ Ñ‚Ð°ÐºÐ¸Ð¼ же крепким и уÑтойчивым к урону. Во Ð²Ñ€ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾Ð½ получает 100% ÑÐ¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ ÑлектричеÑтву, 50% ÑÐ¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð³Ð½ÑŽ и 25% ÑÐ¾Ð¿Ñ€Ð¾Ñ‚Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ñ€Ð¾Ð±Ñщему урону. ЗаклинаниÑ, влиÑющие на дыхание или физиологичеÑкие процеÑÑÑ‹ заклинателÑ, не дейÑтвуют. При Ñтом Ñила Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ð¾Ð·Ñ€Ð°Ñтает до 25, и он дважды за раунд атакует железными кулаками, наноÑÑ 2d4 единиц урона (Ð¿Ð»ÑŽÑ ÑоответÑтвующую прибавку по Ñиле). -К Ñожалению, Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ ÑтановÑÑ‚ÑÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ñ‹Ð¼Ð¸ и неловкими: ÑкороÑÑ‚ÑŒ его Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ ÑнижаетÑÑ Ð´Ð¾ 25% от нормы, и он не может колдовать.~ -@97=~Железное тело~ -@96=~Без ÑознаниÑ~ -@95=~Великий крик~ -@94=~Великий крик -(ПроÑвление) -Уровень: 8 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: 15-градуÑный ÐºÐ¾Ð½ÑƒÑ Ð² 17 фут -СпаÑброÑок: Ñнижает урон вдвое -Заклинатель издает поразительно громкий крик, который раÑпроÑтранÑетÑÑ Ð² коничеÑкой облаÑти длиной в 17 футов и диаметром 15 футов. «Великий крик» — крайне Ñложное и опаÑное заклинание. Сам заклинатель получает 2d4 единицы урона и должен Ñделать ÑпаÑброÑок против заклинаниÑ, чтобы не потерÑÑ‚ÑŒ Ñознание на 1 ход. СущеÑтва в облаÑти дейÑтвиÑ, уровень Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… не выше 5, мгновенно погибают. ОÑтальные делают ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ при неудаче Ñтрадают от контузии на 2 раунда, лишаютÑÑ Ñлуха на 4 раунда и получают 4d12 единиц магичеÑкого урона. При уÑпешном ÑпаÑброÑке жертвы Ñтрадают от контузии на 1 раунд, лишаютÑÑ Ñлуха на 2 раунда и получают 2d12 урона.~ -@93=~Великий крик~ -@92=~~ -@91=~Очарование~ -@90=~Жуткое очарование~ -@89=~Подчинение~ -@88=~Падение боевого духа: Паника~ -@87=~ОпьÑнение~ -@86=~ЗамешательÑтво~ -@85=~Ð’Ñзкое мышление~ -@84=~Удержание~ -@83=~Паралич~ -@82=~Удержание~ -@81=~ЧиÑтый разум~ -@80=~ЧиÑтый разум -(Ограждение) -Уровень: 8 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 24 чаÑа -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Оберегает Ñознание и мыÑли Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¾Ñ‚ чужого контролÑ. ПредоÑтавлÑет защиту практичеÑки от вÑех видов ментального воздейÑтвиÑ: очарованиÑ, лабиринта, приказа, ÑлабоумиÑ, замешательÑтва, Ñтраха, опьÑнениÑ, берÑерка, ÑƒÐ´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ Ð¸ окаменениÑ.~ -@79=~ЧиÑтый разум~ -@78=~Удушение~ -@77=~Удушение -(Изменение) -Уровень: 7 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 4 раунда -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: оÑобый -Ð’Ñе ÑущеÑтва в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ñ‡ÑƒÐ²Ñтвуют удушье (те, кто не дышит воздухом, не подвержены дейÑтвию заклинаниÑ). Жертвы «УдушениÑ» получают ухудшение клаÑÑа защиты −4, такое же ухудшение к атаке, −6 к ловкоÑти, делают за раунд на одну атаку меньше, передвигаютÑÑ Ð²Ð´Ð²Ð¾Ðµ медленнее и получают 4d8 единиц магичеÑкого урона каждый раунд. УÑпешный ÑпаÑброÑок позволÑет Ñократить урон до 2d8 единиц за раунд и избежать оÑтальных Ñффектов. ПоÑледÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñтепенно Ñойдут на нет, когда ÑущеÑтво покинет облаÑÑ‚ÑŒ дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, но у него может уйти раунд на то, чтобы отдышатьÑÑ.~ -@76=~Удушение~ -@75=~КиÑлотный Шторм~ -@74=~КиÑÐ»Ð¾Ñ‚Ð½Ð°Ñ Ð±ÑƒÑ€Ñ -(Воплощение) -Уровень: 7 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 7 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 12 футов -СпаÑброÑок: Ñнижает урон вдвое -Ð’ облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð²Ñ‹Ð¿Ð°Ð´Ð°ÐµÑ‚ киÑлотный дождь. Первые три раунда он наноÑит 1d4 урона от киÑлоты за раунд, Ñледующие три —1d6 за раунд, а каждый поÑледующий раунд — 1d8. Ð’Ñ‹Ð¹Ð´Ñ Ð¸Ð· зоны охвата, поÑтрадавшее ÑущеÑтво продолжает получать урон, так как киÑлота въедаетÑÑ Ð² кожу, и вÑе, кто находилÑÑ Ð² облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð² момент произнеÑÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, веÑÑŒ Ñрок его дейÑÑ‚Ð²Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÑŽÑ‚ урон. Пораженные киÑлотным дождем ÑущеÑтва каждый раунд делают ÑпаÑброÑок против заклинаниÑ, и еÑли он будет уÑпешным, то они получают в Ñтот раунд только половину урона.~ -@73=~КиÑÐ»Ð¾Ñ‚Ð½Ð°Ñ Ð±ÑƒÑ€Ñ~ -@72=~СтойкоÑÑ‚ÑŒ троллÑ~ -@71=~СтойкоÑÑ‚ÑŒ Ñ‚Ñ€Ð¾Ð»Ð»Ñ -(ÐекромантиÑ) -Уровень: 6 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 2 хода -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Заклинатель ÑтановитÑÑ Ñтойким, как тролль, и регенерирует 5 пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ раунд, пока не воÑÑтановит здоровье полноÑтью.~ -@70=~СтойкоÑÑ‚ÑŒ троллÑ~ -@69=~Скелет~ -@68=~Скелет~ -@67=~Пожиратель душ~ -@66=~Пожиратель душ -(ÐекромантиÑ) -Уровень: 6 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: нет -Ð’Ñе живые ÑущеÑтва в радиуÑе 7 футов получают 3d8 магичеÑкого урона. Те, кто при Ñтом погибает, иÑчезают навÑегда, а их ÑущноÑÑ‚ÑŒ воплощаетÑÑ Ð² виде подчиненных заклинателю Ñкелетов 3 ÑƒÑ€Ð¾Ð²Ð½Ñ Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ. Помимо Ñтого, за каждое убитое заклинанием ÑущеÑтво заклинатель на 1 ход получает прибавку +1 к Ñиле, ловкоÑти и телоÑложению. Ðежить, Ñлементали и механизмы не подвержены дейÑтвию Â«ÐŸÐ¾Ð¶Ð¸Ñ€Ð°Ñ‚ÐµÐ»Ñ Ð´ÑƒÑˆÂ».~ -@65=~Пожиратель душ~ -@64=~КоÑÑ‚Ñной дротик +3~ -@63=~КоÑÑ‚Ñной дротик~ -@62=~КоÑÑ‚Ñные дротики~ -@61=~КоÑÑ‚Ñные дротики -(ÐекромантиÑ) -Уровень: 6 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 5 раундов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -У Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð² руках поÑвлÑетÑÑ Ð´ÐµÐ²ÑÑ‚ÑŒ дротиков, которые Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð±Ñ€Ð¾Ñить, пока не иÑтечет Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ. Дротики зачарованы на +3, наноÑÑÑ‚ 1d4+3 единиц метательного урона, а пораженное ими ÑущеÑтво при провале ÑпаÑброÑка против Ñмерти получает дополнительно 2d6 единиц магичеÑкого урона и терÑет 3 единицы Ñилы на 5 раундов. Ухудшение Ñилы не ÑкладываетÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ изменениÑми, а провал ÑпаÑброÑка не увеличивает продолжительноÑÑ‚ÑŒ его дейÑтвиÑ. Ðавык Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð´Ñ€Ð¾Ñ‚Ð¸ÐºÐ°Ð¼Ð¸ (или его отÑутÑтвие) никак не влиÑет на вероÑтноÑÑ‚ÑŒ поразить цель.~ -@60=~КоÑÑ‚Ñные дротики~ -@59=~Ð—Ð°Ð¼Ð¾Ñ€Ð°Ð¶Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ñфера Отилюка~ -@58=~Ð—Ð°Ð¼Ð¾Ñ€Ð°Ð¶Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ñфера Отилюка -(Изменение, Воплощение) -Уровень: 6 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 6 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: отменÑет дейÑтвие -ÐаправлÑет в цель шар холода, который наноÑит 1d4+2 урона холодом за каждый уровень заклинателÑ. Ðо еÑли цель Ñделает удачный ÑпаÑброÑок против заклинаниÑ, она уклонÑетÑÑ Ð¾Ñ‚ цели и не получает никаких повреждений.~ -@57=~Ð—Ð°Ð¼Ð¾Ñ€Ð°Ð¶Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ñфера Отилюка~ -@56=~Саван пламени~ -@55=~Саван пламени -(ПроÑвление) -Уровень: 5 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/2 ÑƒÑ€Ð¾Ð²Ð½Ñ (оÑобаÑ) -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 5 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 5 футов -СпаÑброÑок: отменÑет дейÑтвие -ЕÑли цель не Ñделает удачный ÑпаÑброÑок против заклинаниÑ, ее окутает пламÑ. СущеÑтво будет гореть, Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ 2d6 урона каждый раунд. Языки пламени, окружающего жертву, наноÑÑÑ‚ 1d4 урона от Ð¾Ð³Ð½Ñ Ð²Ñем ÑущеÑтвам в радиуÑе 12 футов. ЕÑли обожженный Ñзыком Ð¾Ð³Ð½Ñ Ð¿Ñ€Ð¾Ð²Ð°Ð»Ð¸Ñ‚ ÑпаÑброÑок, то тоже будет поражен Ñаваном пламени. Огонь раÑÑеиваетÑÑ, еÑли заклинатель и цель переÑтанут находитьÑÑ Ð² одной облаÑти. Это заклинание оÑобенно полезно Ð´Ð»Ñ Ð¸ÑÑ‚Ñ€ÐµÐ±Ð»ÐµÐ½Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿ троллей и ледÑных Ñаламандр.~ -@54=~Саван пламени~ -@53=~~ -@52=~КиÑлотный шар~ -@51=~КиÑлотный шар -(Вызывание) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: оÑÐ¾Ð±Ð°Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 5 футов -СпаÑброÑок: оÑобый -Заклинатель может направить в любую цель в облаÑти дейÑÑ‚Ð²Ð¸Ñ ÑветÑщийÑÑ Ð¸Ð·ÑƒÐ¼Ñ€ÑƒÐ´Ð½Ð¾-зеленый шар киÑлоты. Попав в цель, он взрываетÑÑ, Ð¾Ð±Ð»Ð¸Ð²Ð°Ñ Ð¶ÐµÑ€Ñ‚Ð²Ñƒ киÑлотой. Цель получает 1d4 единицы урона киÑлотой на каждый уровень Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ð¿Ð»Ð¾Ñ‚ÑŒ до макÑимума в 12d4 единиц. ÐеÑколько Ñледующих раундов она получает вторичный урон, еÑли провалит ÑпаÑброÑок. С каждым раундом урон уменьшаетÑÑ Ð½Ð° два броÑка: так, «КиÑлотный шар» волшебника 8-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ð°Ð½Ð¾Ñит 8d4 единиц урона за первый раунд, 6d4 за второй, 4d4 за третий, 2d4 за четвертый, а на пÑтый раунд заклинание прекращает дейÑтвовать. Каждый раунд жертва может Ñделать ÑпаÑброÑок против заклинаниÑ, чтобы избежать дальнейших повреждений. -Кроме того, шар разбрызгивает киÑлоту на раÑÑтоÑние до 5 футов от цели. Любое ÑущеÑтво в Ñтой облаÑти должно Ñделать ÑпаÑброÑок против превращений/паралича, иначе его поразÑÑ‚ брызги, наноÑÑщие 1d4 урона на каждые пÑÑ‚ÑŒ уровней заклинателÑ. Вторичного урона брызги не наноÑÑÑ‚.~ -@50=~КиÑлотный шар~ -@49=~Глухота~ -@48=~Крик~ -@47=~Крик -(ПроÑвление) -Уровень: 4 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 1 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: 15-градуÑный ÐºÐ¾Ð½ÑƒÑ Ð² 17 футов -СпаÑброÑок: оÑобый -Ð“Ð¾Ð»Ð¾Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ ÑтановитÑÑ Ð½ÐµÐ²ÐµÑ€Ð¾Ñтно мощным, и он может издать оглушительный рев, который раÑпроÑтранÑетÑÑ Ð² форме конуÑа. Любое ÑущеÑтво в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð³Ð»Ð¾Ñ…Ð½ÐµÑ‚ на 9 раундов и получает 4d6 единиц магичеÑкого урона. ЕÑли жертва Ñделает уÑпешный ÑпаÑброÑок против заклинаниÑ, то не оглохнет и получит только половину урона.~ -@46=~Крик~ -@45=~Силовые ÑнарÑды Морденкайнена~ -@44=~Силовые ÑнарÑды Морденкайнена -(ПроÑвление) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 2 футов -СпаÑброÑок: оÑобый -Из руки Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð²Ñ‹Ð»ÐµÑ‚Ð°ÐµÑ‚ Ñверкающий шар магичеÑкой Ñнергии, который уÑтремлÑетÑÑ Ðº цели и без промаха поражает ее, как магичеÑкий ÑнарÑд. Ðа 7-м уровне волшебник может выпуÑтить один ÑнарÑд, а за каждые три ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¿Ð¾Ñле 7-го получает один дополнительный: на 10-м уровне — два ÑнарÑда, на 13-м — три и так далее, до шеÑти ÑнарÑдов на 25-м уровне. Каждый ÑнарÑд наноÑит 2d4 единицы магичеÑкого урона и затем взрываетÑÑ, Ð¿Ð¾Ñ€Ð°Ð¶Ð°Ñ Ð²Ñех в радиуÑе 2 футов и наноÑÑ Ð¿Ñ€Ð¸ Ñтом 1 единицу урона на каждый уровень заклинателÑ. К примеру, волшебник 12-го ÑƒÑ€Ð¾Ð²Ð½Ñ Ñоздает два ÑнарÑда, каждый из которых наноÑит 2d4+12 единиц урона. СпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет уклонитьÑÑ Ð¾Ñ‚ взрыва, но урона непоÑредÑтвенно от зарÑда таким образом избежать нельзÑ. МагичеÑкое заклинание 1-го ÑƒÑ€Ð¾Ð²Ð½Ñ Â«Ð©Ð¸Ñ‚Â» поглощает Ñиловые ÑнарÑды и урон от взрыва.~ -@43=~Силовые ÑнарÑды Морденкайнена~ -@42=~БезнадежноÑÑ‚ÑŒ~ -@41=~КонтузиÑ~ -@40=~ЭмоциÑ: БезнадежноÑÑ‚ÑŒ~ -@39=~ЭмоциÑ: БезнадежноÑÑ‚ÑŒ -(Зачарование/Очарование) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 ход -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: отменÑет дейÑтвие -Вызывает чувÑтво безнадежноÑти у вÑех ÑущеÑтв в облаÑти дейÑтвиÑ. Ð’Ñе ÑущеÑтва, провалившие ÑпаÑброÑок против заклинаниÑ, будут ÑтоÑÑ‚ÑŒ на меÑте и ничего не делать в течение 1 хода. Ð’ момент Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñет вÑе Ñффекты Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«Ð­Ð¼Ð¾Ñ†Ð¸Ñ: Ðадежда» в облаÑти дейÑтвиÑ.~ -@38=~ЭмоциÑ: БезнадежноÑÑ‚ÑŒ~ -@37=~Ð’ панике~ -@36=~ЭмоциÑ: Страх~ -@35=~ЭмоциÑ: Страх -(Зачарование/Очарование) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 5 раундов -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: отменÑет дейÑтвие -РаÑпроÑтранÑет Ñтрах в облаÑти дейÑтвиÑ. Ð’Ñе ÑущеÑтва, подвергшиеÑÑ ÐµÐ³Ð¾ воздейÑтвию, на 5 раундов бегут Ñ Ð¿Ð¾Ð»Ñ Ð±Ð¾Ñ. Ð’ момент Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñет Ñффект Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«Ð­Ð¼Ð¾Ñ†Ð¸Ñ: Отвага» в облаÑти дейÑтвиÑ.~ -@34=~ЭмоциÑ: Страх~ -@33=~ЭмоциÑ: Ðадежда~ -@32=~ЭмоциÑ: Ðадежда -(Зачарование/Очарование) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 Ñ‡Ð°Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: нет -РаÑпроÑтранÑет надежду в облаÑти дейÑтвиÑ. Ð’Ñе ÑущеÑтва, подвергшиеÑÑ Ð²Ð¾Ð·Ð´ÐµÐ¹Ñтвию заклинаниÑ, повышают Ñвой боевой дух и получают улучшение +2 ко вÑем ÑпаÑброÑкам, броÑкам атаки и урона. Ð’ момент Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñет Ñффект Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Â«Ð­Ð¼Ð¾Ñ†Ð¸Ñ: БезнадежноÑть» в облаÑти дейÑтвиÑ.~ -@31=~ЭмоциÑ: Ðадежда~ -@30=~ЭмоциÑ: Отвага~ -@29=~ЭмоциÑ: Отвага -(Зачарование/Очарование) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 Ñ‡Ð°Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 7 футов -СпаÑброÑок: нет -РаÑпроÑтранÑет отвагу в облаÑти дейÑтвиÑ. Ð’Ñе ÑущеÑтва, подвергшиеÑÑ Ð²Ð¾Ð·Ð´ÐµÐ¹Ñтвию заклинаниÑ, получают +1 к атаке, +3 к броÑкам на урон и +5 временных пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ (в Ñумме пункты Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¼Ð¾Ð³Ñƒ превышать нормальный макÑимум). Ð’ момент Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñет вÑе Ñффекты Ñтраха в облаÑти дейÑтвиÑ.~ -@28=~ЭмоциÑ: Отвага~ -@27=~БерÑерк~ -@26=~ГорÑÑ‰Ð°Ñ ÐºÑ€Ð¾Ð²ÑŒ Белтина~ -@25=~ГорÑÑ‰Ð°Ñ ÐºÑ€Ð¾Ð²ÑŒ Бельтина -(ÐекромантиÑ) -Уровень: 4 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: 1 раунд/2 ÑƒÑ€Ð¾Ð²Ð½Ñ -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 4 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: отменÑет дейÑтвие -Превращает кровь цели в огонь, Ð¾Ñ‚Ð½Ð¸Ð¼Ð°Ñ 3d4 пункта Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ ÐºÐ°Ð¶Ð´Ñ‹Ð¹ раунд и Ð¿Ñ€Ð¸Ð²Ð¾Ð´Ñ Ñ†ÐµÐ»ÑŒ в ÑроÑÑ‚ÑŒ от боли. Каждый раунд жертва делает ÑпаÑброÑок против заклинаниÑ, уÑпешный ÑпаÑброÑок отменÑет урон и ÑоÑтоÑние ÑроÑти. Заклинание не дейÑтвует на нежить и инопланарных ÑущеÑтв, не имеющих крови (например, Ñлементалей). ЕÑли ÑущеÑтво обладает Ñопротивлением огню, оно уменьшает или нейтрализует урон от заклинаниÑ.~ -@24=~ГорÑÑ‰Ð°Ñ ÐºÑ€Ð¾Ð²ÑŒ Бельтина~ -@23=~Копье разрушениÑ~ -@22=~Копье Ñ€Ð°Ð·Ñ€ÑƒÑˆÐµÐ½Ð¸Ñ -(ПроÑвление) -Уровень: 3 -ДальноÑÑ‚ÑŒ: 100 футов -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: оÑÐ¾Ð±Ð°Ñ -СпаÑброÑок: Ñнижает урон вдвое -Из руки Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð² указанную точку на раÑÑтоÑнии до 100 футов от него летит Ñиловое копье. Каждое ÑущеÑтво на пути ÐºÐ¾Ð¿ÑŒÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°ÐµÑ‚ 5d4 единиц дробÑщего урона + 2 единицы на каждый уровень Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ (макÑимум +30). УÑпешный ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ñнижает урон вдвое.~ -@21=~Копье разрушениÑ~ -@20=~КонтузиÑ~ -@19=~ЛедÑное копье~ -@18=~ЛедÑное копье -(Воплощение) -Уровень: 3 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 3 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: оÑобый -БроÑает волшебное копье в выбранную цель. Оно попадает автоматичеÑки и наноÑит 5d6 единиц урона от холода. ЗаÑтавлÑет цель Ñделать ÑпаÑброÑок против Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ при провале контузит ее на 3 раунда.~ -@17=~ЛедÑное копье~ -@16=~Изменение ловкоÑти~ -@15=~ÐšÐ¾ÑˆÐ°Ñ‡ÑŒÑ Ð³Ñ€Ð°Ñ†Ð¸Ñ~ -@14=~ÐšÐ¾ÑˆÐ°Ñ‡ÑŒÑ Ð³Ñ€Ð°Ñ†Ð¸Ñ -(Изменение) -Уровень: 2 -ДальноÑÑ‚ÑŒ: каÑание -ДлительноÑÑ‚ÑŒ: 1 чаÑ/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 2 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: одно ÑущеÑтво -СпаÑброÑок: нет -ЛовкоÑÑ‚ÑŒ цели увеличиваетÑÑ Ð¼Ð°Ð³Ð¸Ñ‡ÐµÑким ÑпоÑобом. Прибавка завиÑит от клаÑÑа: у плутов ловкоÑÑ‚ÑŒ возраÑтает на 1d8 единиц, у воинов и волшебников на 1d6, а у жрецов на 1d4. При Ñтом значение характериÑтики не может превыÑить 20.~ -@13=~ÐšÐ¾ÑˆÐ°Ñ‡ÑŒÑ Ð³Ñ€Ð°Ñ†Ð¸Ñ~ -@12=~МегапоÑох~ -@11=~МегапоÑох~ -@10=~МегапоÑох~ -@9=~МегапоÑох -(Воплощение) -Уровень: 2 -ДальноÑÑ‚ÑŒ: 0 -ДлительноÑÑ‚ÑŒ: 3 раунда + 1 раунд/уровень -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 2 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: на ÑÐµÐ±Ñ -СпаÑброÑок: нет -Ð’ руке Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ÑвлÑетÑÑ Ñиловое поле, принимающее форму поÑоха. Он раÑцениваетÑÑ ÐºÐ°Ðº магичеÑкое оружие и может поражать ÑущеÑтв, имеющих иммунитет к обычному оружию. ЕÑли у Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÑ‚ навыка Ð²Ð»Ð°Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñохом, применÑÑŽÑ‚ÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ðµ штрафы за незнакомое оружие. ПоÑох наноÑит 1d6 единиц урона при каждом ударе, а при первом попадании по цели вытÑгивает у противника 1d2 пунктов Ð·Ð´Ð¾Ñ€Ð¾Ð²ÑŒÑ Ð¸ передает их заклинателю. Эти пункты могут лишь воÑÑтанавливать здоровье заклинателÑ, но не превышать его макÑимум.~ -@8=~МегапоÑох~ -@7=~Снегопад Сниллока -(Воплощение) -Уровень: 2 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 2 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: Ñнижает урон вдвое -Шквал Ñнежков вырываетÑÑ Ð¸Ð· выбранной заклинателем точки. Снежки поражают вÑех в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, наноÑÑ 1d3 единиц урона от холода за уровень Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ (макÑимальный урон 8d3 единиц на 8 уровне). СущеÑтвам, иÑпользующим огонь или живущим в нём, заклинание наноÑит 1d6 единиц урона на уровень (макÑимальный урон 8d6 единиц на 8 уровне).~ -@6=~~ -@5=~Снегопад Сниллока~ -@4=~Снегопад Сниллока -(Воплощение) -Уровень: 2 -ДальноÑÑ‚ÑŒ: поле Ð·Ñ€ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ -ДлительноÑÑ‚ÑŒ: мгновенно -Ð’Ñ€ÐµÐ¼Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ: 2 -ОблаÑÑ‚ÑŒ дейÑтвиÑ: в радиуÑе 15 футов -СпаÑброÑок: Ñнижает урон вдвое -Шквал Ñнежков вырываетÑÑ Ð¸Ð· выбранной заклинателем точки. Снежки поражают вÑех в облаÑти дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ð½Ð¸Ñ, наноÑÑ 1d3 единиц урона от холода за уровень Ð·Ð°ÐºÐ»Ð¸Ð½Ð°Ñ‚ÐµÐ»Ñ (макÑимальный урон 8d3 единиц на 8 уровне). СущеÑтвам, иÑпользующим огонь или живущим в нём, заклинание наноÑит 1d6 единиц урона на уровень (макÑимальный урон 8d6 единиц на 8 уровне).~ -@3=~~ -@2=~Снегопад Сниллока~ -@1=~Свиток~ diff --git a/iwdification/dw/copyover/tra/tr_TR/iwdspells.tra b/iwdification/dw/copyover/tra/tr_TR/iwdspells.tra deleted file mode 100644 index 9f2ca36..0000000 --- a/iwdification/dw/copyover/tra/tr_TR/iwdspells.tra +++ /dev/null @@ -1,1188 +0,0 @@ -@375=~Sith'in SavaÅŸ Ä°lahisi -Zırh Bonusları ve Tazeleme~ -@374=~"Sith'in SavaÅŸ Ä°lahisi" -9 mt içindeki tüm müttefikler Zırh Seviyesi'ne +2 bonus; kesme, delme, ezme hasarları ile menzilli hasarına karşı +%10 direnç ve tur başına 2 Can Puanı tazeleme kabiliyeti kazanır.~ -@373=~War Chant of Sith~ -@372=~Enthralled~ -@371=~Sirenin Hasreti - Yaratıkları KöleleÅŸtirme~ -@370=~"Sirenin Hasreti" -9 mt içindeki tüm müttefikler büyüye karşı kurtarış gerçekleÅŸtirmelidir. BaÅŸarısız olurlarsa ya büyülenir ve 1 raunt boyunca eylem gerçekleÅŸtiremez ya da hasar alırlar.~ -@369=~The Siren's Yearning~ -@368=~Kaudies'in Åžarkısı - Ses Saldırılarına Direnç~ -@367=~"Kaudies'in Åžarkısı" -9 m içindeki tüm müttefikler Sustur, Nara, Etkili Nara, Buyruk, Büyük Buyruk ve diÄŸer her türlü ses tabanlı saldırılara karşı %50 etkilenmeme olasılığı elde ederler.~ -@366=~The Song of Kaudies~ -@365=~Tymora'nın Ezgisi - Åžans ve Yetenek Bonusları~ -@364=~"Tymora'nın Ezgisi" -9 mt içindeki tüm müttefikler ÅŸansa +1, Kurtarış Zarları'na +3, kültüre +10 ve tüm hırsızlık yeteneklerine +%10 bonus kazanır.~ -@363=~Tymora's Melody~ -@362=~Curran Güçlüyürek'in Hikayesi - Korkuya Bağışıklık~ -@361=~"Curran Güçlüyürek'in Hikayesi" -9 mt içindeki tüm müttefikler ÅŸarkı sona erinceye kadar korku etkilerine karşı bağışıklık kazanır ve üzerlerindeki mevcut korku etkileri ortadan kalkar.~ -@360=~Curran Güçlüyürek'in Hikayesi~ -@359=~Üç Kahramanın Balatı - Dövüş Bonusları~ -@358=~"Üç Kahramanın Balatı" -9 m içindeki tüm müttefikler vurabilmeye +1, hasara +1 ve tüm Kurtarış Zarları'na +1 kazanır.~ -@357=~Üç Kahramanın Balatı~ -@356=~Ä°lahi (Çağırma) -Seviye: 2 -Küre: Çarpışma -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 1 raunt -Etki Alanı: 9 mt yarıçapında -Kurtarış Zarı: Yok -Ä°lahi büyüsü aracılığıyla rahip kendisine ve grubuna özel bir lütuf bahÅŸedilmesini saÄŸlarken düşmanlarında zarara sebep olur. Ä°lahi büyüsü tamamlandığında etki alanı içindeki rahibin tüm müttefikleri saldırı, hasar ve kurtarış zarlarına +1 kazanırken düşmanları ise saldırı, hasar ve kurtarışlarına -1 ceza alırlar. Birden çok Ä°lahi büyüsünün etkisi üst üste eklenmez. Bu büyünün yapılışı icracının orta derecede konsantrasyonunu gerektirir; yani Ä°lahi'nin süresi boyunca rahip herhangi bir büyü icra edemez ve hareket hızı yarıya düşer.~ -@355=~Ä°lahi~ -@354=~Fart Repellent for Bombardier Beetles. -Do not translate~ -@353=~Delici Böcek~ -@352=~Delici Böcek~ -@351=~Topçu BöceÄŸi~ -@350=~Topçu BöceÄŸi~ -@349=~Dev Böcek (BaÅŸkalaşım) -Seviye: 4 -Küre: Hayvan -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 8 saat -Büyü Yapma Süresi: 7 -Etki Alanı: 1-6 böcek -Kurtarış Zarı: Yok -Bu büyü icracı için küçük böcekler çağırır, sonra da onları devasa boyutlara getirerek korkunç müttefiklere çevirir. Böceklerin gücü ve türü icracının seviyesine baÄŸlı olarak deÄŸiÅŸir; icracının seviyesi ne kadar yüksekse çaÄŸrılan böcekler de o kadar güçlü olur.~ -@348=~Dev Böcek~ -@347=~Ağır Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 5 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 8 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyüyü yapıp elini bir yaratığın üzerine koyduÄŸunda rahip yaratığın bedenine 27 puanlık hasar (yarım hasar için kurtarış zarı) verir. Bu büyünün hortlaklarda, yapılarda, düzlemdışı yaratıklarda etkisi yoktur. Ağır Yaralar Açış büyüsü yalnızca kötü karakterlerce yapılabilir.~ -@346=~Ağır Yaralar Açış~ -@345=~Ciddi Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 4 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyüyü yapıp elini bir yaratığın üzerine koyduÄŸunda rahip yaratığın bedenine 17 puanlık hasar (yarı-hasar için kurtarış zarı) verir. Bu büyünün hortlaklarda, yapılarda veya düzlemdışı yaratıklarda etkisi yoktur. Ciddi Yaralar Açış büyüsü iyi yönelimli karakterlerce yapılamaz.~ -@344=~Ciddi Yaralar Açış~ -@343=~Ä°ki Seviye Emildi~ -@342=~Enerji SoÄŸurma -(Ölüm Ä°lmi) -Seviye: 7 -Küre: Ölüm Ä°lmi -Menzil: Temas -Etki Süresi: Sürekli -Büyü Yapma Süresi: 3 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyüyü yapmak büyü icracısının düzlemi ile Negatif Enerji Düzlemi arasında bir kanal açar. Ä°cracı iki düzlem arasında nakil hattı görevi görür; kurbanın yaÅŸamını emerek bunu Negatif Enerji Düzlemi'ne aktarır ve 2 seviyelik tecrübesini soÄŸurur. Büyünün hedefindeki seviyelerini, Can Zarları'nı, Can Puanları'nı ve kabiliyetlerini kalıcı olarak kaybeder. Bu seviyeler sadece bir rahibin Onarım büyüsüyle geri alınabilir. Bu büyünün hortlaklar, yapılar ya da düzlemdışı yaratıklar üzerinde etkisi yoktur; iyi yönelimli karakterlerce yapılamaz.~ -@341=~Enerji SoÄŸurma~ -@340=~SarmaÅŸtırılmış~ -@339=~Ayak Sürüyen Tepecik~ -@338=~Ayak Sürüyen Tepecik~ -@337=~Ä°zsüren (Çağırma) -Seviye: 7 -Küre: Bitki -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 8 saat -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyü iki ayak sürüyen tepecik yaratır. Bu yaratıklar kendi rızalarıyla icracıya dövüşte yardımcı olur ya da kendilerine verilen, kabiliyetleri dahilindeki diÄŸer görevleri yerine getirir.~ -@336=~Ä°zsüren~ -@335=~Eldath'ın Sisi (OluÅŸturma) -Seviye: 7 -Küre: Elemental -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt -Büyü Yapma Süresi: 1 raunt -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Yok -Bu büyü etki alanını gümüş-mavi bir sisle örter - sisin içindeki tüm yaratıkların hastalıkları tedavi olur, zehirden arınırlar ve 25 puanlık hasarları iyileÅŸir.~ -@334=~Eldath'ın Sisi~ -@333=~Lathander'ın Büyük Kalkanı -(Çağırma) -Seviye: 7 -Küre: Muhafız -Menzil: Temas -Etki Süresi: 3 raunt -Büyü Yapma Süresi: 9 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü hedefe, büyünün etki süresi boyunca %100 büyü direnci ve hasara karşı bağışıklık bahÅŸeder. Kötü yönelimli karakterler Lathander'ın Büyük Kalkanı'nca korunamazlar. Bu büyü sadece iyi yönelimli karakterlerce yapılabilir.~ -@332=~Lathander'ın Büyük Kalkanı~ -@331=~Ä°mha (Ölüm Ä°lmi) -Seviye: 7 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Özel -Bu büyü bir hedefi anında imha eder; onu patlatarak küçük parçalara ayırır. Kurbanın -4 ile ölüme karşı kurtarış yapmasına izin verilir; baÅŸarılı olursa hedef imha olmak yerine 8z6 puanlık hasar alır. Ä°mha yalnızca kötü karakterlerce yapılabilir. Ä°mha büyüsüyle vurulan bir karakterin Ölü Kaldırma ya da DiriltiÅŸ büyüleriyle ölümden döndürülemeyeceÄŸi unutulmamalıdır.~ -@330=~Ä°mha~ -@329=~Büyü Etkisiz~ -@328=~Zihnin Sarsılmaz MukaddesliÄŸi -(Sakınma) -Seviye: 7 -Küre: Koruma -Menzil: Ä°cracı -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracının zihnini her türlü dış etkiye karşı çelik gibi saÄŸlamlaÅŸtırır. Büyü etkin olduÄŸu müddetçe Ä°cracıya yöneltilen Efsun, Buyruk, ÅžaÅŸkınlık, Hakimiyet, Korku, AptallaÅŸtırma, SabitleyiÅŸ, Uyku büyüleri ile her türlü zihinsel saldırı baÅŸarısızlığa uÄŸrar.~ -@327=~Zihnin Sarsılmaz MukaddesliÄŸi~ -@326=~Umutsuzluk Sembolü -(Çağırma) -Seviye: 7 -Küre: Muhafız -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 3 -Etki Alanı: 18 mt yarıçapında -Kurtarış Zarı: Etkisiz -ZikredildiÄŸinde umutsuzluk sembolünün 18 metre etki alanı içindeki tüm yaratıklar -2 ceza ile büyüye karşı kurtarış zarı atmalıdır. BaÅŸarısız olanlar moral bozukluÄŸu ve pes etmiÅŸlik içinde olduÄŸu yerde durur; kendilerini saldırılardan korumak için hiçbir hareket yapmazlar.~ -@325=~Umutsuzluk Sembolü~ -@324=~Harap Eden Acılar~ -@323=~Acı Sembolü -(Çağırma) -Seviye: 7 -Küre: Muhafız -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 2-20 tur -Büyü Yapma Süresi: 3 -Etki Alanı: 18 mt yarıçapında -Kurtarış Zarı: Etkisiz -ZikredildiÄŸinde Acı Sembolü'nün 18 metre etki alanı içindeki tüm yaratıklar büyüye karşı kurtarış zarı atmalıdır. BaÅŸarısız olanlar acıya yenik düşerler; saldırı zarlarına -4, Çeviklikler'ine -2 ve Zırh Seviyeleri'ne -2 alırlar.~ -@322=~Acı Sembolü~ -@321=~Ruhani Gazap (OluÅŸturma) -Seviye: 6 -Küre: Çarpışma -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 2 -Etki Alanı: Özel -Kurtarış Zarı: 1/2 -Bu büyüyü tamamladığında rahip ruhani enerjinin bir odak noktası haline gelir; daha sonra bu enerji yıldırım gibi icracıdan fırlayarak dört bir yana gider. Ä°cracı ışınlardan biri için bir yön belirler ve diÄŸer ışınlar o yönün zıttı ile dikeyleri yönünde hızla hareket eder; çarpı ÅŸeklinde bir yapı oluÅŸturur. Işınların yolundaki tüm yaratıklar 6-42 puanlık büyü hasarı alır, kurtarış zarı hasarı yarıya indirir. Ä°cracıyla aynı ahlaki yönelime (iyi, tarafsız, kötü) sahip yaratıklar büyüden etkilenmez.~ -@320=~Ruhani Gazap~ -@319=~Hortum -(OluÅŸturma) -Seviye: 6 -Küre: Elemental (Hava) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Özel -Büyü Yapma Süresi: 9 -Etki Alanı: Özel -Kurtarış Zarı: Özel -Bu büyü icracının yakınında, geliÅŸigüzel savrulan, dost düşman ayırt etmeksizin önüne gelene zarar veren bir hortum oluÅŸturur. Ä°cracı kendi büyüsünden etkilenmez; ayrıca elementaller ve diÄŸer devasa yaratıklar da büyüden etkilenmez. Åžayet bir yaratık hortumun yoluna çıkacak olursa 2z8 ezme hasarı, 2z8 kesme hasarı alır ve nefese karşı kurtarış gerçekleÅŸtirmelidir, aksi takdirde 2 raunt boyunca sersemler. Büyü 2 can zarı ya da daha azına sahip yaratıkları anında öldürür. Büyüden en fazla 8 hedef etkilenebilir, bundan sonra hortum dağılarak yok olur.~ -@318=~Hortum~ -@317=~Entropi Kalkanı (Sakınma) -Seviye: 6 -Küre: Koruma -Menzil: Ä°cracı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 9 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Yapıldığında bu büyü icracıyı, pek çok saldırıyı bloklayan ya da saptıran savunma amaçlı bir enerji girdabıyla çevreler. Büyü rahibin zırh seviyesine +6 bonus verir ve çoÄŸu saldırı biçimine karşı %50lik direnç kazandırır: elektrik, ateÅŸ, soÄŸuk, vb gibi. Ayrıca icracının tüm kurtarış zarlarına +2 verir ve tüm menzilli saldırılara karşı bağışıklık saÄŸlar.~ -@316=~Entropi Kalkanı~ -@315=~Toplu Hafif Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 5 -Küre: Ä°yileÅŸtirme -Menzil: 0 -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 9 mt yarıçapında -Kurtarış Zarı: 1/2 -Bu büyüyü yaparak rahip yakındaki düşmanlara sahip olduÄŸu her seviye başına 1z8+1'lik hasar verir; baÅŸarılı bir Büyüye Karşı Kurtarış hasarı yarıya indirir. Bu büyünün hortlaklarda, yapılarda ya da düzlemdışı yaratıklarda etkisi yoktur. Ä°yi yönelimli karakterlerce yapılamaz.~ -@314=~Toplu Hafif Yaralar Açış~ -@313=~Hayvan Öfkesi (Efsunlama) -Seviye: 5 -Küre: Çarpışma -Menzil: Temas -Etki Süresi: 15 raunt -Büyü Yapma Süresi: 8 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü hedefteki yaratığa hayvani bir vahÅŸilik aşılar. Hedefteki yaratığın kuvveti 19 olur, can puanına +20, hareket hızına +%20 ve tüm kurtarış zarlarına +2 kazanır. Hayvan Öfkesi etkinken hedef büyü icra etme kabiliyetini kaybeder. Görünürde düşman olmadığı müddetçe normal ÅŸekilde kontrol edilebilir; ancak düşman görürse elinde her ne varsa onunla anında yakın dövüşle saldırır. Her rauntta hedefin %5 cinnet geçirme olasılığı vardır; cinnet durumunda dost düşman bakmaksızın herkese saldırır.~ -@312=~Hayvan Öfkesi~ -@311=~Hortlak Korunağı (Ölüm Ä°lmi) -Seviye: 5 -Küre: Koruyucular -Menzil: Ä°cracı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 7 -Etki Alanı: 6 mt yarıçapında -Kurtarış Zarı: Yok -Bu büyü rahibin hortlaklar üzerindeki nüfuzunu güçlendirir; ancak büyü yapıldığı anda rahibi çevreleyen alana baÄŸlıdır ve hareket etmez. Etki alanına giren her türlü hortlak yaratık, büyüyü yapmış olan rahipçe defedilmiÅŸ gibi etkilenir. Defetme baÅŸarısız olursa hortlak yaratık, etki alanını terk edip yeniden girmediÄŸi müddetçe, büyünün sonraki defetme giriÅŸimlerine karşı bağışık olur.~ -@310=~Hortlak Korunağı~ -@309=~Lathander'ın Kalkanı -(Çağırma) -Seviye: 5 -Küre: Muhafız -Menzil: Temas -Etki Süresi: 2 raunt -Büyü Yapma Süresi: 8 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü hedefe, büyünün etki süresi boyunca hasara karşı bağışıklık bahÅŸeder. Kötü yönelimli karakterler bu büyüyü yapamaz veya Lathander'ın Kalkanı'nca korunamazlar.~ -@308=~Lathander'ın Kalkanı~ -@307=~Sivri TaÅŸlar -(BaÅŸkalaşım, Efsunlama) -Seviye: 5 -Küre: Elemental (Toprak) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 12 raunt -Büyü Yapma Süresi: 6 -Etki Alanı: 4,5 mt yarıçapında -Kurtarış Zarı: Yok -Bu büyü çevredeki kayaları çarpıtıp yeniden ÅŸekillendirerek araziyi arkaplana karışan sivri çıkıntılarla dolu hale getirir. Alana giren her yaratık raunt başına 2z4 can puanlık delme hasarı alır ve büyüye karşı kurtarış yapmalıdır, aksi takdirde hareket hızı %30 düşer.~ -@306=~Sivri TaÅŸlar~ -@305=~Ä°nananın Haklı Gazabı -(Efsunlama) -Seviye: 5 -Küre: Çarpışma -Menzil: 0 -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 8 -Etki Alanı: 11 metre yarıçapında -Kurtarış Zarı: Yok -Bu büyü rahibin müttefiklerine ilahi bir delilik formu bahÅŸederek dövüş yeteneklerini geliÅŸtirir. Etki alanı içindeki rahibin tüm müttefikleri büyünün etki süresi boyunca saldırı ve kurtarış zarlarına +1 kazanır; ayrıca can puanlarına 8 bonus alırlar (bu bonus hedefin can puanını maksimunun üzerine çıkarabilir). Bununla birlikte aynı yönelimden tüm yaratıklar raunt başına fazladan bir saldırı kazanır(Hızlandırış'ı etkisiz kılar); saldırı, hasar ve kurtarış zarlarına +2 alır, ayrıca efsunlanma ve sabitleyiÅŸ büyülerine geçici bağışıklık kazanırlar. Ä°nananın Haklı Gazabı'ndan etkilenen herkes büyünün etkisi geçtiÄŸinde yorgun düşer.~ -@304=~Ä°nananın Haklı Gazabı~ -@303=~Ayışığı Duvarı (OluÅŸturma) -Seviye: 4 -Küre: Koruma, GüneÅŸ -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 7 -Etki Alanı: 6 mt uzunluÄŸunda, 1,5 mt geniÅŸliÄŸinde duvar -Kurtarış Zarı: Yok -Bu büyü, mavi-beyaz güçten parıldayan bir duvar örgüsü meydana getirir. Bu duvar soyuttur, fiziksel dayanak noktası gerektirmez ve kolaylıkla içinden geçilebilir. Duvarın içinden geçen kötü yaratıklar 2z10, kötü hortlak yaratıklar ise 5z10 hasar alırlar. Duvardan geçen bir yaratık ondan yalnızca bir kez hasar alabilir. Belirli bir zamanda sadece bir Ayışığı Duvarı etkin olabilir.~ -@302=~Ayışığı Duvarı~ -@301=~Diken Püskürtme (BaÅŸkalaşım) -Seviye: 4 -Küre: Bitki -Menzil: Özel -Etki Süresi: Anında -Büyü Yapma Süresi: 3 -Etki Alanı: 9 mt uzunlukta, 7,5 metre geniÅŸlikte koni -Kurtarış Zarı: 1/2 -Bu büyü aracılığıyla icracı elinden diken, sivri dal ve sürgün püskürtmesi gerçekleÅŸtirebilmektedir. Diken püskürtme 9 mt uzunluÄŸunda, 18 metre geniÅŸliÄŸinde bir koni ÅŸeklinde meydana gelir ve etki alanı içindeki tüm yaratıklara 2z10 puanlık delme hasarı veya baÅŸarılı bir ölüme karşı kurtarış durumunda 1z10 puanlık hasar verir.~ -@300=~Diken Püskürtme~ -@299=~Baygın~ -@298=~Ezici Dalga (OluÅŸturma) -Seviye: 4 -Küre: Elemental (Su) -Menzil: 12 metre -Etki Süresi: Anında -Büyü Yapma Süresi: 1 raunt -Etki Alanı: 1,5 metre geniÅŸlikte dalga -Kurtarış Zarı: 1/2 -Bu büyü, icracının arzu ettiÄŸi yöne doÄŸru hareket eden bir su dalgayı çağırır; dalga muazzam bir kudretle yoluna çıkan her ÅŸeye saldırır. Dalga 4z10 puanlık ezme hasarı verir; ek olarak yaratığın %25 olasılıkla 2 rauntluÄŸuna sersemleme ve %5 olasılıkla bilincini yitirme olasılığı vardır. Ä°sabet alan yaratık baÅŸarılı bir nefese karşı kurtarış gerçekleÅŸtirirse hasar yarıya düşer ve yaratık sersemlemekten ya da bilincini yitirmekten kurtulur.~ -@297=~Ezici Dalga~ -@296=~Yıldız Metali Matrak~ -@295=~Yıldız Metali Matrak~ -@294=~Yıldız Metali Matrak -(Çağırma) -Seviye: 4 -Küre: Çarpışma -Menzil: 0 -Etki Süresi: 3 tur -Büyü Yapma Süresi: 7 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü göktaşı demirinden büyülü bir sopa yaratır. Sopanın normal hasarı 1z6+2 puan ezme hasarıdır. Ayrıca saldırı zarlarında +2 avantaja sahiptir; neye vurabileceÄŸi konusunda +4 silah gibi muamele görür. Sopaya yetkinlik, kuvvet ve uzmanlaÅŸma bonusları ile cezaları^normal olarak uygulanır. Ayrıca doÄŸal olmayan yaratıklara (hortlaklar, elementaller, golemler, dış düzlemsel yaratıklar, vs) karşı ilave 2z6 puanlık ezme hasarı verir.~ -@293=~Yıldız Metali Matrak~ -@292=~Tükenmez Dayanıklılık (Ölüm Ä°lmi) -Seviye: 4 -Küre: Ölüm Ä°lmi -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 1 raunt -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü dokunulan yaratığın canlılığını geri kazandırır, efor sarfetmekten dolayı kaybedilen bir buçuk günlük enerjiyi tazeler. Bunun bir karakteri "yorgun" halden çıkartmaya yeterli gelmeyebileceÄŸini belirtmek gerekir.~ -@291=~Tükenmez Dayanıklılık~ -@290=~Veba Bulutu (BaÅŸkalaşım) -Seviye: 4 -Küre: Çarpışma, Elemental (Hava) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 4 raunt -Büyü Yapma Süresi: 7 -Etki Alanı: 6 mt yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü 6 mt yarıçapındaki bir alan içindeki havayı hastalık yayan, grimsi bir sise çevirir. Ä°cracı ve canlı olmayan yaratıklar bulutun etkilerine karşı bağışıktır. Hastalık dolu havaya maruz kaldıkları her turda kurbanlar 3 kuvvet ve çeviklik puanını kaybeder, 3 puan hasar alır ve kör olur. Bu etkiler 1 raunt sürer. Veba Bulutu yalnızca kötü karakterlerce yapılabilir.~ -@289=~Veba Bulutu~ -@288=~SersemletiÅŸ~ -@287=~Ä°yileÅŸtirildi~ -@286=~Kan Öfkesi -(BaÅŸkalaşım) -Seviye: 4 -Küre: Çarpışma -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 7 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü yalnızca oyuncu karakterler ya da müttefik yaratıklarda iÅŸe yarar. Ä°cra edildiÄŸinde büyünün hedefindeki kiÅŸi cinnet geçirir; ölünceye dek en yakındaki yaratığa saldırır, sonra da bir sonraki hedefe geçer. Kan Öfkesi altındayken hedef, efsun, uyku, korku, sabitleyiÅŸ, ÅŸaÅŸkınlık, duygu, sembol büyülerine ve ilgili etkilerine karşı bağışıktır. Ek olarak hedef, vuruÅŸuna +2, hasarına +3, kuvvetine +2, 10 fazladan can puanı ve hareket hızına +2 bonus kazanır. Ancak büyünün birkaç dezavantajı vardır. Büyü süresi boyunca hedefin can puanı maskelenir ve hedef can puanını iyileÅŸtiren hiçbir etkiden yararlanamaz. Büyünün süresi bittiÄŸinde hedef yorgun düşer ve Kuvvet'i 2 turluÄŸuna 3'e düşer. Kan Öfkesi kuralcı yönelime sahip yaratıkları etkilemez ve kuralcı karakterlerce yapılamaz.~ -@285=~Kan Öfkesi~ -@284=~Kıraat -(Sakınma, OluÅŸturma) -Seviye: 4 -Küre: Çarpışma -Menzil: Ä°cracı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 7 -Etki Alanı: 18 mt yarıçapında -Kurtarış Zarı: Yok -Kutsal bir metni ya da bildiriyi okuyarak rahip, düşmanları arasına kargaÅŸa ve zayıflık tohumları ekerken tanrısının kutsayışının kendisi ve müttefikleri üzerinde olmasını saÄŸlar. Rahibin müttefikleri saldırı ve kurtarış zarlarına +2 bonus alırken, düşmanları saldırı ve kurtarış zarlarına -2 ceza alır. Bu büyü dua büyüsünü etkisiz kılmaz - iki büyü art arda yapılabilir ve birinin etkisi diÄŸerinin üzerine eklenir.~ -@283=~Kıraat~ -@282=~Statik elektrik boÅŸaltımı~ -@281=~Statik Yük -(BaÅŸkalaşım) -Seviye: 4 -Küre: Hava -Menzil: 0 -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 9 -Etki Alanı: Ä°cracının Görüş Alanı -Kurtarış Zarı: 1/2 -Statik Yük yıldırım düşürme büyüsüne benzer; tek farkı iç mekanlarda yapılabilmesidir. Bu büyü icracının, büyünün etki alanı içindeki herhangi bir yaratığın çevresinde statik bir elektrik yükü üretmesini saÄŸlar; bu yük 2z8 puan artı icracının her tecrübe seviyesi başına ilave 1z8 puan elektrik hasarı verir. Elektrik yükü büyü süresi boyunca her turda çarpmaya devam eder.~ -@280=~Statik Yük~ -@279=~AteÅŸ Ãœretme (BaÅŸkalaşım) -Seviye: 4 -Küre: Elemental (AteÅŸ) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt -Büyü Yapma Süresi: 7 -Etki Alanı: 180 cm yarıçapında -Kurtarış Zarı: Yok -Bu büyü yapıldığında hedeflenen noktadan alevler püskürür; etki alanı içindeki tüm yaratıklara 1-4, artı icracının seviyesi başına ilave 1 can puanı ateÅŸ hasarı verir.~ -@278=~AteÅŸ Ãœretme~ -@277=~Ilmater'in Lütfu -(Ölüm Ä°lmi) -Seviye: 3 -Küre: Ölüm Ä°lmi, Koruma -Menzil: 10 metre -Etki Süresi: Anında -Büyü Yapma Süresi: 6 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyü icracısı kendi yaÅŸam gücünü hedefinki ile deÄŸiÅŸtirerek tüm fiziksel yaralanmalarını deÄŸiÅŸ tokuÅŸ eder. Büyü, bir tek icracının can puanı hedeften yüksekse iÅŸleyecektir. Bu deÄŸiÅŸim, icracı hasarı iyileÅŸtirmek için normal iyileÅŸtirme yöntemleri kullanana dek kalıcıdır. DeÄŸiÅŸ tokuÅŸ, büyü menzili aÅŸmadığı müddetçe uzaktan yapılabilir. Sadece can puanları deÄŸiÅŸ tokuÅŸ edilir; büyü icracısı hedeften hastalık, zehirlenme, sarhoÅŸluk ve benzeri saÄŸlık durumlarını üzerine alamaz. -Büyü yalnızca kötü yönelimli olmayan karakterlerce yapılabilir. Hortlaklar, yapılar ya da düzlemdışı yaratıklar üzerinde etkisi yoktur.~ -@276=~Favor of Ilmater~ -@275=~Orta Düzey Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 3 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyüyü yapıp elini bir yaratığın üzerine koyduÄŸunda rahip yaratığın bedenine 14 puanlık hasar (yarım hasar için kurtarış) verir. Bu büyünün hortlaklarda, yapılarda, düzlemdışı yaratıklarda etkisi yoktur. Orta Düzey Yaralar Açış büyüsü iyi karakterlerce yapılamaz.~ -@274=~Orta Düzey Yaralar Açış~ -@273=~Fırtına KabuÄŸu (Sakınma) -Seviye: 3 -Küre: Koruma, Hava -Menzil: Ä°cracı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 6 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracıyı, onunla birlikte hareket eden bozucu enerjiden meydana gelmiÅŸ karanlık bir küreyle çevreler. Fırtına kabuÄŸu icracıya gelen tüm ateÅŸ, soÄŸuk ve elektrik hasarlarını %50 azaltır.~ -@272=~Fırtına KabuÄŸu~ -@271=~Küflü DokunuÅŸ -(BaÅŸkalaşım) -Seviye: 3 -Küre: Bitki -Menzil: Temas -Etki Süresi: Özel -Büyü Yapma Süresi: 6 -Etki Alanı: 3 metre yarıçapında -Kurtarış Zarı: Özel -Bu büyü icracının dokunduÄŸu bir yaratığa hızlıca yayılan kahverengi bir küf bulaÅŸtırır. Küf bulaÅŸan yaratık büyüye karşı kurtarış zarı atar. Kurtarış zarı baÅŸarısızlıkla sonuçlanırsa enfeksiyon ÅŸiddetli olur ve yaratık ÅŸu hasarları alır: -1. raunt: 4z6 hasar -2. raunt: 3z6 hasar -3. raunt: 2z6 hasar -4. raunt: 1z6 hasar -Kurtarış zarı baÅŸarılı olursa hasar azalır: -1. raunt: 2z6 hasar -2. raunt: 1z6 hasar -3. raunt: 1z6 hasar -Ä°lkinden sonraki her rauntta, kurbana 3 metre mesafe içindeki en yakın yaratık büyüye karşı kurtarış gerçekleÅŸtirmek zorundadır; aksi takdirde küf tam gücüyle ona bulaşır. Küf uygun bir konakçıya bulaÅŸmada baÅŸarısız olana dek bu süreç devam eder. Zaten küfün etkisi altında olan yaratıklar bir daha küf kapamazlar. Büyü süresi dolduÄŸunda kahverengi küf çabucak ölür.~ -@270=~Küflü DokunuÅŸ~ -@269=~Bastıran SaÄŸanak -(OluÅŸturma) -Seviye: 3 -Küre: Elemental (Su) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 2 raunt -Büyü Yapma Süresi: 6 -Etki Alanı: 12 metre yarıçapında -Kurtarış Zarı: Yok -Bu büyü, etki alanını sırılsıklam eden büyülü bir yaÄŸmur açığa çıkarır. Tüm soÄŸuk ve ateÅŸ kullanan/kökenli yaratıklar raunt başına 2z3 puan büyü hasarı alırlar. Ek olarak alandaki tüm yaratıklara her turda %50 ihtimalle yıldırım çarpma olasılığı vardır; çarpan yıldırım 2z6 elektrik hasarı verir, kurtarış zarı bu hasarı yarıya düşürür. Bastıran SaÄŸanak; Alev Kılıcı büyülerini, Alev Kefeni'ni ve semender auralarını söndürür.~ -@268=~Bastıran SaÄŸanak~ -@267=~Dikenli Filizler (BaÅŸkalaşım) -Seviye: 3 -Küre: Elemental (Toprak) -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 6 -Etki Alanı: 4,5 mt yarıçapında -Kurtarış Zarı: Yok -Bu büyü çevredeki araziyi dikenli bitkilere dönüştürür. Alana giren her yaratık büyünün süresi doluncaya kadar her rauntta 1z4 puan delme hasarı ve 1z4 puan kesme hasarı alır.~ -@266=~Dikenli Filizler~ -@265=~Kemik Çemberi -(Ölüm Ä°lmi) -Seviye: 3 -Küre: Muhafız/Yaratılış -Menzil: 0 -Etki Süresi: 3 raunt -Büyü Yapma Süresi: 3 -Etki Alanı: 1 metre yarıçapında -Kurtarış Zarı: Yok -Bu büyü havada süzülerek icracının etrafında hızla dönen kemiklerden oluÅŸan bir bariyer yaratır, icracı büyünün etki süresi boyunca hareket edemez. Kemiklerin yoluna çıkan herkes raunt başına 1z6 ezme hasarı ve 1z6 kesme hasarı alır. Kemik Çemberi iyi yönelimli karakterlerce yapılamaz.~ -@264=~Kemik Çemberi~ -@263=~Aykılıcı~ -@262=~Aykılıcı~ -@261=~Aykılıcı (OluÅŸturma) -Seviye: 3 -Küre: Çarpışma, GüneÅŸ -Menzil: Ä°cracı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 6 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracının elinde 120 cm uzunluÄŸunda, ayışığından meydana gelen, sessiz, ağırlıksız kılıç benzeri bir yapı belirmesini saÄŸlar. Aykılıcı hangi yaratıklara hasar verebileceÄŸi konusunda +4'lük bir silah olarak kabul edilir, ancak bonus puan 0ZSV'ye uygulanmaz. Ek olarak aykılıcının soyut yapısından dolayı kuvvetten kaynaklı yakın dövüş bonusları uygulanmaz. -Aykılıcı hedefe isabet ettiÄŸinde yaÅŸam gücünü emer, 1z12+4 puan hasar verir; bu kılıca karşı bilhassa hassas olan hortlaklara ise fazladan 1z12 puan daha hasar verir. BaÅŸarılı bir darbe ayrıca geçici süreyle büyüyü de engeller; hedefin bir sonraki rauntta icra ettiÄŸi tüm büyülerin baÅŸarısız olmasına sebep olur.~ -@260=~Aykılıcı~ -@259=~Uyku~ -@258=~Yüceltme -(Sakınma) -Seviye: 3 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: 1 tur -Büyü Yapma Süresi: 9 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü rahibin kendisi haricindeki bir varlığa destek olmasını ve onu korumasını saÄŸlar. Dokunmak suretiyle icracı korku, uyku, aptallaÅŸma, bilinç yitikliÄŸi, sarhoÅŸluk yanısıra cinnet ve zihin karışıklığı etkilerini ortadan kaldırır. Ä°lave olarak kiÅŸi, büyünün etki süresi boyunca bu etkilere sebep olan büyü ve diÄŸer saldırılara karşı korunur.~ -@257=~Yüceltme~ -@256=~Hastalığa Yol Açış -(Ölüm Ä°lmi) -Seviye: 3 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: 8 saat -Büyü Yapma Süresi: 9 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Etkisiz -Bu büyü rahibin dokunduÄŸu bir yaratıkta, hedefin kuvvetini 5z4 puan zayıflatan bir hastalığa sebep olur. BaÅŸarılı bir büyüye karşı kurtarış zarı büyünün etkilerini hükümsüz kılar. Bu büyünün hortlaklar, yapılar ya da düzlemdışı yaratıklar üzerinde etkisi yoktur. Hastalığa Yol Açış iyi yönelimli karakterlerce yapılamaz.~ -@255=~Hastalığa Yol Açış~ -@254=~Çarpışma Cezaları~ -@253=~Çarpışma Bonusları~ -@252=~Dua (Çağırma) -Seviye: 3 -Küre: Çarpışma -Menzil: Ä°cracı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 6 -Etki Alanı: 18 mt yarıçapında -Kurtarış Zarı: Yok -Dua, rahip ve müttefiklerinin üzerine lütuf bahÅŸederken düşmanlarını lanetler. Dost karakterler tüm saldırı, hasar ve kurtarış zarlarına +1 kazanırken; düşman saldırı, hasar ve kurtarışlarına -1 ceza alır. Büyünün icrası esnasında etki alanında yakalanan tüm yaratıklar alanı terk ettiklerinde de büyüden etkilenmeye devam ederler; yani dövüşçüler kaçan o goblini kovalamak istiyorlarsa Dua'nın etkileri de yaratığı takip edecektir.~ -@251=~Dua~ -@250=~Orta Dereceli Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 2 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Sürekli -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyüyü yapıp elini bir yaratığın üzerine koyduÄŸunda rahip yaratığın bedenine 11 puanlık hasar (yarı-hasar için kurtarış zarı) verir. Bu büyünün hortlaklarda, yapılarda veya düzlemdışı yaratıklarda etkisi yoktur. Orta Dereceli Yaralar Açış büyüsü iyi yönelimli karakterlerce yapılamaz.~ -@249=~Orta Dereceli Yaralar Açış~ -@248=~Hayvan Pençesi~ -@247=~Hayvan Pençesi~ -@246=~Hayvan Pençesi -(BaÅŸkalaşım) -Seviye: 2 -Küre: Çarpışma -Menzil: Ä°cracı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 5 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracının kollarını kudretli bir hayvanın pençelerine çevirir; icracıya 18/72 kuvvet ve bir düşmanını 2z4 (+ kuvvet bonusu) puanlık kesme hasarıyla tırmıklama kabiliyeti verir. Ä°cracı, hayvan pençeleriyle bir rauntta iki kez saldırabilir ve vuruÅŸuna +2 bonus alır.~ -@245=~Hayvan Pençesi~ -@244=~Outlined in a Silvery Radiance (AC penalty of 2)~ -@243=~Alikorn Kargı -(OluÅŸturma) -Seviye: 2 -Küre: Çarpışma -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyü gümüş rengi, alikorn (tekboynuz boynuzu) biçiminde, kısmen ruhani yapıya sahip bir kargı yaratır. Büyü icracısı bir hedef seçer ve alikorn kargı anında ona doÄŸru fırlayarak 3z6 puanlık delme hasarı verir. Yarı hasar için kiÅŸi kurtarış zarı atar. Her ne kadar saplandıktan sonra alikorn kargı yok olsa da hedefin çevresinde, görülmesini ve vurulmasını kolaylaÅŸtıran gümüşi bir parlaklık bırakır; bu parlaklık 3 raunt boyunca ZS'sine -2 ceza verir.~ -@242=~Alikorn Kargı~ -@241=~Ä°yileÅŸti~ -@240=~Orta Dereceli Yaraları Tedavi -(Ölüm Ä°lmi) -Seviye: 2 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -1. seviye rahip büyüsü Hafif Yaraları Tedavi'nin daha güçlü bir biçimi olan Orta Dereceli Yaraları Tedavi canlı bir yaratığın 11 puan hasarını iyileÅŸtirir ve sarhoÅŸluÄŸu tedavi eder. Bu büyünün hortlaklarda, yapılarda veya düzlemdışı yaratıklarda etkisi yoktur.~ -@239=~Orta Dereceli Yaraları Tedavi~ -@238=~KörleÅŸti~ -@237=~GünkavuruÅŸu (OluÅŸturma) -Seviye: 1 -Küre: GüneÅŸ -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 4 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyü yapıldığında gökten parlak, kavurucu bir ısı ışını iner ve icracının seçtiÄŸi bir hedefe isabet eder. Kurbanın yarı hasar alabilmesi için büyüye karşı kurtarış yapmasına izin verilir. Işının isabet ettiÄŸi her yaratık 1z6 puan artı icracının seviyesi başına 1 puan hasar alır. Hortlak yaratıklar ile parlak ışığa karşı hassas canavarlar 1z6 puan artı icracının seviyesi başına 2 puan hasar alır. Hasara katlanmanın yanısıra kurbanlar 3 raunt boyunca da kör olur.~ -@236=~GünkavuruÅŸu~ -@235=~Hafif Yaralar Açış -(Ölüm Ä°lmi) -Seviye: 1 -Küre: Ä°yileÅŸtirme -Menzil: Temas -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 1 yaratık -Kurtarış Zarı: 1/2 -Bu büyüyü yapıp elini bir yaratığın üzerine koyduÄŸunda rahip yaratığın bedenine 8 puanlık hasar (yarım hasar için kurtarış zarı) verir. Bu büyünün hortlaklarda, yapılarda veya düzlemdışı yaratıklarda etkisi yoktur. Hafif Yaralar Açış büyüsü iyi yönelimli karakterlerce yapılamaz.~ -@234=~Hafif Yaralar Açış~ -@233=~Lanetlendi~ -@232=~Lanet (Çağırma) -Seviye: 1 -Küre: Hepsi -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 6 raunt -Büyü Yapma Süresi: 1 raunt -Etki Alanı: 7,5 mt yarıçapında -Kurtarış Zarı: Yok -Lanet büyüsünü dile getirerek icracı düşman yaratıkların moralini düşürür; kurtarış ve saldırı zarlarına -1 ceza almalarına sebep olur. Büyü, tamamlandığı anda icracı tarafından seçilen noktayı merkezine alan 15 metre küplük bir alandaki tüm yaratıkları etkiler (bu nedenle alanı terk eden etkilenmiÅŸ yaratıklarda büyünün etkisi devam ederken büyü yapıldıktan sonra alana girenler ise etkilenmez).~ -@231=~Lanet~ -@230=~Bu büyü seçilen karakteri iyileÅŸtirir. Karakterin 11 can puanı yenilenir.~ -@229=~Taşın Gözü -Bu göz icracıyı tek bir taÅŸlaÅŸtırma saldırısından korur. -Ayrıca 3. seviye büyücü büyüsü KiÅŸi SabitleyiÅŸ ÅŸeklinde de harcanabilir. Bu büyü insan boyundaki ya da daha küçük insansıları her seviye başına 1 raunt boyunca hareketsiz kılar (Büyüye Karşı Kurtarış etkisiz kılar).~ -@228=~Taşın Gözü~ -@227=~Ruhun Gözü -Bu göz bir tane anında ölüm büyüsü saldırısını (Ölüm Büyüsü, Ölümün Parmağı, Güç Sözcüğü: Öldür, Canlı KatlediÅŸ, Ä°mha) engeller. -Bunun yerine büyücü gözün gücünü, 2. seviye büyücü büyüsü olan Zayıf Düşüren Işın ÅŸeklinde de harcayabilir. Büyü hedefin Kuvvet'ini 5'e düşürür (Büyüye Karşı Kurtarış etkisiz kılar).~ -@226=~Ruhun Gözü~ -@225=~Dayanıklılığın Gözü -Bu büyü bir tane sersemletiÅŸ, sağırlık, körlük ya da susturuÅŸ etkisini engeller. -Bundan farklı olarak 4. seviye büyücü büyüsü Nara ÅŸeklinde de harcanabilir. Nara 10 metrelik bir koni içindeki yaratıklara 4z6 büyü hasarı vererek onları sağır eder (Büyüye Karşı Kurtarış hasarı yarıya indirerek sağırlığı etkisiz hale getirir).~ -@224=~Dayanıklılığın Gözü~ -@223=~Zehrin Gözü -Bu göz icracıyı zehirleyebilecek herhangi bir saldırı ya da etkiyi durdurur. -Ayrıca göz 4. seviye rahip büyüsü olan Zehir ÅŸeklinde de harcanabilir. Zehir 20 saniyelik bir süre içerisinde bir yaratığa 20 puanlık hasar verir (Zehre Karşı Kurtarış etkisiz kılar).~ -@222=~Zehrin Gözü~ -@221=~Kılıcın Gözü -Bu göz icracıya isabet eden ilk fiziksel hasar verici saldırıyı saptırır. -Göz 1. seviye büyücü büyüsü Büyü Misili ÅŸeklinde harcanabilir ve her biri hedefe çarparak 1z4+1 büyü hasarı veren en fazla 5 büyü misili (ilkinin yanı sıra her iki tecrübe seviyesi için bir tane) yaratabilir.~ -@220=~Kılıcın Gözü~ -@219=~Büyücünün Gözü -Bu göz bir saldırıdan açığa çıkacak ilk ateÅŸ, elektrik, soÄŸuk ya da asit hasarını emer. -Ayrıca göz 3. seviye büyücü büyüsü Yıldırım ÅŸeklinde de harcanabilir. Yıldırım yoluna çıkan her yaratığa seviye başına 1z6 elektrik (tavanı 10z6'dır) hasarı verir.~ -@218=~Büyücünün Gözü~ -@217=~Aklın Gözü -Bu küre icracıyı; efsun, duygu ve korku gibi zihinsel saldırılara karşı korur. -Göz 1. seviye büyücü büyüsü büyüsü KiÅŸi Efsunlama ÅŸeklinde harcanabilir ve 1 turluÄŸuna insansı bir yaratığı icracının hakimiyetine atar (Büyüye Karşı Kurtarış etkisiz kılar).~ -@216=~Aklın Gözü~ -@215=~Yapılmakta olan büyü bitmeden baÅŸka bir büyüyü yapamazsın.~ -@214=~Yedi Göz~ -@213=~Yedi Göz (Sakınma) -Seviye: 7 -Menzil: Ä°cracı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 7 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü, icracının kafası üzerinde bir halka halinde süzülen yedi büyülü küre meydana getirir. Her bir gözün bir savunma ve saldırı kabiliyeti vardır; ancak herhangi biri kullanıldığında göz gücünü kaybeder. Herhangi bir göz kalıp kalmasa bile büyü süresi dolmadan önce, öncekinin üzerine yapılmaya kalkışılan bir Yedi Göz büyüsü baÅŸarısız olur. Her bir gözün gücü aÅŸağıda açıklanmıştır. -Aklın Gözü - bu küre icracıyı; efsun, duygu ve korku gibi zihinsel saldırılara karşı korur. Göz 1. seviye büyücü büyüsü büyüsü KiÅŸi Efsunlama ÅŸeklinde harcanabilir. -Kılıcın Gözü - bu göz icracıya isabet eden ilk fiziksel hasar verici saldırıyı saptırır. Göz 1. seviye büyücü büyüsü Büyü Misili (5 misil) ÅŸeklinde harcanabilir. -Büyücünün Gözü - bu göz bir saldırıdan açığa çıkacak ilk ateÅŸ, elektrik, soÄŸuk ya da asit hasarını emer. Ayrıca göz 3. seviye büyücü büyüsü Yıldırım (4z8 hasar) ÅŸeklinde de harcanabilir. -Zehrin Gözü - bu göz icracıyı zehirleyebilecek herhangi bir saldırı ya da etkiyi durdurur. Ayrıca göz bir yaratığı zehirlemek için kullanılabilir; zehir 30 saniyelik bir süreçte 30 puanlık hasar verir. -Ruhun Gözü - bu göz bir tane anında ölüm büyüsü saldırısını (Ölüm Büyüsü, Ölümün Parmağı, Güç Sözcüğü: Öldür, Canlı KatlediÅŸ, Ä°mha) engeller. Bunun yerine büyücü gözün gücünü, zayıf düşüren ışın ÅŸeklinde de harcayabilir; bu ışın hedefin kuvvetini 5'e düşürür, vuruÅŸ olasılığını ve vereceÄŸi hasarı azaltır. -Dayanıklılığın Gözü - bu büyü bir tane sersemletiÅŸ, sağırlık, körlük ya da susturuÅŸ etkisini engeller. Bundan farklı olarak 4. seviye büyücü büyüsü Nara ÅŸeklinde de harcanabilir. -Taşın Gözü - bu göz icracıyı tek bir taÅŸlaÅŸtırma saldırısından korur. Ayrıca 3. seviye büyücü büyüsü KiÅŸi SabitleyiÅŸ ÅŸeklinde de harcanabilir. -Herhangi bir göz kalıp kalmasa bile büyü süresi dolmadan önce, öncekinin üzerine yapılmaya kalkışılan bir Yedi Göz büyüsü baÅŸarısız olur.~ -@212=~Yedi Göz~ -@211=~Malavon'un Öfkesi~ -@210=~Malavon'un Öfkesi -(OluÅŸturma) -Seviye: 7 -Menzil: Ä°cracı -Etki Süresi: Anında -Büyü Yapma Süresi: 1 -Etki Alanı: 4,5 mt yarıçapında -Kurtarış Zarı: 1/2 -Malavon'un Öfkesi sihirbaz kara elf Malavon tarafından yaratılmıştır. Büyü, icracının bedeninden her yöne saf enerji okları fırlatarak dost düşman ayırt etmeksizin herkese saplanır. Bu küçük büyü çivileri yollarına çıkan her ÅŸeye 20-80 puanlık delme hasarı verir. Büyü, büyücü düşmanlarla çevrili olduÄŸundu özellikle iÅŸe yarar.~ -@209=~Malavon'un Öfkesi~ -@208=~Kelle Alan VuruÅŸ~ -@207=~Ölüm~ -@206=~Hortlak yok edildi~ -@205=~Dış düzlemsel yok edildi~ -@204=~Silüetler~ -@203=~Silüetler (Yanılsama) -Seviye: 6 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 6 -Etki Alanı: 6 metre küp -Kurtarış Zarı: Yok -Silüetler büyüsü Gölge Canavarlar ve Yarıgölge Canavarlar büyüleriyle benzerlik gösterir - icracının Gölge Yarıdüzlemi'nden gelen maddelere ÅŸekil vererek onları hayali canavarlara çevirmesini saÄŸlar. Bu gölgeler Gölge Canavarlar ya da Yarıgölge Canavarlar ile çaÄŸrılanlardan daha kuvvetlidir ve öldürülünceye ya da büyü süresi doluncaya dek icracıya itaat ederler.~ -@202=~Silüetler~ -@201=~Liç DokunuÅŸu~ -@200=~Liç DokunuÅŸu~ -@199=~Liç DokunuÅŸu -(Ölüm Ä°lmi) -Seviye: 6 -Menzil: Temas -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 6 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Özel -Bu büyü icracıya bir liçin dokunuÅŸunun güçlerini ve bağışıklıklarını bahÅŸeder. Büyücü, büyü etkin durumdayken felce ve korkuya karşı bağışıklık kazanır. Büyücünün elleri tüyler ürpertici yeÅŸil bir parıltı ile parlayarak hedefe 1-10 can puanı hasar verir ve ÅŸayet felce karşı kurtarış yapılmazsa onu felç eder. Büyünün hortlaklar üzerinde etkisi yoktur.~ -@198=~Liç DokunuÅŸu~ -@197=~Büyü Boz~ -@196=~Antibüyü KabuÄŸu~ -@195=~Antibüyü KabuÄŸu -(Sakınma) -Seviye: 6 -Menzil: Ä°cracı -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 1 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracıyı, onunla birlikte hareket eden, görünmez bir bariyerle çevreler. Bu bariyer büyücüyü her türlü büyülü saldırıya karşı bağışık hale getirir; ancak aynı zamanda büyücünün kabuÄŸun dışına büyü yapmasını da engeller.~ -@194=~Antibüyü KabuÄŸu~ -@193=~Çetin Kertenkele Adam~ -@192=~Goblin Seçkini~ -@191=~Goblin Seçkini~ -@190=~Yarı-Gölge Canavarlar~ -@189=~Yarıgölge Canavarlar -(Yanılsama) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 5 -Etki Alanı: 6 metre küp -Kurtarış Zarı: Yok -Bu büyü 4. seviye büyücü büyüsü olan Gölge Canavarlar ile benzerlik taşır. Ancak burada çaÄŸrılan yaratıklar çok daha kuvvetlidir ve gerçek dünyadaki emsallerinin %40 can puanına sahiptir.~ -@188=~Yarıgölge Canavarlar~ -@187=~Trol Silahı~ -@186=~Trol~ -@185=~Trol~ -@184=~Gölge Canavarlar~ -@183=~Gölge Canavarlar -(Yanılsama) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 4 -Etki Alanı: 6 metre küp -Kurtarış Zarı: Özel -Bu büyü Gölge Yarıdüzlemi'nden gelen maddelere ÅŸekil vererek onları hayali canavarlara çevirir. Bu canavarlar rastgele ve teker teker çaÄŸrılır. Yaratıkların Can Zarı 1 ile büyü icracısının seviyesi arasındadır ve çaÄŸrılan yaratıkların toplam Can Zarı büyü icracısının seviyesine eÅŸitlenene dek yaratık çağırma süreci devam eder. (ÖrneÄŸin 15. seviye bir büyücünün birinci turda çağırdığı yaratık 10. seviyeyse sonraki rauntta ortaya çıkan yaratığın Can Zarı 1 ile 5 arasında olur ve bu böyle devam eder.) Bu gölgemsi yaratıkların can puanı gerçek dünyadaki emsallerinin %20'si kadardır, ancak saldırıları tam hasar verir.~ -@182=~Gölge Canavarlar~ -@181=~Hızlanmış~ -@180=~YavaÅŸlat~ -@179=~YavaÅŸlatıldı~ -@178=~Hızlı Tüymek -(BaÅŸkalaşım) -Seviye: 1 -Menzil: Büyüyü yapan kiÅŸi -Etki Süresi: 3 raunt -Büyü Yapma Süresi: 1 -Etki Alanı: Büyüyü yapan kiÅŸi -Kurtarış Zarı: Yok -Bu büyü, büyücünün normal hızını kısa bir süreliÄŸine --genellikle kaçmak için yeterli-- iki katına çıkarır. BaÅŸka hıza etkili büyüler, hızlandırma ve yavaÅŸlatma gibi, bu büyü aktif iken büyücüye iÅŸlemez. Hızlı Tüymek aktif iken büyücü saldıramaz, büyü yapamaz, eÅŸya veya özel yetenek kullanamaz... Yalnızca koÅŸar.~ -@177=~Hızlı Tüymek ~ -@176=~Mordenkainen'in Kılıcı~ -@175=~Mordenkainen'in Kılıcı~ -@174=~Mordenkainen'in Kılıcı -(OluÅŸturma) -Seviye: 7 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 7 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyü, icracı tarafından zihinsel olarak kullanılabilen, parıldayan bir güç kılıcı ortaya çıkarır. Kılıç sanki icracının yarı seviyesindeki bir dövüşçü tarafından kullanılıyormuÅŸ gibi saldırır ve elde tutulduÄŸu gerçeÄŸine raÄŸmen icracının görüş alanı içinde herhangi bir yerde bulunan yaratığa vurabilir. Kılıç bir saldırı bonusuna sahip olmasa da normalde sadece +2 veya daha yüksek silahlarla vurulabilen yaratıklara vurabilir ve her vuruÅŸta 5-30 can puanı hasar verir.~ -@173=~Mordenkainen'in Kılıcı~ -@172=~Su Elementali~ -@171=~Su Elementali~ -@170=~Su Elementali Çağırma~ -@169=~Su Elementali Çağırma -(Çağırma) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyü icracının Su Elementi Düzlemi'nden bir elemental çağırmasını ve yaratığın icracının iradesine boyun eÄŸmesini saÄŸlar. Bu elemental, yok edilinceye ya da büyü süresi doluncaya dek icracı adına savaşır.~ -@168=~Su Elementali Çağırma~ -@167=~Hava Elementali~ -@166=~Hava Elementali~ -@165=~Hava Elementali Çağır~ -@164=~Conjure Air Elemental -(Conjuration/Summoning) -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Air and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ -@163=~Hava Elementali Çağır~ -@162=~AteÅŸ Elementali~ -@161=~AteÅŸ Elementali~ -@160=~AteÅŸ Elementali Çağırma~ -@159=~AteÅŸ Elementali Çağırma -(Çağırma) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyü icracının AteÅŸ Elementi Düzlemi'nden bir elemental çağırmasını ve yaratığın icracının iradesine boyun eÄŸmesini saÄŸlar. Bu elemental, yok edilinceye ya da büyü süresi doluncaya dek icracı adına savaşır.~ -@158=~AteÅŸ Elementali Çağırma~ -@157=~Toprak Elementali~ -@156=~Toprak Elementali~ -@155=~Toprak Elementali Çağırma~ -@154=~Toprak Elementali Çağırma -(Çağırma) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur/seviye -Büyü Yapma Süresi: 1 raunt -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyü icracının Toprak Elementi Düzlemi'nden bir elemental çağırmasını ve yaratığın icracının iradesine boyun eÄŸmesini saÄŸlar. Bu elemental, yok edilinceye ya da büyü süresi doluncaya dek icracı adına savaşır.~ -@153=~Toprak Elementali Çağırma~ -@152=~Canavar Çağırma III~ -@151=~Canavar Çağırma III -(Çağırma) -Seviye: 5 -Menzil: 36,5 metre -Etki Süresi: 4 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 5 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-4 adet 3. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@150=~Canavar Çağırma III~ -@149=~Kertenkele Adam~ -@148=~Kertenkele Adam~ -@147=~Canavar Çağırma II~ -@146=~Canavar Çağırma II -(Çağırma) -Seviye: 4 -Menzil: 36,5 metre -Etki Süresi: 3 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 4 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-6 adet 2. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@145=~Canavar Çağırma II~ -@144=~Goblin~ -@143=~Goblin~ -@142=~Canavar Çağırma I~ -@141=~Canavar Çağırma I -(Çağırma) -Seviye: 3 -Menzil: 36,5 metre -Etki Süresi: 2 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 4 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 2-6 adet 1. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@140=~Canavar Çağırma I~ -@139=~Saldırı~ -@138=~Minotor~ -@137=~Minotor~ -@136=~Monster Summoning V~ -@135=~Canavar Çağırma V -(Çağırma) -Seviye: 7 -Menzil: 36,5 metre -Etki Süresi: 6 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 6 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-3 adet 5. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@134=~Canavar Çağırma V~ -@133=~Salamander spear -1d8 piercing -1d6 fire damage -do not translate~ -@132=~Frost salamander spear -1d8 piercing -+1d6 cold -do not trans~ -@131=~Semender~ -@130=~Semender~ -@129=~Buz Semenderi~ -@128=~Buz Semenderi~ -@127=~Monster Summoning VI~ -@126=~Canavar Çağırma VI -(Çağırma) -Seviye: 8 -Menzil: 36,5 metre -Etki Süresi: 7 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 8 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-3 adet 6. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@125=~Canavar Çağırma VI~ -@124=~Saldırı~ -@123=~Ombra Yarması~ -@122=~Ombra Yarması~ -@121=~Kemikmuhafızı Ä°skelet~ -@120=~Kemikmuhafızı Ä°skelet~ -@119=~Monster Summoning VII~ -@118=~Canavar Çağırma VII -(Çağırma) -Seviye: 9 -Menzil: Özel -Etki Süresi: 7 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 9 -Etki Alanı: 73 metre yarıçapında -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-2 adet 7. ya da 8. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@117=~Canavar Çağırma VII~ -@116=~Monster Summoning IV~ -@115=~Canavar Çağırma IV -(Çağırma) -Seviye: 6 -Menzil: 36,5 metre -Etki Süresi: 5 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 6 -Etki Alanı: Özel -Kurtarış Zarı: Yok -Bu büyüyü yaparak büyücü 1-3 adet 4. seviye canavar çağırır. Bu canavarlar büyü menzili içinde ortaya çıkarlar ve kendilerine icracının düşmanlarına saldırma emri verilebilir. Yaratıklar öldürüldüklerinde ya da büyü süresi dolduÄŸunda yok olurlar.~ -@114=~Canavar Çağırma IV~ -@113=~Kafatası~ -@112=~Monster Transparency -Do not translate~ -@111=~Monster Transparancy Item~ -@110=~Gölge~ -@109=~Gölge~ -@108=~Gölge Çağırma~ -@107=~Gölge Çağırma -(Çağırma, Ölüm Ä°lmi) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt + 1 raunt/seviye -Büyü Yapma Süresi: 5 -Etki Alanı: 3 metre küp -Kurtarış Zarı: Yok -Bu büyü, icracının sahip olduÄŸu her üç seviye başına bir ruh çağırır. Bu gölge icracının emirlerine itaat eder; gölge yok edilene ya da büyünün süresi dolana dek düşmanlara saldırır ya da görevleri yerine getirir.~ -@106=~Gölge Çağırma~ -@105=~Demir Yumruk~ -@104=~Iron Fist~ -@103=~Korkunç bir hastalık kapmış~ -@102=~Hastalanmış~ -@101=~ZehirlenmiÅŸ~ -@100=~Zehir~ -@99=~Demirden Vücut~ -@98=~Demirden Vücut (BaÅŸkalaşım) -Seviye: 8 -Menzil: Ä°cracı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 8 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracının bedenini canlı demire dönüştürür ve ona bir takım güçlü direnç ve kabiliyetler kazandırır. Büyü etkinken icracı elektriÄŸe karşı %100, ateÅŸe karşı %50, ezme hasarına karşı %25 dirençli olur. Solunumunu ya da fizyolojisini etkileyebilecek büyülerden etkilenmez. Ek olarak icracının kuvvetini 25'e yükselir ve 2z4 puan + uygulanan kuvvet bonusları kadar hasar veren demir yumrukları ile raunt başına iki kez saldırabilir. Ancak ne yazık ki icracının hareketleri yavaÅŸlar ve hantallaşır; hareket hızı normalin %25'ine iner. Ayrıca Demirden Vücut etkinken büyü icra edemez.~ -@97=~Demirden Vücut~ -@96=~Bilinçsiz~ -@95=~Güçlü Nara~ -@94=~Etkili Nara (OluÅŸturma) -Seviye: 8 -Menzil: 0 -Etki Süresi: Anında -Büyü Yapma Süresi: 1 -Etki Alanı: 15 derece açılı 9 m.lik koni -Kurtarma Zarı: 1/2 -Etkili Nara'yı dile getirdiÄŸinde büyücünün aÄŸzından 9 metre uzunluÄŸunda ve 3 metre çapında bir koni halinde yayılan sersemletici bir güç açığa çıkar. Etkili Nara kullanıcı için aşırı derecede zorlayıcı ve tehlikelidir. Nara, büyüyü yapanın 2z4 can puanını tüketir; ayrıca büyüyü yapan kiÅŸi büyüye karşı kurtarma zarı atmalıdır, aksi takdirde bir turluÄŸuna bilincini yitirir. Etkili Nara'ya yakalanan 5 can zarı ya da altına sahip yaratıklar anında ölür. Etki alanı içindeki diÄŸer tüm yaratıklardan büyüye karşı kurtarma zarını tutturamayanlar 2 rauntluÄŸuna sersemler, 4 rauntluÄŸuna sağırlaşır ve 4z12 puanlık hasara maruz kalır. Kurtarma zarını tutturanlar 1 rauntluÄŸuna sersemler, 2 rauntluÄŸuna sağırlaşır ve 2z12 puanlık hasar alır.~ -@93=~Güçlü Nara~ -@92=~~ -@91=~Efsunlanmış~ -@90=~Åžiddetli Efsunlanmış~ -@89=~Hâkimiyet KurulmuÅŸ~ -@88=~Moral Çöküşü: Panik~ -@87=~SarhoÅŸ~ -@86=~Afallatıldı~ -@85=~Zihin Tutulması~ -@84=~SabitlenmiÅŸ~ -@83=~Felç~ -@82=~SabitlenmiÅŸ~ -@81=~Zihin BoÅŸaltımı~ -@80=~Zihin BoÅŸaltımı (Sakınma) -Seviye: 8 -Menzil: Ä°cracı -Etki Süresi: 1 Gün -Büyü Yapma Süresi: 1 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Akli iradesini ve mahremiyetini sürdürebilmek amacıyla Zihin BoÅŸaltımı bir yaratığın aklını neredeyse her türlü zihinsel etkiden korur: Efsun, Buyruk, Hakimiyet, Korku, AptallaÅŸtırma büyülerine ve kristal küre ya da diÄŸer kehanet yöntemleriyle yapılan her türlü zihin okumalara karşı.~ -@79=~Zihin BoÅŸaltımı~ -@78=~BoÄŸma~ -@77=~BoÄŸma (BaÅŸkalaşım) -Seviye: 7 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 4 raunt -Büyü Yapma Süresi: 7 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: 1/2 -Bu büyü etki alanı içindeki tüm yaratıkların ciÄŸerlerindeki nefesi çeker. Nefes almayan yaratıklar büyüden etkilenmez. Havasız kalan yaratıklar zırh seviyesine -4, vuruÅŸuna -4, çevikliÄŸine -6 cezaya maruz kalırlar; raunt başına saldırıları bir azalır; hareket hızları yarıya düşer ve raunt başına 4z8 puanlık hasar alırlar. BaÅŸarılı bir kurtarış zarı tüm bu etkileri hükümsüz kılar ve tur başına alınan hasar 2z8'e düşer. Yaratık etki alanı dışına çıktığında etkiler yok olmaya baÅŸlar, ancak bir karakterin soluklanıp kendine gelmesi bir raunt alabilir.~ -@76=~BoÄŸma~ -@75=~Asit Fırtınası~ -@74=~Asit Fırtınası -(OluÅŸturma) -Seviye: 7 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 7 -Etki Alanı: 7 metre yarıçapında -Kurtarış Zarı: 1/2 -Bu büyü etki alanına bir asit saÄŸanağı yaÄŸdırır; ilk üç raunt boyunca her rauntta 1z4 asit hasarı, takip eden üç rauntta 1z6 hasar ve sonrasında da her rauntta 1z8 hasar verir. Etki alanının dışına çıkmak alınan hasarı durdurmaz - asit cilde yapışır ve Asit Fırtınası yapıldığında etki alanı içinde olan her yaratık büyü süresi doluncaya dek hasar almaya devam eder. Bulutun isabet ettiÄŸi yaratıklar her rauntta büyüye karşı kurtarış yaparlar - baÅŸarılı olurlarsa sadece yarı hasar alırlar (sadece o raunt için).~ -@73=~Asit Fırtınası~ -@72=~Trol Dayanıklılığı~ -@71=~Trol Dayanıklılığı (Ölüm Ä°lmi) -Seviye: 6 -Menzil: Ä°cracı -Etki Süresi: 2 tur -Büyü Yapma Süresi: 6 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracıya trollerin çabuk iyileÅŸebilme gücünü bahÅŸeder; maksimum can puanına kadar icracının raunt başına 5 can puanını tazeleyebilmesini saÄŸlar.~ -@70=~Trol Dayanıklılığı~ -@69=~Ä°skelet~ -@68=~Ä°skelet~ -@67=~Ruh Yiyen~ -@66=~Ruh Yiyen (Ölüm Ä°lmi) -Seviye: 6 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 5 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Yok -Bu büyü 3 metrelik bir yarıçap içindeki tüm canlı yaratıklara 3z8 puan hasar verir. Bu hasarın sonucu olarak ölen bir yaratık imha olur ve özü, icracının kontrolü altındaki 3 can zarına sahip bir iskelete dönüşür. Ayrıca bu ÅŸekilde ölen her yaratık için icracı 1 turluÄŸuna kuvvet, çeviklik ve dayanıklılığına +1 bonus kazanır. Ruh Yiyen'in hortlaklar, yapılar ve elemental yaratıklar üzerinde etkisi yoktur.~ -@65=~Ruh Yiyen~ -@64=~Kemik Dartı~ -@63=~Kemik Dartı~ -@62=~Kemik Dartları~ -@61=~Kemik Dartları (Ölüm Ä°lmi) -Seviye: 6 -Menzil: Ä°cracı -Etki Süresi: 5 raunt -Büyü Yapma Süresi: 5 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracı tarafından kullanılabilen ve büyü etkin olduÄŸu müddetçe elden bırakılamayan dokuz tane dart yaratır. Dartlar +3'tür, 1z4 hasar verirler ve dartların birinin isabet ettiÄŸi yaratık ölüme karşı kurtarış gerçekleÅŸtirmelidir, aksi takdirde ilaveten 2z6 hasar alır ve kuvveti 5 rauntluÄŸuna 3 puan düşer. Ä°cracının darttaki silah yetkinliÄŸinin (ya da yetkinsizliÄŸinin) dartların hedefi vurma olasılığı üzerinde hiçbir etkisi yoktur.~ -@60=~Kemik Dartı~ -@59=~Otiluke'ün Dondurucu Küresi~ -@58=~Otiluke'ün Dondurucu Küresi -(BaÅŸkalaşım, OluÅŸturma) -Seviye: 6 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 6 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Etkisiz -Bu büyü bir yaratığa doÄŸru, 3-6 puan soÄŸuk hasarının icracının seviyesiyle çarpımı kadar hasar veren bir soÄŸuk küresi fırlatır. Ancak hedef kurtarış zarı atıp baÅŸarılı olursa küreden sıyrılır ve hasarın tamamından kurtulur.~ -@57=~Otiluke'ün Dondurucu Küresi~ -@56=~Alev Kefeni~ -@55=~Alev Kefeni -(OluÅŸturma) -Seviye: 5 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/2 seviye (özel) -Büyü Yapma Süresi: 5 -Etki Alanı: 4 metre yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü bir yaratığın, ÅŸayet büyüye karşı kurtarışta baÅŸarılı olamazsa alev almasına sebep olur. Yaratık her rauntta yanarak 2z6 puanlık hasar alır ve yanan hedeften püsküren alev damlaları, hedefe 4 metre uzaklıkta ya da daha yakın duran yaratıkların alevlerden 1z4 puan hasar almasına neden olur. Ayrıca kurbanın alevlerinin isabet ettiÄŸi herkes, kendileri de kefen büyüsüne tutulmamak için büyüye karşı kurtarış gerçekleÅŸtirmelidir. Ä°cracı ile hedef artık aynı alanda deÄŸilse alev kefeni yok olur. Bu büyü özellikle trol ve buz semenderleri sürülerini dağıtmak için birebirdir.~ -@54=~Alev Kefeni~ -@53=~~ -@52=~Kezzap Küresi~ -@51=~Kezzap Küresi (Çağırma) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Özel -Büyü Yapma Süresi: 4 -Etki Alanı: Özel -Kurtarış Zarı: Özel -Bu büyü, icracının menzil içindeki herhangi bir hedefe çarpması için yönlendirebileceÄŸi, zümrüt yeÅŸili parlayan bir küre meydana getirir. Hedefine ulaÅŸtığında küre patlar ve kurbanı kuvvetli bir asitle sırılsıklam eder. Kurban icracının seviyesi başına 1z4 puan asit hasarı alır, alabileceÄŸi maksimum hasar 12z4 puandır. Ä°lk hasardan sonra kurban daha fazla hasardan sakınabilmek için kurtarış zarı atmak zorundadır. BaÅŸarısız olursa kurban ilerleyen rauntlarda asit hasarı almaya devam eder; her rauntta katlanacağı hasar iki zar azalır. ÖrneÄŸin 8. seviye bir büyücü bu büyüyle birinci rauntta 8z4, ikinci rauntta 6z4, üçüncü rauntta 4z4, dördüncü rauntta 2z4 puan hasar verir ve büyü beÅŸinci rauntta sona erer. Her rauntta kurbanın daha fazla hasardan sakınmak için büyüye karşı kurtarış zarı atma hakkı vardır. Kezzap küresi aynı zamanda ana hedefinin 1,5 metre yarıçaplık çevresine de asit sıçratır. Sıçrama yarıçapı içinde yer alan her yaratık ÅŸekil deÄŸiÅŸtirmeye/felçe karşı kurtarış yapmalıdır, aksi takdirde icracının sahip olduÄŸu her beÅŸ seviye başına 1z6 puan hasar veren bir sıçrama vuruÅŸunun kurbanı olur. Sıçrama vuruÅŸları devamlı hasara sebep olmaz.~ -@50=~Kezzap Küresi~ -@49=~Sağırlık~ -@48=~Nara~ -@47=~Nara (OluÅŸturma) -Seviye: 4 -Menzil: Ä°cracı -Etki Süresi: Anında -Büyü Yapma Süresi: 1 -Etki Alanı: 9 metre uzunluk, 3 metre çap -Kurtarış Zarı: 1/2 -Nara büyücüye muazzam gırtlak güçleri bahÅŸeder, aÄŸzından kulak zarlarını patlatan bir haykırış çıkartmasını saÄŸlar. Bu haykırış 9 metre uzunluÄŸa ve 3 metre çapa ulaÅŸan bir etki alanına sahiptir. Bu alan içindeki her yaratık 2z6 raunt boyunca sağır olur ve 4z6 puan hasar alır. BaÅŸarılı bir büyüye karşı kurtarış yaratığın sağırlıktan etkilenmemesini saÄŸlar ve alacağı hasarı yarıya indirir.~ -@46=~Nara~ -@45=~Mordenkainen'in Güç Misilleri~ -@44=~Mordenkainen'in Güç Misilleri -(OluÅŸturma) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 4 -Etki Alanı: Özel -Kurtarış Zarı: Özel -Bu büyü Büyü Misili büyüsüne çok benzer bir ÅŸekilde, hızla icracının elinden çıkarak ÅŸaÅŸmaz bir biçimde hedefe isabet eden, parlak bir büyülü enerji küresi yaratır. Büyücü 7. seviyede bir misil ve 7. seviyeden sonra her üç seviyede ilave bir misil yaratır - baÅŸka bir deyiÅŸle 10. seviyede iki misil, 13.'de üç, 16.'da dört olmak üzere devam eder; maksimum 25. seviyede yedi misil yaratır. Her bir misil hedefe 2z4 puan hasar verir, sonra da 1,5 metre yarıçapında sarsıcı bir patlamayla infilak eder; bu patlama icracının seviyesi başına 1 puan hasar verir - örneÄŸin 12. seviye bir büyücü her biri 2z4+12 puan hasar ile çarpan iki güç misili meydana getirebilir. Hasar alan yaratıklar sonraki patlamanın hasarından kurtulabilmek için büyüye karşı kurtarış yapabilirler; ancak misilin çarpışında kurtarış zarına izin yoktur. 1. seviye büyücü büyüsü Kalkan güç misillerini zararsızca emebilir, buna ardından gelen sarsıcı patlama hasarı da dahildir.~ -@43=~Mordenkainen'in Güç Misilleri~ -@42=~Hopelessness~ -@41=~Sersemledi~ -@40=~Emotion: Hopelessness~ -@39=~Duygu: Umutsuzluk -(Efsunlama) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 tur -Büyü Yapma Süresi: 4 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü etki alanında umutsuzluk duygusu yaratır. Büyünün etkisine giren her yaratık büyünün etki süresi boyunca hiçbir ÅŸey yapmadan olduÄŸu yerde dikilir.~ -@38=~Duygu: Umutsuzluk~ -@37=~Panik~ -@36=~Duygu: Korku~ -@35=~Duygu: Korku -(Efsunlama) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 5 raunt -Büyü Yapma Süresi: 4 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü etki alanında korku duygusu yaratır. Büyünün etkisine giren her yaratık 5 raunt boyunca kaçar.~ -@34=~Duygu: Korku~ -@33=~Duygu: Umut~ -@32=~Duygu: Umut -(Efsunlama) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 5 tur -Büyü Yapma Süresi: 4 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü etki alanında umut duygusu yaratır. Büyünün etkisine giren her yaratığın morali artar ve kurtarış, saldırı ve hasar zarlarına +2 kazanırlar.~ -@31=~Duygu: Umut~ -@30=~Duygu: Cesaret~ -@29=~Duygu: Cesaret -(Efsunlama) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 5 tur -Büyü Yapma Süresi: 4 -Etki Alanı: 3 mt yarıçapında -Kurtarış Zarı: Etkisiz -Bu büyü etki alanında cesaret duygusu yaratır. Büyünün etkisine giren her yaratık geçici süreyle vuruÅŸuna +1, hasar zarlarına +3 ve can puanına +5 (büyü yaratığı maksimum can puanının üzerine çıkartabilir) kazanır. Bu büyü icra anında etki alanı içindeki tüm korku etkilerini ortadan kaldırır.~ -@28=~Duygu: Cesaret~ -@27=~Başıbozukluk~ -@26=~Beltyn'in Yanan Kanı~ -@25=~Beltyn'in Yanan Kanı -(Ölüm Ä°lmi) -Seviye: 4 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: 1 raunt/2 seviye -Büyü Yapma Süresi: 4 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Etkisiz -Bu büyü hedefin kanını aleve çevirir; her rauntta 3-12 can puanı hasar vererek kurbanı acıyla cinnete sürükler. Hedef her rauntta büyüye karşı kurtarış zarı atar; baÅŸarılı olursa hasar almaz ve cinnet durumu geçer. Bu büyü kana sahip olmayan (elementaller gibi) hortlak ya da düzlemdışı yaratıklara karşı iÅŸlemez. Åžayet yaratık ateÅŸe karşı dirençliyse bu direnç, büyüden alınan hasarı azaltır ya da sıfırlar.~ -@24=~Beltyn'in Yanan Kanı~ -@23=~Parçalayan Kargı~ -@22=~Parçalayan Kargı (OluÅŸturma) -Seviye: 3 -Menzil: 18 metre -Etki Süresi: Anında -Büyü Yapma Süresi: 3 -Etki Alanı: Özel -Kurtarış Zarı: 1/2 -Bu büyü, icracıdan baÅŸlayarak 18 metre uzaktaki bir noktaya doÄŸru uzanan bir güç mızrağı yaratır. Mızrağın yoluna çıkan her yaratık 5z4 puan ezme hasarı ile icracının seviyesinin +2 ile çarpımı (maksimum +30) kadar hasar alır. Kurbanlar yarı hasar için büyüye karşı kurtarış yapabilirler.~ -@21=~Parçalayan Kargı~ -@20=~SersemlemiÅŸ~ -@19=~Buzkargısı~ -@18=~Buzkargısı (OluÅŸturma) -Seviye: 3 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 3 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Özel -Bu büyü icracının seçtiÄŸi bir hedefe büyülü bir buz kargısı fırlatır. Kargı hedefi kendiliÄŸinden vurur, 5-30 puan hasar verir ve hedefi büyüye karşı kurtarış yapmaya zorlar; aksi takdirde hedef 1-4 raunt sersemler.~ -@17=~Buzkargısı~ -@16=~Çeviklik DeÄŸiÅŸikliÄŸi~ -@15=~Kedi Zarafeti~ -@14=~Kedi Zarafeti (BaÅŸkalaşım) -Seviye: 2 -Menzil: Temas -Etki Süresi: 1 saat/seviye -Büyü Yapma Süresi: 2 -Etki Alanı: 1 yaratık -Kurtarış Zarı: Yok -Bu büyü hedefin çevikliÄŸini büyülü ÅŸekilde artırır. Artış miktarı hedefin sınıfına baÄŸlıdır: Hırsızlar 1z8 puan, Dövüşçü ve Büyücüler 1z6 puan, Runbanlar 1z4 puan kazanır. Kedi Zarafeti hedefin çevikliÄŸini 20'nin üzerine çıkaramaz.~ -@13=~Kedi Zarafeti~ -@12=~Dekaçomak~ -@11=~Dekaçomak~ -@10=~Dekaçomak~ -@9=~Dekaçomak -(OluÅŸturma) -Seviye: 2 -Menzil: Ä°cracı -Etki Süresi: 1 raunt/seviye -Büyü Yapma Süresi: 2 -Etki Alanı: Büyü Ä°cracısı -Kurtarış Zarı: Yok -Bu büyü icracının elinde bir güç asası oluÅŸturur. Asa büyülü bir silah gibi davranır; her vuruÅŸta 1-6 can puanı hasar verir ve normal silahlara bağışıklığı olan yaratıklara vurabilir. Ancak bu bir asa olduÄŸu için icracının asa silahlarına dair bir yetkinliÄŸi yoksa icracı Dekaçomak'ı kullandığında ceza puanı alır. Asanın aynı zamanda ilk vuruÅŸta hedefin 1-2 can puanını emme gücü de bulunmaktadır. Bu can puanları icracıya eklenir, fakat bu puanlar sadece icracının aldığı hasarı iyileÅŸtirebilir; can puanını normal maksimumunun üzerine çıkarmaz.~ -@8=~Dekaçomak~ -@7=~Snilloc'un Kartopu YaÄŸmuru -(OluÅŸturma) -Seviye: 2 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 2 -Etki Alanı: 10 metre yarıçapında -Kurtarış Zarı: 1/2 hasar -Bu büyü menzil içindeki bir noktadan kartopu saÄŸanağının çıkmasına sebep olur. Bu kartopları etki alanı içindeki her ÅŸeye isabet eder ve seviye başına 1z3 soÄŸuk hasarı verir. Bu hasar maksimum 8. seviyede 8z3 puana çıkabilir. AteÅŸ kullanan ya da ateÅŸten yapıya sahip yaratıklara, seviye başına 1z6 soÄŸuk hasarı verir.~ -@6=~~ -@5=~Snilloc'un Kartopu YaÄŸmuru~ -@4=~Snilloc'un Kartopu YaÄŸmuru -(OluÅŸturma) -Seviye: 2 -Menzil: Ä°cracının Görüş Alanı -Etki Süresi: Anında -Büyü Yapma Süresi: 2 -Etki Alanı: 10 metre yarıçapında -Kurtarış Zarı: 1/2 hasar -Bu büyü menzil içindeki bir noktadan kartopu saÄŸanağının çıkmasına sebep olur. Bu kartopları etki alanı içindeki her ÅŸeye isabet eder ve seviye başına 1z3 soÄŸuk hasarı verir. Bu hasar maksimum 8. seviyede 8z3 puana çıkabilir. AteÅŸ kullanan ya da ateÅŸten yapıya sahip yaratıklara, seviye başına 1z6 soÄŸuk hasarı verir.~ -@3=~~ -@2=~Snilloc'un Kartopu YaÄŸmuru~ -@1=~Tomar~ diff --git a/iwdification/dw/data/BG2EE_SPELL.IDS b/iwdification/dw/data/BG2EE_SPELL.IDS deleted file mode 100644 index 06da1a1..0000000 --- a/iwdification/dw/data/BG2EE_SPELL.IDS +++ /dev/null @@ -1,1076 +0,0 @@ -IDS V1.0 // the unmodified BG2EE spell.ids -1101 CLERIC_BLESS -1102 CLERIC_COMMAND -1103 CLERIC_CURE_LIGHT_WOUNDS -1104 CLERIC_DETECT_EVIL -1105 CLERIC_ENTANGLE -1106 CLERIC_MAGIC_STONE -1107 CLERIC_PROTECT_FROM_EVIL -1108 CLERIC_REMOVE_FEAR -1109 CLERIC_SANCTUARY -1110 CLERIC_SHILLELAGH -1111 CLERIC_ARMOR_OF_FAITH -1112 CLERIC_CIRCLE_OF_PROTECTION -1113 CLERIC_DOOM -1114 CLERIC_ANIMAL_FRIENDSHIP -1115 CLERIC_ENDURE_HEAT_COLD -1150 CLERIC_SPIRIT_WARD -1201 CLERIC_AID -1202 CLERIC_BARKSKIN -1203 CLERIC_CHANT -1204 CLERIC_CHARM_PERSON -1205 CLERIC_FIND_TRAPS -1206 CLERIC_FLAME_BLADE -1207 CLERIC_GOOD_BERRIES -1208 CLERIC_HOLD_PERSON -1209 CLERIC_KNOW_ALIGNMENT -1210 CLERIC_RESIST_FIRE -1211 CLERIC_SILENCE_15_FOOT -1212 CLERIC_SLOW_POISON -1213 CLERIC_SPIRITUAL_HAMMER -1214 CLERIC_DRAW_UPON_HOLY_MIGHT -1215 CLERIC_RESIST_COLD -1250 CLERIC_WRITHING_FOG -1301 CLERIC_ANIMATE_DEAD -1302 CLERIC_CALL_LIGHTNING -1303 CLERIC_DISPEL_MAGIC -1304 CLERIC_GLYPH_OF_WARDING -1305 CLERIC_HOLD_ANIMAL -1306 CLERIC_PROTECTION_FROM_FIRE -1307 CLERIC_REMOVE_CURSE -1308 CLERIC_REMOVE_PARALYSIS -1309 CLERIC_INVISIBILITY_PURGE -1310 CLERIC_MISCAST_MAGIC -1311 CLERIC_RIGID_THINKING -1312 CLERIC_STRENGTH_OF_ONE -1313 CLERIC_HOLY_SMITE -1314 CLERIC_UNHOLY_BLIGHT -1315 CLERIC_CURE_MEDIUM_WOUNDS -1316 CLERIC_CURE_BLIND_DEAF -1317 CLERIC_CURE_DISEASE -1318 CLERIC_ZONE_OF_SWEET_AIR -1319 CLERIC_SUMMON_INSECTS -1350 CLERIC_SPIRITUAL_CLARITY -1401 CLERIC_CURE_SERIOUS_WOUNDS -1402 CLERIC_ANIMAL_SUMMONING_1 -1403 CLERIC_FREE_ACTION -1404 CLERIC_NEUTRALIZE_POISON -1405 CLERIC_MENTAL_DOMINATION -1406 CLERIC_DEFENSIVE_HARMONY -1407 CLERIC_PROTECTION_FROM_LIGHTNING -1408 CLERIC_PROTECTION_FROM_EVIL_10_FOOT -1409 CLERIC_DEATH_WARD -1410 CLERIC_CALL_WOODLAND_BEINGS -1411 CLERIC_POISON -1412 CLERIC_HOLY_POWER -1413 CLERIC_NEGATIVE_PLANE_PROTECTION -1414 CLERIC_CAUSE_SERIOUS_WOUNDS -1415 CLERIC_FAR_SIGHT -1416 CLERIC_CLOAK_OF_FEAR -1417 CLERIC_LESSER_RESTORATION -1450 CLERIC_SPIRIT_FIRE -1501 CLERIC_ANIMAL_SUMMONING_2 -1502 CLERIC_CURE_CRITICAL_WOUNDS -1503 CLERIC_FLAME_STRIKE -1504 CLERIC_RAISE_DEAD -1505 CLERIC_TRUE_SIGHT -1506 CLERIC_IRONSKIN -1507 CLERIC_CHAMPIONS_STRENGTH -1508 CLERIC_CHAOTIC_COMMANDS -1509 CLERIC_MAGIC_RESISTANCE -1510 CLERIC_CAUSE_CRITICAL_WOUNDS -1511 CLERIC_SLAY_LIVING -1512 CLERIC_GREATER_COMMAND -1513 CLERIC_RIGHTEOUS_MAGIC -1514 CLERIC_MASS_CURE -1515 CLERIC_REPULSE_UNDEAD -1516 CLERIC_PIXIE_DUST -1517 CLERIC_INSECT_PLAGUE -1550 CLERIC_RECALL_SPIRIT -1599 ENEMY_CLERIC_SLAY_LIVING -1601 CLERIC_AERIAL_SERVANT -1602 CLERIC_ANIMAL_SUMMONING_3 -1603 CLERIC_BLADE_BARRIER -1604 CLERIC_CONJURE_ANIMALS -1605 CLERIC_CONJURE_FIRE_ELEMENTAL -1606 CLERIC_FIRE_SEEDS -1607 CLERIC_HEAL -1608 CLERIC_HARM -1609 CLERIC_FALSE_DAWN -1610 CLERIC_DOLOROUS_DECAY -1611 CLERIC_WONDROUS_RECALL -1612 CLERIC_BOLT_OF_GLORY -1613 CLERIC_PHYSICAL_MIRROR -1614 CLERIC_SOL_SEARING_ORB -1650 CLERIC_SPIRITUAL_LOCK -1698 NPC_BLADE_BARRIER -1699 ENEMY_CLERIC_HARM -1701 CLERIC_SHIELD_OF_THE_ARCHONS -1702 CLERIC_CONJURE_EARTH_ELEMENTAL -1703 CLERIC_GATE -1704 CLERIC_NATURE_BEAUTY -1705 CLERIC_FIRE_STORM -1706 CLERIC_SYMBOL_FEAR -1707 CLERIC_SUNRAY -1708 CLERIC_FINGER_OF_DEATH -1709 CLERIC_CONFUSION -1710 CLERIC_HOLY_WORD -1711 CLERIC_REGENERATE -1712 CLERIC_RESURRECTION -1713 CLERIC_RESTORATION -1714 CLERIC_ENERGY_DRAIN -1715 CLERIC_UNHOLY_WORD -1716 CLERIC_SPACE_WARP -1717 CLERIC_CREEPING_DOOM -1718 CLERIC_SYMBOL_STUN -1719 CLERIC_SYMBOL_DEATH -1720 CLERIC_EARTHQUAKE -1721 CLERIC_ENERGY_BLADES -1722 CLERIC_STORM_OF_VENGEANCE -1723 CLERIC_ELEMENTAL_SWARM -1724 CLERIC_GREATER_ELEMENTAL_SWARM -1725 CLERIC_GLOBE_OF_BLADES -1726 CLERIC_SUMMON_DEVA -1727 CLERIC_SUMMON_FALLEN_DEVA -1728 CLERIC_IMPLOSION -1729 CLERIC_MASS_RAISE_DEAD -1730 CLERIC_AURA_OF_FLAMING_DEATH -1731 CLERIC_ELEMENTAL_TRANSFORMATION_FIRE -1732 CLERIC_ELEMENTAL_TRANSFORMATION_EARTH -1750 CLERIC_ETHER_GATE -1751 CLERIC_ETHEREAL_RETRIBUTION -1982 TRAP_DIRE_CHARM -1983 TRAP_CONFUSION -1984 TRAP_CHROMATIC_ORB -1985 TRAP_FLAMESTRIKE -1986 TRAP_MISCAST_MAGIC -1987 TRAP_CALL_LIGHTNING -1988 TRAP_SILENCE -1989 TRAP_HOLD_PERSON -1999 SHOAL_REVIVE -2001 TRAP_FIREBALL -2002 TRAP_LIGHTNING_BOLT -2003 TRAP_MAGIC_MISSILE -2004 TRAP_STINKING_CLOUD -2005 TRAP_ARROW -2006 TRAP_ARROW_SLAYING -2007 TRAP_ARROW_ACID -2008 TRAP_ARROW_BITING -2009 TRAP_ARROW_DETONATION -2010 TRAP_ARROW_DISPELLING -2011 TRAP_ARROW_FIRE -2012 TRAP_ARROW_ICE -2013 TRAP_ARROW_PIERCING -2014 TRAP_MONSTER_SUMMONING -2015 TRAP_FROST -2016 TRAP_CLOUDKILL -2017 TRAP_MINOR_LIGHTNING_BOLT -2020 TRAP_UNDERWATER_BITE -2021 TRAP_HALLWAY_SPIKES -2022 TRAP_MUCK -2023 TRAP_SHADOW_DEATH -2024 TRAP_GUILLOTINE -2025 TRAP_LIGHTNING_ORB1 -2026 TRAP_LIGHTNING_ORB2 -2027 TRAP_LIGHTNING_ORB3 -2050 WIZARD_CHAOS_VISUALS_ONLY -2051 WIZARD_DISPEL_MAGIC_VISUALS_ONLY -2052 WIZARD_POWER_WORD_SILENCE_VISUALS_ONLY -2053 WIZARD_FLESH_TO_STONE_IGNORE_RESISTANCE -2054 WIZARD_FINGER_OF_DEATH_IGNORE_RESISTANCE -2055 WIZARD_DISINTEGRATE_IGNORE_RESISTANCE -2056 WIZARD_DISINTEGRATE2_IGNORE_RESISTANCE -2101 WIZARD_GREASE -2102 WIZARD_ARMOR -2103 WIZARD_BURNING_HANDS -2104 WIZARD_CHARM_PERSON -2105 WIZARD_COLOR_SPRAY -2106 WIZARD_BLINDNESS -2107 WIZARD_FRIENDS -2108 WIZARD_PROTECTION_FROM_PETRIFICATION -2109 WIZARD_HOLD_PORTAL -2110 WIZARD_IDENTIFY -2111 WIZARD_INFRAVISION -2112 WIZARD_MAGIC_MISSILE -2113 WIZARD_PROTECTION_FROM_EVIL -2114 WIZARD_SHIELD -2115 WIZARD_SHOCKING_GRASP -2116 WIZARD_SLEEP -2117 WIZARD_CHILL_TOUCH -2118 WIZARD_CHROMATIC_ORB -2119 WIZARD_LARLOCH_MINOR_DRAIN -2120 WIZARD_REFLECTED_IMAGE -2121 WIZARD_REVEAL_MAGIC -2122 WIZARD_PROTECTION_CIRCLE -2123 WIZARD_FIND_FAMILAR -2124 WIZARD_ALARM -2124 WIZARD_NAHALS_RECKLESS_DWEOMER -2125 WIZARD_SPOOK -2126 WIZARD_EXPEDITIOUS_RETREAT -2201 WIZARD_BLUR -2202 WIZARD_DETECT_EVIL -2203 WIZARD_DETECT_INVISIBILITY -2204 WIZARD_FOG_CLOUD -2205 WIZARD_HORROR -2206 WIZARD_INVISIBILITY -2207 WIZARD_KNOCK -2208 WIZARD_KNOW_ALIGNMENT -2209 WIZARD_LUCK -2210 WIZARD_RESIST_FEAR -2211 WIZARD_MELF_ACID_ARROW -2212 WIZARD_MIRROR_IMAGE -2213 WIZARD_STINKING_CLOUD -2214 WIZARD_STRENGTH -2215 WIZARD_WEB -2216 WIZARD_WIZARD_LOCK -2217 WIZARD_AGANNAZAR_SCORCHER -2218 WIZARD_GHOUL_TOUCH -2219 WIZARD_VOCALIZE -2220 WIZARD_POWER_WORD_SLEEP -2221 WIZARD_RAY_OF_ENFEEBLEMENT -2222 WIZARD_CHAOS_SHIELD -2223 WIZARD_DEAFNESS -2224 WIZARD_GLITTERDUST -2225 WIZARD_SNILLOCS_SNOWBALL_SWARM -2226 WIZARD_DECASTAVE -2227 WIZARD_CATS_GRACE -2298 CONTINGENCY_MIRROR_IMAGE -2301 WIZARD_CLAIRVOYANCE -2302 WIZARD_DISPEL_MAGIC -2302 WIZARD_REMOVE_MAGIC -2303 WIZARD_FLAME_ARROW -2304 WIZARD_FIREBALL -2305 WIZARD_HASTE -2306 WIZARD_HOLD_PERSON -2307 WIZARD_INVISIBILITY_10_FOOT -2308 WIZARD_LIGHTNING_BOLT -2309 WIZARD_MONSTER_SUMMONING_1 -2310 WIZARD_NON_DETECTION -2311 WIZARD_PROTECTION_FROM_NORMAL_MISSILES -2312 WIZARD_SLOW -2313 WIZARD_SKULL_TRAP -2314 WIZARD_VAMPIRIC_TOUCH -2315 WIZARD_WRAITH_FORM -2316 WIZARD_DIRE_CHARM -2317 WIZARD_GHOST_ARMOR -2318 WIZARD_MINOR_SPELL_DEFLECTION -2319 WIZARD_PROTECTION_FROM_FIRE -2320 WIZARD_PROTECTION_FROM_COLD -2321 WIZARD_SPELL_THRUST -2322 WIZARD_DETECT_ILLUSION -2323 WIZARD_ICELANCE -2324 WIZARD_HOLD_UNDEAD -2325 WIZARD_MELF_METEOR -2326 WIZARD_TRUE_DISPEL_MAGIC -2327 WIZARD_LANCE_OF_DISRUPTION -2401 WIZARD_CONFUSION -2402 WIZARD_DIMENSION_DOOR -2403 WIZARD_FIRE_SHIELD_BLUE -2404 WIZARD_ICE_STORM -2405 WIZARD_IMPROVED_INVISIBILITY -2406 WIZARD_MINOR_GLOBE_OF_INVULNERABILITY -2407 WIZARD_MONSTER_SUMMONING_2 -2408 WIZARD_STONE_SKIN -2409 WIZARD_CONTAGION -2410 WIZARD_REMOVE_CURSE -2411 WIZARD_EMOTION_HOPELESSNESS -2412 WIZARD_GREATER_MALISON -2413 WIZARD_OTILUKES_RESILIENT_SPHERE -2414 WIZARD_SPIRIT_ARMOR -2415 WIZARD_POLYMORPH_OTHER -2416 WIZARD_POLYMORPH_SELF -2417 WIZARD_ENCHANTED_WEAPON -2418 WIZARD_FIRE_SHIELD_RED -2419 WIZARD_SECRET_WORD -2420 WIZARD_MINOR_SEQUENCER -2421 WIZARD_TELEPORT_FIELD -2422 WIZARD_BELTYNS_BURNING_BLOOD -2423 WIZARD_SPIDER_SPAWN -2424 WIZARD_FAR_SIGHT -2425 WIZARD_EYE -2426 WIZARD_EMOTION_COURAGE -2427 WIZARD_EMOTION_HOPE -2428 WIZARD_MORDENKAINENS_FORCE_MISSILES -2429 WIZARD_SHOUT -2430 WIZARD_VITRIOLIC_SPHERE -2431 WIZARD_EMOTION_FEAR -2432 WIZARD_SHADOW_MONSTERS -2490 WIZARD_POLYMORPH_NATURAL_FORM -2491 DRUID_SHAPESHIFT_NATURAL_FORM -2493 WIZARD_POLYMORPH_FLIND -2494 WIZARD_POLYMORPH_OGRE -2495 WIZARD_POLYMORPH_SPIDER -2496 WIZARD_POLYMORPH_MUSTARD_JELLY -2497 WIZARD_POLYMORPH_BROWN_BEAR -2498 WIZARD_POLYMORPH_BLACK_BEAR -2499 WIZARD_POLYMORPH_WOLF -2501 WIZARD_ANIMATE_DEAD -2502 WIZARD_CLOUDKILL -2503 WIZARD_CONE_OF_COLD -2504 WIZARD_MONSTER_SUMMONING_3 -2505 WIZARD_SHADOW_DOOR -2506 WIZARD_DOMINATION -2507 WIZARD_HOLD_MONSTER -2508 WIZARD_CHAOS -2509 WIZARD_FEEBLEMIND -2510 WIZARD_SPELL_IMMUNITY -2511 WIZARD_PROTECTION_FROM_NORMAL_WEAPONS -2512 WIZARD_PROTECTION_FROM_ELECTRICITY -2513 WIZARD_BREACH -2514 WIZARD_LOWER_RESISTANCE -2515 WIZARD_ORACLE -2516 WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL -2517 WIZARD_PROTECTION_FROM_ACID -2518 WIZARD_PHANTOM_BLADE -2519 WIZARD_SPELL_SHIELD -2520 WIZARD_CONJURE_LESSER_AIR_ELEMENTAL -2521 WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL -2522 WIZARD_MINOR_SPELL_TURNING -2523 WIZARD_SUN_FIRE -2524 WIZARD_SHROUD_OF_FLAME -2525 WIZARD_SUMMON_SHADOW -2526 WIZARD_CONJURE_LESSER_WATER_ELEMENTAL -2527 WIZARD_DEMI_SHADOW_MONSTERS -2590 WIZARD_SPELL_IMMUNITY_ABJURATION -2591 WIZARD_SPELL_IMMUNITY_CONJURATION -2592 WIZARD_SPELL_IMMUNITY_DIVINATION -2593 WIZARD_SPELL_IMMUNITY_ENCHANTMENT -2594 WIZARD_SPELL_IMMUNITY_ILLUSIONIST -2595 WIZARD_SPELL_IMMUNITY_INVOCATION -2596 WIZARD_SPELL_IMMUNITY_NECROMANCY -2597 WIZARD_SPELL_IMMUNITY_ALTERATION -2601 WIZARD_INVISIBLE_STALKER -2602 WIZARD_GLOBE_OF_INVULNERABILITY -2603 WIZARD_TENSERS_TRANSFORMATION -2604 WIZARD_FLESH_TO_STONE -2605 WIZARD_DEATH_SPELL -2606 WIZARD_PROTECTION_FROM_MAGIC_ENERGY -2607 WIZARD_MISLEAD -2608 WIZARD_PIERCE_MAGIC -2609 WIZARD_TRUE_SIGHT -2610 WIZARD_MONSTER_SUMMONING_4 -2611 WIZARD_PROTECTION_FROM_MAGIC_WEAPONS -2612 WIZARD_POWER_WORD_SILENCE -2613 WIZARD_IMPROVED_HASTE -2614 WIZARD_DEATH_FOG -2615 WIZARD_CHAIN_LIGHTNING -2616 WIZARD_DISINTEGRATE -2617 WIZARD_CONTINGENCY -2618 WIZARD_SPELL_DEFLECTION -2619 WIZARD_WYVERN_CALL -2620 WIZARD_CONJURE_FIRE_ELEMENTAL -2621 WIZARD_CONJURE_AIR_ELEMENTAL -2622 WIZARD_CONJURE_EARTH_ELEMENTAL -2623 WIZARD_CARRION -2624 WIZARD_SUMMON_NISHRUU -2625 WIZARD_STONE_TO_FLESH -2626 WIZARD_OTILUKES_FREEZING_SPHERE -2627 WIZARD_DARTS_OF_BONE -2628 WIZARD_SOUL_EATER -2629 WIZARD_TROLLISH_FORTITUDE -2630 WIZARD_ANTIMAGIC_SHELL -2631 WIZARD_LICH_TOUCH -2632 WIZARD_SHADES -2701 WIZARD_SPELL_TURNING -2702 WIZARD_PROTECTION_FROM_THE_ELEMENTS -2703 WIZARD_PROJECT_IMAGE -2704 WIZARD_RUBY_RAY_OF_REVERSAL -2705 WIZARD_KHELBENS_WARDING_WHIP -2705 WIZARD_WARDING_WHIP -2706 WIZARD_ACID_STORM -2707 WIZARD_CACOFIEND -2708 WIZARD_MANTLE -2709 WIZARD_TATTOOS_OF_POWER -2710 WIZARD_SPELL_SEQUENCER -2711 WIZARD_SPHERE_OF_CHAOS -2712 WIZARD_DELAYED_BLAST_FIREBALL -2713 WIZARD_FINGER_OF_DEATH -2714 WIZARD_PRISMATIC_SPRAY -2715 WIZARD_POWER_WORD_STUN -2716 WIZARD_MORDENKAINENS_SWORD -2717 WIZARD_SUMMON_EFREET -2718 WIZARD_SUMMON_DJINNI -2719 WIZARD_SUMMON_HAKEASHAR -2720 WIZARD_CONTROL_UNDEAD -2721 WIZARD_MASS_INVISIBILITY -2722 WIZARD_LIMITED_WISH -2723 WIZARD_IMPROVED_CHAOS_SHIELD -2724 WIZARD_SUFFOCATE -2725 WIZARD_MONSTER_SUMMONING_5 -2726 WIZARD_MORDENKAINENS_SWORD_IWD -2727 WIZARD_MALAVONS_RAGE -2728 WIZARD_SEVEN_EYES -2801 WIZARD_DELETED -2802 WIZARD_MIND_BLANK -2803 WIZARD_PROTECTION_FROM_ENERGY -2804 WIZARD_SIMULACRUM -2805 WIZARD_PIERCE_SHIELD -2806 WIZARD_GREAT_SHOUT -2807 WIZARD_SUMMON_FIEND -2808 WIZARD_IMPROVED_MANTLE -2809 WIZARD_SPELL_TRIGGER -2810 WIZARD_INCENDIARY_CLOUD -2811 WIZARD_SYMBOL_FEAR -2812 WIZARD_ABI_DALZIMS_HORRID_WILTING -2813 WIZARD_MAZE -2814 WIZARD_OTTOS_IRRESISTIBLE_DANCE -2815 WIZARD_POWER_WORD_BLIND -2816 WIZARD_SYMBOL_STUN -2817 WIZARD_SYMBOL_DEATH -2818 WIZARD_BIGBYS_CLENCHED_FIST -2819 WIZARD_IRON_BODY -2820 WIZARD_MONSTER_SUMMONING_6 -2888 FORCE_DAMAGE_1 -2897 WIZARD_NPC_SYMBOL_DEATH -2898 WIZARD_NPC_SYMBOL_STUN -2899 WIZARD_NPC_SYMBOL_FEAR -2901 WIZARD_MONSTER_SUMMONING_7 -2902 WIZARD_SPELL_TRAP -2903 WIZARD_SPELL_STRIKE -2905 WIZARD_GATE -2907 WIZARD_ABSOLUTE_IMMUNITY -2908 WIZARD_CHAIN_CONTINGENCY -2909 WIZARD_TIME_STOP -2910 WIZARD_IMPRISONMENT -2911 WIZARD_METEOR_SWARM -2912 WIZARD_POWER_WORD_KILL -2913 WIZARD_WAIL_OF_THE_BANSHEE -2914 WIZARD_ENERGY_DRAIN -2915 WIZARD_BLACK_BLADE_OF_DISASTER -2916 WIZARD_SHAPECHANGE -2917 WIZARD_FREEDOM -2918 WIZARD_BIGBYS_CRUSHING_HAND -2919 WIZARD_WISH -2920 WIZARD_ENERGY_BLADES -2921 WIZARD_IMPROVED_ALACRITY -2921 WIZARD_IMPROVED_ALUCRITY -2922 WIZARD_DRAGONS_BREATH -2923 WIZARD_SUMMON_PLANATAR_GOOD -2924 BERESH_CHANGE -2924 WIZARD_SUMMON_PLANATAR_EVIL -2925 KAISHAS_CHANGE -2925 WIZARD_COMET -2926 QUICK_TELEPORT -2927 SUCCUBUS_ETHEREAL -2928 SUCCUBUS_ENERGY_DRAIN -2929 SUCCUBUS_CHARM_FEMALE -2930 SUCCUBUS_CHARM_MALE -2931 SUCCUBUS_TELEPORT -2932 TANARI_CHANGE -2933 DURLAG_SWORD -2934 CRUSHING_TRAP -2935 SUMMON_SKELETON_WARRIOR3 -2936 SUMMON_SKELETON_WARRIOR2 -2937 SUMMON_SKELETON_WARRIOR -2939 CHARM_HERO -2940 FIREDRAKE_DAMAGE -2941 LOVEM_CHANGE -2942 QUEEN_CHANGE -2943 SIRINE_DIRE_CHARM -2944 DAESEWOLF_CHANGE -2945 LOUPGAR_CHANGE -2946 PLAYER_WEREWOLF_CHANGE -2947 GREATER_WOLFWERE_CHANGE -2948 WEREWOLF_CHANGE -2949 WOLFWERE_CHANGE -2950 FAST_SKULLTRAP -2951 JELLY_SPLIT -2952 DRADEEL_FLAMEBLADE -2953 DRADEEL_BLUE_FIREBALL -2954 DRADEEL_MINOR_GLOBE -2955 PAIN -2956 FEAR -2957 RED_FIREBALL -2958 POWERWORD_BLIND -2959 POWERWORD_STUN -2960 POWERWORD_KILL -2961 DOPPLEGANGER_CHANGE4 -2962 DOPPLEGANGER_CHANGE5 -2963 DOPPLEGANGER_CHANGE6 -2964 DOPPLEGANGER_CHANGE7 -2965 DOPPLEGANGER_CHANGE8 -2979 SAREVOK_STRIKE -2980 FIREBALL_DEATH -2981 MUSHROOM_FIRE -2982 DAERRAGH -2983 RISE_FROM_ASH -2984 RED_SWIRL -2985 RED_HOLY_MIGHT -2986 SPIDER_SUMMON -2987 DOPPLEGANGER_CHANGE_DEFAULT_LESSER -2988 DOPPLEGANGER_CHANGE_DEFAULT -2989 EFFECT_ONLY -2990 DOPPLEGANGER_CHANGE3 -2991 DOPPLEGANGER_RASHAD -2992 DOPPLEGANGER_CHANGE2 -2993 DOPPLEGANGER_CHANGE -2994 PHASE_SPIDER_TELEPORT -2995 DRYAD_TELEPORT -2996 CHARM_KORAX -2997 GORION_LIGHTNING -2998 GORION_MAGIC_MISSILE -2999 DIETY_KILL -3101 INNATE_CURE_LIGHT_WOUNDS -3102 INNATE_SLOW_POISON -3103 INNATE_DRAW_UPON_HOLY_MIGHT -3104 INNATE_LARLOCHS_MINOR_DRAIN -3105 INNATE_HORROR -3106 INNATE_VAMPIRIC_TOUCH -3117 MINSC_BERSERK -3122 AVENGER_SHAPESHIFT_NATURAL_FORM -3123 DRUID_HUMAN_FORM -3123 DRUID_SHAPESHIFT_FROM_BLACKBEAR -3124 SHAPESHIFTER_SHAPESHIFT_NATURAL_FORM -3128 DMWW_TRAP_SET -3150 SHAPESHIFT_NATURAL_FORM_1 -3151 SHAPESHIFT_NATURAL_FORM_2 -3152 SHAPECHANGE_MIND_FLAYER -3153 SHAPECHANGE_IRON_GOLEM -3154 SHAPECHANGE_GIANT_TROLL -3155 SHAPECHANGE_GREATER_WOLFWERE -3156 SHAPECHANGE_FIRE_ELEMENTAL -3157 SHAPECHANGE_EARTH_ELEMENTAL -3160 SALAMANDER_BREATHE_FIREBALL -3531 ABAZIGAL_SHOCKWAVE -3532 DRAGON_LOWER_ELECTRICAL -3533 SENDAI_CHANGE -3534 SUMMON_DEVIL_SHADE -3535 GREEN_DRAGON_BREATH -3536 LICH_FEAR -3537 TROLL_FIRE_CHANGE -3538 MAJOR_POLYMORPH -3539 FLAMING_SKULL_BOLT -3540 RABBIT_POWER -3541 SAR_DIVINATION -3542 PSIONIC_DISINTEGRATE -3543 PSIONIC_INFLICT_PAIN -3544 PSIONIC_SUPERIOR_INVISIBILITY -3545 PSIONIC_LIFE_DRAIN -3546 PSIONIC_INERTIAL_BARRIER -3547 PSIONIC_PROJECT_FORCE -3548 DEMOGORGON_GATE -3549 SUMMON_INFERNAL_HOST -3550 HIVE_MOTHER_ANTIMAGIC_RAY -3551 HIVE_MOTHER_CAUSE_SERIOUS_WOUNDS -3552 HIVE_MOTHER_DISINTEGRATE -3553 NALMISSRA_CHARM -3554 GAIN_ONE_CHA_PERMANENT -3555 GAIN_ONE_WIS_PERMANENT -3556 GAIN_ONE_INT_PERMANENT -3557 GAIN_ONE_DEX_PERMANENT -3558 ERINYES_CHARM -3559 BURNING_MAN_KEENING -3560 BURNING_MAN_CINDER_SHOWER -3561 FIRE_GIANT_LAVA -3562 ICE_GOLEM_STEAM -3563 HOLY_PILLAR_VISUAL -3564 SKULL_EXPLODE -3565 GAROCK_TELEPORT -3566 MIMIC_WEB -3567 MIMIC_FIRE -3568 MIMIC_POISON -3569 SUMMON_ICE_SALAMANDER -3570 SUMMON_FIRE_ELEMENTAL -3571 SUCCUBUS_KISS -3572 CUTSCENE_HASTE -3573 IMOEN_BHAAL2 -3574 IMOEN_BHAAL1 -3575 VORTEX_WEB -3576 DENSE_PUDDING_SPLIT -3577 GAIN_ONE_THACO -3578 GAIN_ONE_AC -3579 POWER_AMP -3580 IMPRISONMENT_NO_SAVE -3581 RESTORATION_IGNORE_RESIST -3582 CONFUSION_NO_SAVE -3583 POISON_NO_SAVE -3584 GAIN_HASTE_TEMPORARY -3585 GAIN_MAGIC_RESIST_PERMANENT -3586 LOSE_FIFTEEN_LEVELS -3587 LOSE_FIVE_LEVELS -3588 LOSE_ONE_DEX_PERMANENT -3589 LOSE_ONE_INT_PERMANENT -3590 GAIN_ONE_CON_PERMANENT -3591 GAIN_ONE_STR_PERMANENT -3592 HELM_RITUAL_SCROLL -3593 ODREN_RITUAL_SCROLL -3594 DEMOGORGON_CHANGE -3595 YELLOW_DRAGON_BREATH -3596 BROWN_DRAGON_BREATH -3597 BLUE_DRAGON_BREATH -3598 SAREVOK_FLASHY1 -3599 FIRE_HEALING -3600 SAREVOK_SOULSTEAL -3601 SPECIAL_SWEET_AIR -3602 CHROMATIC_DEMON_RED -3603 CHROMATIC_DEMON_WHITE -3604 CHROMATIC_DEMON_GREEN -3605 CHROMATIC_DEMON_YELLOW -3606 DECK_SUN -3607 DECK_JESTER -3608 DECK_VIZIER -3609 DECK_GEM -3610 DECK_FATES -3611 DECK_COMET -3612 DECK_FOOL -3613 DECK_TALONS -3614 DECK_ROGUE -3615 DECK_KNIGHT -3616 DECK_FLAMES -3617 DECK_EURYALE -3618 DECK_MOON -3619 DECK_THRONE -3620 DECK_STAR -3621 DECK_KEY -3622 DECK_SKULL -3623 DECK_MAGICIAN -3624 DECK_VOID -3625 DECK_RUIN -3626 DECK_DONJON -3627 FROZEN_DEATH -3628 SLOW_FREEZE -3629 DECK_WHEEL -3630 DECK_STRENGTH -3631 DECK_CONSTRUCT -3632 DECK_EMPEROR -3633 DECK_EMPRESS -3634 DECK_HIGH_PRIESTESS -3635 DECK_STRIFE -3636 DECK_DEFIANCE -3637 DECK_GUILE -3638 DECK_TRIUMPH -3639 DECK_PLAGUE -3640 DECK_XP_DRAIN -3641 DECK_VITALITY_DRAIN -3642 POISONOUS_CLOUD -3643 FAN_BLOW -3644 BALOR_FIRE_SHIELD -3645 WILD_MAGIC_AREA -3646 DEAD_MAGIC_AREA -3647 DISPEL_NO_SAVE -3648 HOLD_PERSON_NO_SAVE -3649 ENTER_POCKET_PLANE -3650 DM_SHIELD -3651 DM_SEE_INVISIBLE -3652 DM_MAGIC_PROTECTION -3653 DM_COLD_PROTECTION -3654 DM_FIRE_PROTECTION -3655 DM_IMPROVED_HASTE -3656 VIEKANG_LIGHTNING -3657 DO_SOME_EFFECTS -3658 HELL_BUFFET -3659 TROLL_CHANGE_NITHIRI -3660 POOF_GONE -3661 EDWINA_IN_HELL -3662 EDWIN_CHANGE_BACK -3663 CREATE_YOSHIMO_BLADE -3664 NETHER_SCROLL -3665 BEHOLDER_BLAST_VISUAL2 -3666 ZOMBIE_LEVEL_DRAIN -3667 SLAYER_BACK_TO_HUMAN_NOVIS -3668 REMOVE_NON_PERMANENT_DEATH -3669 APPLY_NON_PERMANENT_DEATH -3670 SEA_TROLL_CHANGE -3671 SWOOSH_GONE -3672 QUICK_INVISIBLE -3673 SPORE_DEATH -3674 MIST_CHAOS -3675 MIST_HORROR -3676 INVOKE_COURAGE -3677 SUMMON_POISON -3678 ANOMEN_TITLE -3679 HEAL_NO_VISUAL -3680 HARPER_DEATH_SONG -3681 BANSHEE_WAIL -3682 DRAGON_LOWER_FIRE -3683 FIGURINE_SPIDER_WEB -3684 KOA_TRUE_SIGHT_NO_VIS -3685 MAGIC_MISSILE_SURE_HIT -3686 PROTECTION_MAGIC_WEAPON_NOEFF -3687 SHADOW_DRAGON_SHADOWS -3688 BLACK_DRAGON_PLANT -3689 BLACK_DRAGON_INSECT -3690 HOLY_LIGHT_FROM_ABOVE -3691 BLACK_DRAGON_BREATH -3692 DRAGON_SILENCE -3693 RED_DRAGON_HIT -3694 DRAGON_STONE_SKIN -3695 DRAGON_WING_BUFFET -3696 MOON_DOG_HOWL -3697 HASTE_SELF -3698 NON_DETECTION_SELF -3699 INVISIBILITY_SELF -3700 TROLL_SETHP1 -3701 DEATHKNIGHT_FIREBALL -3702 FAKE_FLAME_STRIKE -3703 AERIE_DISPEL_MAGIC -3704 NYMPH_CONFUSION -3705 TRAP_PENDULUM -3706 TRAP_VENT -3707 TRAP_DARTS -3708 TRAP_SLIME -3709 TRAP_SPEAR -3710 SPELL_DEFLECTION_NO_VISUAL -3711 FINAL_HEAL -3712 MULTIPLAYER_ANTIMAGIC -3713 ICE_DUST -3714 CELESTIAL_BOLT -3715 TROLL_RAT_SPAWN -3716 SLAYER_IMMUNE_TO_DAMAGE -3717 SLAYER_CHANGE_CUT_SCENE -3718 SLAYER_BACK_TO_HUMAN -3719 CUTSCENE_METEOR_SWARM -3720 CUTSCENE_DAMAGE_1C -3721 CUTSCENE_DAMAGE_1B -3722 GREAT_DRUID_TITLE -3723 DRAGON_RAIN -3724 RAISSA_RESTORE -3725 SKIN_DANCER_RESTORE_2 -3726 CUTSCENE_DAMAGE_1 -3727 NOSAVE_PSIONIC_BLAST -3728 SKIN_DANCER_RESTORE -3729 SKIN_DANCER_SWITCH -3730 SUMMON_FUNGUS -3731 WISH_SPELL_FAILURE -3732 WISH_LOSE_SPELL -3733 WISH_POISON -3734 WISH_HEAL_PARTY -3735 WISH_RABBIT -3736 WISH_GLOBE -3737 WISH_MEMORIZE -3738 WISH_PLANE -3739 TROLL_SPECTRAL_CHANGE -3740 TROLL_SNOW_CHANGE -3741 TROLL_SPIRIT_CHANGE -3742 TROLL_GIANT_CHANGE -3743 TROLL_FRESHWATER_CHANGE -3744 TROLL_DESERT_CHANGE -3745 AERIE_PORTRAIT -3746 RESTORE_FULL_HEALTH -3747 HELL_SELFISH_EVIL -3748 HELL_SELFISH_GOOD -3749 HELL_WRATH_EVIL -3750 HELL_WRATH_GOOD -3751 HELL_PRIDE_EVIL -3752 HELL_PRIDE_GOOD -3753 HELL_FEAR_EVIL -3754 HELL_FEAR_GOOD -3755 HELL_GREED_EVIL -3756 HELL_GREED_GOOD -3757 IRENICUS_WORD_OF_POWER -3758 PLAYER1_WORD_OF_POWER -3759 HELL_GAIN_CHR -3760 HELL_GAIN_CON -3761 HELL_GAIN_DEX -3762 HELL_GAIN_WIS -3763 HELL_GAIN_INT -3764 HELL_GAIN_STR -3765 HELL_LOSE_XP -3766 HELL_LOSE_DEX -3767 HELL_LOSE_HP -3768 HELL_DISPELL -3769 HELL_HOLD -3770 HELL_EXPLODE -3771 HELL_DAMAGE_HALF -3772 HELL_FEAR -3773 EVIL_LAYONHANDS -3774 PSIONIC_MAZE -3775 PSIONIC_MIND_BLAST -3776 MAKE_STATUE -3777 BEHOLDER_BLAST_VISUAL -3778 WILD_MAGIC_ZONE -3779 ANTI_MAGIC_ZONE -3780 FLASHY_DEATH_3 -3781 FLASHY_DEATH_2 -3782 FLASHY_DEATH_1 -3783 SLAYER_ENEMY -3784 SNAKE_GAZE -3785 PERM_CHARM -3786 LICH_IMPRISON -3787 SMALL_DAMAGE_SPELL -3788 DEMILICH_TRAP_SOUL -3789 DEMILICH_DEATH -3790 LONG_VISUAL2 -3791 TROLL_ICE_CHANGE -3792 LONG_VISUAL -3793 FLASHY_DEATH_YEAH -3794 FLASHY_4 -3795 FLASHY_3 -3796 FLASHY_2 -3797 FLASHY_1 -3798 BODHI_BAT_ASYLUM -3799 DACE_FLAME -3800 FLAME_HEAD -3801 NO_FEAR_PARTY -3802 MIND_CRIPPLE -3803 DACE_MIST_FORM_CHANGE -3804 PSIONIC_EMOTION_KILL -3805 THIEF_DETECT_ILLUSION -3806 LICH_REPLACE_SELF -3807 SLAYER_FEAR -3808 DRAIN_PARTY -3809 BODHI_MIST_FORM_CHANGE -3810 GIVE_SLAYER_POWER -3811 VAMPIRE_FORM_CHANGE -3812 DEL_VAMP_FORM_CHANGE -3813 SLAVE_CHUNK -3814 TANOVA_MIST_FORM_CHANGE -3815 DEL_MIST_FORM_CHANGE -3816 VALEN_MIST_FORM_CHANGE -3817 C6BODHI_WEAKNESS -3818 C6VAMPIRE_WEAKNESS -3819 LAVA_BURST -3820 ELVEN_GUARD_WAIL -3821 LONG_RED_MIGHT -3822 SLAYER_START -3823 SLAYER_CHANGE_TWO -3824 DEATH_CURSE -3825 DROW_CHANGE -3826 MAZZY_STRENGTH -3827 MAZZY_LAY -3828 MAZZY_HASTE -3829 JAN_AMMO -3830 UNDER_NORM -3831 UNDER_SQUIRREL -3832 SILVER_DRAGON_BREATH_PARALIZATION -3833 SILVER_DRAGON_BREATH_COLD -3834 BRAIN_PSIONIC_BLAST -3835 ILLUSION_DEATH -3836 JON_ALL_DEAD -3837 JON_WISH -3838 LOSE_ALL -3839 HULK_CONFUSION -3840 BOOK_GOLEM -3841 BOOK_BEHOLD -3842 BOOK_MIND -3843 BOOK_UMBER -3844 BOOK_SPIDER -3845 BOOK_KOBOLD -3846 SAND_DIE -3847 FIRAMB05_CHANGE -3848 DISARM_ENEMY -3849 TROLL_SMALL_CHANGE -3850 DGTROLL_CHANGE -3851 FIRAMB01_CHANGE -3852 SLAYER_CHANGE -3853 FORCE_SPHERE -3854 MAGNET -3855 SUMMON_DJINN_TRAP -3856 SUMMON_DEATH_KNIGHT -3857 SUMMON_PIT_FIEND -3858 ONE_INT -3859 ONE_WIS -3860 ONE_DEX -3861 ONE_CON -3862 NOHOLD_PARTY -3863 HOLD_PARTY -3864 TRANSFORMATION_DEATH -3865 FORCE_STONE_TRAP -3866 FORCE_DISPEL_MAGIC -3867 RED_PILLAR_VISUAL -3868 CERND_CERND -3869 CERND_BEAR -3870 SUMMON_SHADOW_WOLF -3871 END_EXPLORE -3872 FIVE_ROUND_ENCHANTMENT_IMMUNITY -3873 UNPAUSE_CASTER -3874 FALDORN_PANTHER -3875 ANATH_WEREWOLF2 -3876 ANATH_WEREWOLF -3877 APPRENTI_DEATH -3878 SHADOW_DRAIN -3879 MAKE_SHADOW -3880 SUMMON_SHADOW -3881 GREATER_WEREWOLF_CHANGE -3882 VAMPIRE_FEAR -3883 VAMPIRE_DOMINATION -3884 CHICKEN_CHANGE -3885 KAMIKAZE_EXPLOSION -3886 RAELIS_OPEN_PORTAL -3887 SUMMONED_MIND -3888 SURE_STONE_SHATTER -3889 SURE_STONED -3890 DEMON_FEAR -3891 MOON_DOG_FEAR -3892 SURE_SLEEP -3893 SHADOW_DRAGON_BREATH -3894 RED_DRAGON_BREATH -3895 DRAGON_FEAR -3896 REPULSE_X -3897 BEHOLDER_GAS_SPORE -3898 ARCHER_PROTECTION -3899 RED_EFFECT -3899 ZOMBIE_SICKNESS -3900 ZOMBIE_CHANGE -3901 ZOMBIE_CON_LOSS -3902 BODVAM02_MIST_CHANGE -3903 BODVAM01_MIST_CHANGE -3904 LASSAL_MIST_CHANGE -3905 DO_NOTHING -3906 THREE_ROUND_ENCHANTMENT_IMMUNITY -3907 FIFTY_PERCENT_DAMAGE_ARROW -3908 FIFTY_PERCENT_DAMAGE -3909 PSIONIC_EGOWHIP -3910 PSIONIC_DOMINATION -3911 PSIONIC_BALLISTIC -3912 PSIONIC_DETONATE -3913 MIMIC_ACID -3914 MIMIC_GLUE -3915 SPIDER_CHANGE -3916 EDWIN_CHANGE -3917 MANE_GAS -3918 HARPASS_CHANGE -3919 JAHEIRA_WEAKNESS -3920 BEHOLDER_SPELL_TURNING -3922 REVENANT_CHANGE -3923 GENIE_LIMITED_WISH_HEAL_ALL -3924 COVER_PARTIAL -3925 COVER_FULL -3926 MEPHIT_WATER_JET -3927 MEPHIT_RAINSTORM -3928 MEPHIT_GAS_FORM -3929 MEPHIT_MIST -3930 MEPHIT_LAVA -3931 MEPHIT_SOOTY_BALL -3932 MEPHIT_BOLT -3933 MEPHIT_LIGHTNING_BOLT -3934 MEPHIT_SALT_CRYSTAL -3935 MEPHIT_GLASS_DUST -3936 MEPHIT_ICE_SHARD -3937 MEPHIT_COLOR_SPRAY -3938 MEPHIT_FLAME_FAN -3939 MEPHIT_FLAME_JET -3940 MEPHIT_STINKING_CLOUD -3941 MEPHIT_SPIT_ROCK -3942 MEPHIT_GRIT -3943 MEPHIT_BLUR -3944 CUTSCENE_POWERWORD_STUN -3945 CUTSCENE_SPELLSTRIKE -3946 CUTSCENE_BREACH -3947 CUTSCENE_MIND_FOG -3948 CUTSCENE_LOWER_RESISTANCE -3949 CUTSCENE_RUBY_RAY_OF_REVERSAL -3950 CUTSCENE_FLESH_TO_STONE -3951 CUTSCENE_POWERWORD_KILL -3952 CUTSCENE_PHANTASMAL_KILLER -3953 CUTSCENE_IMPRISONMENT -3954 SIRINE_TELEPORT_FAKE -3955 TROLL_CHANGE -3956 HELL_HOUND_FLAME -3957 GHOULLORD_FEAR -3958 ULITHARID_CURE_SERIOUS_WOUNDS -3959 ULITHARID_PSIONIC_BLAST -3960 BEHOLDER_PARALYZATION_RAY -3961 BEHOLDER_FINGER_OF_DEATH -3962 BEHOLDER_MAGIC_MISSILE -3963 VAMPIRE_BAT_FORM_CHANGE -3964 VAMPIRE_GAS_FORM_CHANGE -3965 TROLL_HEAL_ONE_HIT_POINT -3966 TROLL_SLEEP -3967 EFREETI_PHYSICAL_FORM_CHANGE -3968 DOA_PHYSICAL_FORM_CHANGE -3969 DJINNI_PHYSICAL_FORM_CHANGE -3970 EFREETI_GAS_FORM_CHANGE -3971 DOA_GAS_FORM_CHANGE -3972 DJINNI_GAS_FORM_CHANGE -3973 AIR_ELEMENTAL_EFFECT -3974 MIND_FLAYER_PSIONIC_BLAST -3975 MIND_FLAYER_DOMINATION -3976 GOLEM_CONFUSION -3977 GOLEM_SLOW -3978 GOLEM_HASTE -3979 GOLEM_GASCLOUD -3980 BEHOLDER_CHARM_PERSON -3981 BEHOLDER_FEAR -3982 BEHOLDER_DISINTEGRATE -3983 BEHOLDER_SLOW -3984 BEHOLDER_FLESH_TO_STONE -3985 BEHOLDER_DOMINATION -3986 BEHOLDER_CAUSE_SERIOUS_WOUNDS -3987 BEHOLDER_AGANNAZAR_SCORCHER -3988 BEHOLDER_HOLD_PERSON -3989 BEHOLDER_LIGHTNING_BOLT -3990 BEHOLDER_PARALYZATION -3991 BEHOLDER_DEATH_RAY -3992 BEHOLDER_ANTIMAGIC_RAY -3994 ACID_DAMAGE_1 -3996 TANARI_DEATH_GAZE -3997 TANARI_VAMPIRIC_TOUCH -3998 TANARI_SILENCE -3999 TANARI_PARALYZE -4102 BLACKGUARD_ABSORB_HEALTH -4103 AURA_OF_DESPAIR -4103 BLACKGUARD_AURA_OF_DESPAIR -4104 RESIST_FEAR -4105 IMMUNITY_TO_LEVEL_DRAIN -4106 BLACKGUARD_ANIMATE_DEAD -4121 ARCHER_CALL_SHOT -4144 KENSAI_KIA -4152 BARBARIAN_RAGE -4211 PALADIN_LAY_ON_HANDS -4212 PALADIN_DETECT_EVIL -4212 PALADIN_PROTECTION_FROM_EVIL -4213 PALADIN_PROTECTION_FROM_EVIL -4222 CAVALIER_REMOVE_FEAR -4231 INQUIS_DISPEL_MAGIC -4232 INQUIS_TRUE_SIGHT -4236 SUN_SOUL_SUN_SOULRAY -4237 SUN_SOUL_GREATER_SUN -4238 SUN_SOUL_FLAMING_FISTS -4239 SUN_SOUL_SUN_SOULBEAM -4311 RANGER_CHARM_ANIMAL -4321 BERSERKER_ENRAGE -4321 BERSERKER_RAGE -4342 BEASTMASTER_FIND_FAMILIAR -4412 SET_SNARE_TRAP -4412 THIEF_SET_SNARE -4414 SET_SPECIAL_SNARE_TRAP -4414 THIEF_SET_SPECIAL_SNARE -4423 ASSASSIN_POISON -4521 BLADE_OFFENSIVE_SPIN -4522 BLADE_DEFENSIVE_SPIN -4611 DRUID_SHAPESHIFT_BROWNBEAR -4612 DRUID_SHAPESHIFT_WOLF -4613 DRUID_SHAPESHIFT_BLACKBEAR -4621 TOTEMIC_DRUID_SUMMON_SPIRIT_ANIMAL -4632 AVENGER_SHAPESHIFT_SWORDSPIDER -4633 AVENGER_SHAPESHIFT_BABYWYVERN -4634 AVENGER_SHAPESHIFT_FIRESALAMANDER -4643 SHAPESHIFTER_SHAPESHIFT_WEREWOLF -4644 SHAPESHIFTER_SHAPESHIFT_GREATERWEREWOLF -4721 TALOS_STORMSHIELD -4722 TALOS_LIGHTNING_BOLT -4731 HELM_SEEKING_SWORD -4732 HELM_TRUE_SIGHT -4741 LATHANDER_BOON -4742 LATHANDER_HOLD_UNDEAD -4811 MONK_STUNNING_BLOW -4815 MONK_LAY_ON_HANDS -4820 MONK_QUIVERING_PALM -4900 WARRIOR_WHIRLWIND -4901 WARRIOR_GREATER_WHIRLWIND -4902 WARRIOR_DEATHBLOW -4903 WARRIOR_GREATER_DEATHBLOW -4904 WARRIOR_RESIST_MAGIC -4905 WARRIOR_CRITICAL_STRIKE -4906 WARRIOR_POWER_ATTACK -4907 WARRIOR_HARDINESS -4908 WARRIOR_WAR_CRY -4909 WARRIOR_SMITE -4910 ROGUE_SET_SPIKE_TRAP -4911 ROGUE_SET_EXPLODING_TRAP -4912 ROGUE_SET_TIME_TRAP -4913 ROGUE_EVASION -4914 ROGUE_GREATER_EVASION -4916 ROGUE_ASSASINATION -4917 ROGUE_AVOID_DEATH -4922 RANGER_TRACKING -4923 PALADIN_SUMMON_DEVA -4924 DRUID_IMMUNE_POISON -4925 DRUID_RESISTS -4935 BLACKGUARD_SUMMON_FALLEN_DEVA -4936 SHADOWDANCER_SHADOW_TWIN -4937 SHADOWDANCER_SHADOW_MAZE -4938 SHADOWDANCER_SHADOW_FORM -4940 SHAMAN_SPIRIT_FORM -4941 SHAMAN_FAVORED_OF_THE_SPIRITS diff --git a/iwdification/dw/data/anim/E220.INI b/iwdification/dw/data/anim/E220.INI deleted file mode 100644 index 4e5fffb..0000000 --- a/iwdification/dw/data/anim/E220.INI +++ /dev/null @@ -1,57 +0,0 @@ -// MBBM beetle_black - -[general] -animation_type=e000 -move_scale=6 -ellipse=20 -color_blood=47 -color_chunks=0 -sound_freq=8 -personal_space=3 -cast_frame=4 - -[monster_icewind] -detected_by_infravision=0 -resref=MBBM - -[sounds] -attack=bomba03a,bomba03b -attack_frame=0,0,0 -awake= -awake_frame=0 -cast= -cast_frame=0 -conjure= -conjure_frame=0 -damage=bomba07,bomba08 -damage_frame=2,2 -die=bomba09a,bomba09b -die_frame=0,0 -head_turn=bomba11,blank,blank,blank,blank,blank -head_turn_frame=0,0,0,0,0,0 -ready= -ready_frame=0 -shoot= -shoot_frame=0 -twitch= -twitch_frame=0 -walk= -walk_frame=0 -attack_slash=bomba03a,bomba03b -attack_slash_frame=0,0,0 -attack_backslash= -attack_backslash_frame=0 -attack_jab= -attack_jab_frame=0 -emerge= -emerge_frame=0 -hide= -hide_frame=0 -sleep= -sleep_frame=0 -battle_cry=bomba01,bomba02,blank,blank -battle_cry_frame=0,0,0,0 -selection=bomba01,bomba02 -selection_frame=0,0 -fall=bf_md01,bf_md02,bf_md03,bf_md04,bf_md05,bf_md06 -fall_frame=2,2,2,2,2,2 diff --git a/iwdification/dw/data/anim_maps.2da b/iwdification/dw/data/anim_maps.2da deleted file mode 100644 index 7a9cb2a..0000000 --- a/iwdification/dw/data/anim_maps.2da +++ /dev/null @@ -1,7 +0,0 @@ -old_anim new_anim -SHADOW_LARGE SHADOW -UMBER_HULK_ELDER UMBER_HULK -LIZARD_MAN LIZARD_MAN_ELITE -ELEMENTAL_WATER WATER_WEIRD -ELEMENTAL_FIRE_IWD ELEMENTAL_FIRE -ELEMENTAL_EARTH_IWD ELEMENTAL_EARTH \ No newline at end of file diff --git a/iwdification/dw/data/bam_copy_arcane.2da b/iwdification/dw/data/bam_copy_arcane.2da deleted file mode 100644 index 3f911ed..0000000 --- a/iwdification/dw/data/bam_copy_arcane.2da +++ /dev/null @@ -1,14 +0,0 @@ -WYVERN_CALL -CARRION -ANIMATE_DEAD -SUMMON_EFREET -SUMMON_DJINNI -SUMMON_FIEND -CACOFIEND -GATE -SPIDER_SPAWN -CONJURE_EARTH_ELEMENTAL -CONJURE_AIR_ELEMENTAL -CONJURE_FIRE_ELEMENTAL -SUMMON_NISHRUU -SUMMON_HAKEASHAR \ No newline at end of file diff --git a/iwdification/dw/data/bam_copy_divine.2da b/iwdification/dw/data/bam_copy_divine.2da deleted file mode 100644 index fb1fe9f..0000000 --- a/iwdification/dw/data/bam_copy_divine.2da +++ /dev/null @@ -1,17 +0,0 @@ -CLERIC_ANIMATE_DEAD -CLERIC_SUMMON_INSECTS -CLERIC_ANIMAL_SUMMONING_1 -CLERIC_CALL_WOODLAND_BEINGS -CLERIC_ANIMAL_SUMMONING_2 -CLERIC_INSECT_PLAGUE -CLERIC_AERIAL_SERVANT -CLERIC_ANIMAL_SUMMONING_3 -CLERIC_CONJURE_ANIMALS -CLERIC_CONJURE_FIRE_ELEMENTAL -CLERIC_CONJURE_EARTH_ELEMENTAL -CLERIC_GATE -CLERIC_CREEPING_DOOM -CLERIC_ELEMENTAL_SUMMONING -CLERIC_GREATER_ELEMENTAL_SUMMONING -CLERIC_SUMMON_DEVA -CLERIC_SUMMON_FALLEN_DEVA \ No newline at end of file diff --git a/iwdification/dw/data/do_not_copy.2da b/iwdification/dw/data/do_not_copy.2da deleted file mode 100644 index a2e3c27..0000000 --- a/iwdification/dw/data/do_not_copy.2da +++ /dev/null @@ -1,62 +0,0 @@ -SMLLAREA.PRO -ABJURH.BAM -B1-10.ITM -B1-6.ITM -GHAST1.ITM -B1-10M2.ITM -ANTIWEB.ITM -CARRIO1.ITM -PSPIDER.BCS -SPIDPH1.ITM -S1-10.ITM -SPIDGI1.ITM -AROW01.ITM -BOW05.ITM -P1-4.ITM -P1-6.ITM -S1-12.ITM -S1-8.ITM -B1-12.ITM -GHOUL1.ITM -SPIDHU1.ITM -IMMUNE2.ITM -SPPR413B.BAM -SPPR413C.BAM -SPPR725D.SPL -RING95.ITM -IWOLF.BAM -SPPR306B.BAM -SPPR306C.BAM -IRING01.BAM -PARALH.BAM -SPWI213B.BAM -SPWI213C.BAM -SAFIRE.BCS -SAFROST.BCS -UHGAZE.BCS -MS6CRWL.CRE -MS6PSPI.CRE -MS5GSPI.CRE -MS5JZOM.CRE -MS4YETI.CRE -MS4OGR.CRE -MS4GHST.CRE -MS3BORB.CRE -MS3GHL.CRE -MS3HSPI.CRE -MS3OROG.CRE -MS3TLIZ.CRE -MS2BBTL.CRE -MS2GOBB.CRE -MS2GOBE.CRE -MS1FB.CRE -S5-20.ITM -SPWI914B.BAM -SPWI914C.BAM -ISHAPE06.BAM -SHGLYPH.BAM -ICSPAIN.VVC -ICEGLYP.PRO -EFATKMEL.BCS -TRAVEL.BAM -SPGLYPTI.BAM \ No newline at end of file diff --git a/iwdification/dw/data/ds_iwd_arcane.2da b/iwdification/dw/data/ds_iwd_arcane.2da deleted file mode 100644 index 704fe18..0000000 --- a/iwdification/dw/data/ds_iwd_arcane.2da +++ /dev/null @@ -1,9 +0,0 @@ -FILE OPCODE PAR_1 PAR_2 CLONE TICK PATCH_WHAT // DESCRIPTION -WIZARD_MIND_BLANK 328 1 MIND_BLANK 142 n a // Mind Blank -WIZARD_MIND_BLANK 328 1 BUFF_ENHANCEMENT 142 n a -WIZARD_MIND_BLANK 328 1 BUFF_PRO_EFFECTS 142 n a -WIZARD_EMOTION_HOPE 328 1 EMOTION_HOPE 142 n a -WIZARD_EMOTION_HOPE 328 1 BUFF_ENHANCEMENT 142 n a -WIZARD_EMOTION_COURAGE 328 1 EMOTION_COURAGE 142 n a -WIZARD_EMOTION_COURAGE 328 1 BUFF_ENHANCEMENT 142 n a -WIZARD_TROLLISH_FORTITUDE 328 1 BUFF_ENHANCEMENT 142 n a \ No newline at end of file diff --git a/iwdification/dw/data/ds_iwd_divine.2da b/iwdification/dw/data/ds_iwd_divine.2da deleted file mode 100644 index f7a372d..0000000 --- a/iwdification/dw/data/ds_iwd_divine.2da +++ /dev/null @@ -1,4 +0,0 @@ -FILE OPCODE PAR_1 PAR_2 CLONE TICK PATCH_WHAT // DESCRIPTION -CLERIC_IMPERVIOUS_SANCTITY_OF_MIND 328 1 BUFF_PRO_EFFECTS 142 n a -CLERIC_GREATER_SHIELD_OF_LATHANDER 328 1 BUFF_PRO_EFFECTS 142 n a -CLERIC_ENTROPY_SHIELD 328 1 BUFF_ENHANCEMENT 142 n a \ No newline at end of file diff --git a/iwdification/dw/data/file_renames.2da b/iwdification/dw/data/file_renames.2da deleted file mode 100644 index 5df834e..0000000 --- a/iwdification/dw/data/file_renames.2da +++ /dev/null @@ -1,4 +0,0 @@ -MISC_01C #ISC_01C WAV -ARE_M04 #RE_M04 WAV -SPPR616B SPPR618B BAM -SPPR616C SPPR618C BAM \ No newline at end of file diff --git a/iwdification/dw/data/force_iterate_start.2da b/iwdification/dw/data/force_iterate_start.2da deleted file mode 100644 index 8254e19..0000000 --- a/iwdification/dw/data/force_iterate_start.2da +++ /dev/null @@ -1,6 +0,0 @@ -BARD_SONG_BALLAD #BARD1.SPL -BARD_SONG_CURRAN #BARD2.SPL -BARD_SONG_TYMORA #BARD3.SPL -BARD_SONG_KAUDIES #BARD4.SPL -BARD_SONG_SIREN #BARD5.SPL -BARD_SONG_SITH #BARD6.SPL \ No newline at end of file diff --git a/iwdification/dw/data/green_spells_arcane.2da b/iwdification/dw/data/green_spells_arcane.2da deleted file mode 100644 index 988113e..0000000 --- a/iwdification/dw/data/green_spells_arcane.2da +++ /dev/null @@ -1,6 +0,0 @@ -CONJURE_EARTH_ELEMENTAL -CONJURE_AIR_ELEMENTAL -CONJURE_FIRE_ELEMENTAL -SUMMON_PLANATAR_GOOD -SUMMON_PLANATAR_EVIL -CREATE_BONEGUARD \ No newline at end of file diff --git a/iwdification/dw/data/ids_remaps.2da b/iwdification/dw/data/ids_remaps.2da deleted file mode 100644 index bfd078b..0000000 --- a/iwdification/dw/data/ids_remaps.2da +++ /dev/null @@ -1,5 +0,0 @@ -WIZARD_CONJURE_AIR_ELEMENTAL WIZARD_CONJURE_LESSER_AIR_ELEMENTAL -WIZARD_CONJURE_EARTH_ELEMENTAL WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL -WIZARD_CONJURE_FIRE_ELEMENTAL WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL -WIZARD_CONJURE_WATER_ELEMENTAL WIZARD_CONJURE_LESSER_WATER_ELEMENTAL -WIZARD_MORDENKAINENS_SWORD WIZARD_MORDENKAINENS_SWORD_IWD \ No newline at end of file diff --git a/iwdification/dw/data/iwd_arcane.2da b/iwdification/dw/data/iwd_arcane.2da deleted file mode 100644 index df9c7c5..0000000 --- a/iwdification/dw/data/iwd_arcane.2da +++ /dev/null @@ -1,54 +0,0 @@ -new_spell scroll_shadow -SNILLOCS_SNOWBALL_SWARM STINKING_CLOUD -DECASTAVE KNOCK -CATS_GRACE STRENGTH -ICELANCE FLAME_ARROW -LANCE_OF_DISRUPTION LIGHTNING_BOLT -BELTYNS_BURNING_BLOOD CONTAGION -EMOTION_COURAGE EMOTION_HOPELESSNESS -EMOTION_HOPE EMOTION_HOPELESSNESS -EMOTION_FEAR * -EMOTION_HOPELESSNESS * -MORDENKAINENS_FORCE_MISSILES OTILUKES_RESILIENT_SPHERE -SHOUT CONE_OF_COLD -VITRIOLIC_SPHERE ICE_STORM -SHROUD_OF_FLAME SUN_FIRE -OTILUKES_FREEZING_SPHERE CHAIN_LIGHTNING -DARTS_OF_BONE DISINTEGRATE -SOUL_EATER DEATH_FOG -TROLLISH_FORTITUDE TENSERS_TRANSFORMATION -ACID_STORM DELAYED_BLAST_FIREBALL -SUFFOCATE SPHERE_OF_CHAOS -MIND_BLANK PROTECTION_FROM_ENERGY -GREAT_SHOUT BIGBYS_CLENCHED_FIST -IRON_BODY IMPROVED_MANTLE -SUMMON_SHADOW CARRION -MONSTER_SUMMONING_4 WYVERN_CALL -MONSTER_SUMMONING_7 SUMMON_DJINNI -MONSTER_SUMMONING_6 SUMMON_EFREET -MONSTER_SUMMONING_5 SUMMON_EFREET -MONSTER_SUMMONING_1 * -MONSTER_SUMMONING_2 * -MONSTER_SUMMONING_3 * -WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL * -WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL * -WIZARD_CONJURE_LESSER_AIR_ELEMENTAL * -WIZARD_CONJURE_LESSER_WATER_ELEMENTAL CONJURE_LESSER_AIR_ELEMENTAL -MORDENKAINENS_SWORD_IWD MORDENKAINENS_SWORD -EXPEDITIOUS_RETREAT SLEEP -SHADOW_MONSTERS MONSTER_SUMMONING_2 -DEMI_SHADOW_MONSTERS MONSTER_SUMMONING_3 -ANTIMAGIC_SHELL SPELL_IMMUNITY -LICH_TOUCH DEATH_SPELL -SHADES MONSTER_SUMMONING_3 -MALAVONS_RAGE CACOFIEND -SEVEN_EYES SPHERE_OF_CHAOS -SEVEN_EYES_MIND * -SEVEN_EYES_MAGE * -SEVEN_EYES_SWORD * -SEVEN_EYES_VENOM * -SEVEN_EYES_FORTITUDE * -SEVEN_EYES_SPIRIT * -SEVEN_EYES_STONE * - - diff --git a/iwdification/dw/data/iwd_bard.2da b/iwdification/dw/data/iwd_bard.2da deleted file mode 100644 index 0cd77ac..0000000 --- a/iwdification/dw/data/iwd_bard.2da +++ /dev/null @@ -1,7 +0,0 @@ -new_spell -BARD_SONG_BALLAD -BARD_SONG_CURRAN -BARD_SONG_TYMORA -BARD_SONG_KAUDIES -BARD_SONG_SIREN -BARD_SONG_SITH \ No newline at end of file diff --git a/iwdification/dw/data/iwd_divine.2da b/iwdification/dw/data/iwd_divine.2da deleted file mode 100644 index 1d82665..0000000 --- a/iwdification/dw/data/iwd_divine.2da +++ /dev/null @@ -1,51 +0,0 @@ -new_spell -CLERIC_CURSE -CLERIC_CAUSE_LIGHT_WOUNDS -CLERIC_SUNSCORCH -CLERIC_CURE_MODERATE_WOUNDS -CLERIC_ALICORN_LANCE -CLERIC_BEAST_CLAW -CLERIC_CAUSE_MODERATE_WOUNDS -CLERIC_PRAYER -CLERIC_CAUSE_DISEASE -CLERIC_EXALTATION -CLERIC_MOONBLADE -CLERIC_CIRCLE_OF_BONES -CLERIC_SPIKE_GROWTH -CLERIC_CLOUDBURST -CLERIC_MOLD_TOUCH -CLERIC_STORM_SHELL -CLERIC_CAUSE_MEDIUM_WOUNDS -CLERIC_FAVOR_OF_ILMATER -CLERIC_PRODUCE_FIRE -CLERIC_STATIC_CHARGE -CLERIC_RECITATION -CLERIC_BLOOD_RAGE -CLERIC_CLOUD_OF_PESTILENCE -CLERIC_UNFAILING_ENDURANCE -CLERIC_STAR_METAL_CUDGEL -CLERIC_SMASHING_WAVE -CLERIC_THORN_SPRAY -CLERIC_WALL_OF_MOONLIGHT -CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL -CLERIC_SPIKE_STONES -CLERIC_SHIELD_OF_LATHANDER -CLERIC_UNDEAD_WARD -CLERIC_ANIMAL_RAGE -CLERIC_MASS_CAUSE_LIGHT_WOUNDS -CLERIC_ENTROPY_SHIELD -CLERIC_WHIRLWIND -CLERIC_SPIRITUAL_WRATH -CLERIC_SYMBOL_OF_PAIN -CLERIC_SYMBOL_OF_HOPELESSNESS -CLERIC_IMPERVIOUS_SANCTITY_OF_MIND -CLERIC_DESTRUCTION -CLERIC_GREATER_SHIELD_OF_LATHANDER -CLERIC_MIST_OF_ELDATH -CLERIC_STALKER -CLERIC_ENERGY_DRAIN -CLERIC_CAUSE_SERIOUS_WOUNDS -CLERIC_CAUSE_CRITICAL_WOUNDS -CLERIC_GIANT_INSECT -CLERIC_CHANT - diff --git a/iwdification/dw/data/key.txt b/iwdification/dw/data/key.txt deleted file mode 100644 index ee7abe0..0000000 --- a/iwdification/dw/data/key.txt +++ /dev/null @@ -1,26 +0,0 @@ -anim (directory): any animation INI file here will cause iwdspells to fetch the required BAM and WAV files for that INI - -anim_maps: IWD CRE files with the LHS animation get mapped over to the RHS animation - -bam_copy_[arcane/divine]: spell/scroll BAM images from IWD that replace the BG2 versions - -BG2EE_SPELL.IDS: what it sounds like, verbatim copy of BG2EE's spell.ids file - -do_not_copy: items on this list don't get copied over (and nor do any resources that depend on them, unless they depend on something else too) - -ds_iwd: minimal ds data to give BGEE-level detectability to the new spells - -file_renames: these files, when copied over, get renamed to the RHS entry, and any references to them are updates - -force_iterate_start: if you install the spell on the LHS, the system starts by collecting resources fromt he file on the RHS, not from the spell. - -green_spells_[arcane/divine]: list of spells (basically summoning) that need a green icon but don't have one available in IWD. They get algorithmically recoloured. - -ids_remaps: small changes in the IWD ids entry, so as to avoid namespace awkwardness in BG2 - -iwd_[arcane/divine/bard]: The spells to install, plus the BG2 scroll to use as a shadow if installing a wizard spell - -overwrite: these spells should overwrite the BG2 equivalent (normally, if there's a BG2 version there already, we skip our version) - -resource_overwrite: these items should be copied over even if they have a namespace conflict with BG(2)EE resources - diff --git a/iwdification/dw/data/overwrite.2da b/iwdification/dw/data/overwrite.2da deleted file mode 100644 index ce983e6..0000000 --- a/iwdification/dw/data/overwrite.2da +++ /dev/null @@ -1,10 +0,0 @@ -WIZARD_MONSTER_SUMMONING_1 -WIZARD_MONSTER_SUMMONING_2 -WIZARD_MONSTER_SUMMONING_3 -WIZARD_CONJURE_LESSER_AIR_ELEMENTAL -WIZARD_CONJURE_LESSER_EARTH_ELEMENTAL -WIZARD_CONJURE_LESSER_FIRE_ELEMENTAL -WIZARD_EMOTION_HOPELESSNESS -CLERIC_CAUSE_SERIOUS_WOUNDS -CLERIC_CAUSE_CRITICAL_WOUNDS -CLERIC_CHANT \ No newline at end of file diff --git a/iwdification/dw/data/resource_overwrite.2da b/iwdification/dw/data/resource_overwrite.2da deleted file mode 100644 index 24dc01b..0000000 --- a/iwdification/dw/data/resource_overwrite.2da +++ /dev/null @@ -1,4 +0,0 @@ -MSUMM1H.VVC -MSUMM1X.VVC -MSUMM1X.BAM -ASUMM1X.BAM \ No newline at end of file diff --git a/iwdification/dw/dw_iwdspells.ini b/iwdification/dw/dw_iwdspells.ini deleted file mode 100644 index 47b4893..0000000 --- a/iwdification/dw/dw_iwdspells.ini +++ /dev/null @@ -1 +0,0 @@ -create_boneguard 1 \ No newline at end of file diff --git a/iwdification/dw/lib/always.tph b/iwdification/dw/lib/always.tph deleted file mode 100644 index d6b1773..0000000 --- a/iwdification/dw/lib/always.tph +++ /dev/null @@ -1,40 +0,0 @@ - -ACTION_IF !GAME_IS "eet bgee bg2ee iwdee" BEGIN // enforce enhanced-edition - FAIL "Requires enhanced edition" -END - -//////////////////////////////////////////////////////// -//////////////////////////////////////////////////////// -//// Things to do only once -//////////////////////////////////////////////////////// -//////////////////////////////////////////////////////// - -ACTION_IF !VARIABLE_IS_SET ~initialise~ BEGIN - OUTER_SET initialise=1 - -//////////////////////////////////////////////////////// -//// general variables, macros and functions -//////////////////////////////////////////////////////// - ACTION_IF !VARIABLE_IS_SET do_not_biff BEGIN - OUTER_SET do_not_biff=0 - END - - ACTION_IF !VARIABLE_IS_SET sfo_loc BEGIN - OUTER_SPRINT sfo_loc "sfo" - END - ACTION_IF !VARIABLE_IS_SET sfo_loc BEGIN - OUTER_SPRINT ssl_loc "ssl" - END - INCLUDE ~%scsroot%/%sfo_loc%/install_sfo.tpa~ - - OUTER_SPRINT ssllibrary "%scsroot%/%ssl_loc%/library.slb" - -//////////////////////////////////////////////////////// -//// On BG2EE, include DS -//////////////////////////////////////////////////////// - - ACTION_IF GAME_IS "bgee bg2ee eet" BEGIN - LAF include STR_VAR file="ds.tph" location="%iwdspells_lib%" END - END - -END diff --git a/iwdification/dw/lib/arcane_spells_postproduction.tpa b/iwdification/dw/lib/arcane_spells_postproduction.tpa deleted file mode 100644 index 5a10567..0000000 --- a/iwdification/dw/lib/arcane_spells_postproduction.tpa +++ /dev/null @@ -1,39 +0,0 @@ -DEFINE_ACTION_FUNCTION arcane_spells_postproduction STR_VAR tra="" BEGIN - - PRINT "%tra% is tra" - LAF include STR_VAR file=summoned_monsters.tpa location="%iwdspells_lib%" END - - ACTION_IF "%tra%" STRING_EQUAL_CASE "" BEGIN - LAF summoned_monsters_arcane END - LAF run STR_VAR file=elemental_summoning location="%iwdspells_lib%" END - LAF force_blade END - END ELSE BEGIN - WITH_TRA "%tra%" BEGIN - LAF summoned_monsters_arcane END - LAF run STR_VAR file=elemental_summoning location="%iwdspells_lib%" END - LAF force_blade END - END - END - -END - -DEFINE_ACTION_FUNCTION force_blade BEGIN - - COPY_EXISTING "%WIZARD_MORDENKAINENS_SWORD_IWD%.SPL" override - READ_STRREF NAME1 old_name - SPRINT new_name @10 - SAY NAME1 "%new_name%" - READ_STRREF 0x50 old_desc - INNER_PATCH_SAVE new_desc "%old_desc%" BEGIN - REPLACE_TEXTUALLY "%old_name%" "%new_name%" - END - SAY 0x50 "%new_desc%" - BUT_ONLY - - COPY_EXISTING "%WIZARD_MORDENKAINENS_SWORD_IWD_SCROLL%.ITM" override - SAY NAME2 "%new_name%" - SAY DESC "%new_desc%" - BUT_ONLY - -END - diff --git a/iwdification/dw/lib/audit_animations.tpa b/iwdification/dw/lib/audit_animations.tpa deleted file mode 100644 index dce55f6..0000000 --- a/iwdification/dw/lib/audit_animations.tpa +++ /dev/null @@ -1,69 +0,0 @@ -////////////////////////////////////////////////////////// -/// Go through the INI and BAM files -/// for BG2EE and see which (IWD) animations are missing -////////////////////////////////////////////////////////// - - - -DEFINE_ACTION_FUNCTION audit_animations - -BEGIN - COPY_EXISTING_REGEXP ".*\.ini" "%workspace%" - LPF extract_ini_anim_data RET anim_id resref is_iwd_anim END - PATCH_IF is_iwd_anim BEGIN - INNER_ACTION BEGIN - LAF look_for_animation STR_VAR resref RET value END - ACTION_IF !value BEGIN - OUTER_INNER_PATCH "" BEGIN - LOOKUP_IDS_SYMBOL_OF_INT anim_name animate anim_id - END - LAF log_this STR_VAR file=missing_animations.2da input= ~%anim_id% %anim_name%~ END - END - END - END - BUT_ONLY -END - -DEFINE_PATCH_FUNCTION extract_ini_anim_data - RET anim_id resref is_iwd_anim -BEGIN - SET anim_id=0 - SPRINT resref "" - SPRINT anim_type "" - REPLACE_TEXTUALLY "=" " " - READ_2DA_ENTRIES_NOW entry_array 2 - FOR (i=0;i=0 BEGIN - SET is_iwd_anim=1 - END ELSE BEGIN - SET is_iwd_anim=0 - END - END -END - -DEFINE_ACTION_FUNCTION look_for_animation - STR_VAR resref="" - RET value -BEGIN - OUTER_SPRINT resref "%resref%GH" - ACTION_IF FILE_EXISTS_IN_GAME "%resref%.bam" BEGIN - OUTER_SET value=1 - END ELSE BEGIN - OUTER_SET value=0 - END -END \ No newline at end of file diff --git a/iwdification/dw/lib/bardsong_postproduction.tpa b/iwdification/dw/lib/bardsong_postproduction.tpa deleted file mode 100644 index 4d3b780..0000000 --- a/iwdification/dw/lib/bardsong_postproduction.tpa +++ /dev/null @@ -1,21 +0,0 @@ -DEFINE_ACTION_FUNCTION bardsong_postproduction BEGIN - - // change the default "FJBARD" to point at the Ballad of Three Heroes - - LAF edit_spell STR_VAR spell=FJBARD editstring="patch_effect_inline=>~resource=>%BARD_SONG_BALLAD%~" END - - // add the new powers in the CLAB - - MAKE_PATCH - grant_power'1=>"#BARD1 1" - grant_power'2=>"#BARD2 3" - grant_power'3=>"#BARD3 5" - grant_power'4=>"#BARD4 7" - grant_power'5=>"#BARD5 9" - grant_power'6=>"#BARD6 11" - remove_hla=>spcl920 - END - LAF edit_kit STR_VAR kit=bard edits=patch_data END - - -END \ No newline at end of file diff --git a/iwdification/dw/lib/collect_animations.tpa b/iwdification/dw/lib/collect_animations.tpa deleted file mode 100644 index fe8648b..0000000 --- a/iwdification/dw/lib/collect_animations.tpa +++ /dev/null @@ -1,38 +0,0 @@ -DEFINE_ACTION_FUNCTION collect_iwd_animations - STR_VAR ini="" - anim_loc="" - wav_loc="" -BEGIN - MKDIR "%anim_loc%" - MKDIR "%wav_loc%" - COPY "%ini%" "%workspace%" - REPLACE_TEXTUALLY "=" " " - REPLACE_TEXTUALLY ",blank" "" - REPLACE_TEXTUALLY "blank" "" - READ_2DA_ENTRIES_NOW ini_entries 2 - SPRINT bam "" - SPRINT wav_list "" - FOR (i=0;i"opcode=145" - say_description=>1 - END - LAF edit_spell STR_VAR spell=CLERIC_CHANT edits=patch_data END - -END - -DEFINE_ACTION_FUNCTION remap_symbol_pain_pro BEGIN - - LAF edit_spell STR_VAR spell=CLERIC_SYMBOL_OF_PAIN editstring="patch_ability_inline=>~projectile=>225~" END - -END - -DEFINE_ACTION_FUNCTION patch_cures_into_stores BEGIN - - // patch Cure Moderate Wounds into temples - // (while we're at it, do Cure Medium Wounds, which gets left out quite often) - - OUTER_SET desc=$strref_map(19397) - APPEND ~speldesc.2da~ ~%CLERIC_CURE_MODERATE_WOUNDS% %desc%~ - OUTER_SPRINT has_light "" - OUTER_SPRINT no_medium "" - COPY_EXISTING_REGEXP GLOB ".*\.sto" "%workspace%" - PATCH_IF INDEX_BUFFER ("%CLERIC_CURE_LIGHT_WOUNDS%")>=0 BEGIN - SPRINT has_light "%has_light% %SOURCE_RES%" - PATCH_IF INDEX_BUFFER ("%CLERIC_CURE_MEDIUM_WOUNDS%")<0 BEGIN - SPRINT no_medium "%no_medium% %SOURCE_RES%" - END - END - BUT_ONLY - - MAKE_PATCH - match=>"item_resource=SPPR103" - item_resource=>"%CLERIC_CURE_MEDIUM_WOUNDS%" - cure_price=>"3*cure_price" - END - LAF edit_store STR_VAR store="%no_medium%" editstring="clone_cure=>patch_data" END - - MAKE_PATCH - match=>"item_resource=SPPR103" - item_resource=>"%CLERIC_CURE_MODERATE_WOUNDS%" - cure_price=>"2*cure_price" - END - LAF edit_store STR_VAR store="%has_light%" editstring="clone_cure=>patch_data" END - - - -END - -// update joinable characters' divine spellbooks - -DEFINE_ACTION_FUNCTION pc_spells BEGIN - - LAM read_in_PCs - LAM read_in_hidespl - - // main part - COPY_EXISTING_REGEXP GLOB ~.*\.cre~ ~override~ - SPRINT filename ~%SOURCE_RES%~ - LPF CRE_is_PC RET value END - PATCH_IF value BEGIN - LPF CRE_add_all_priest_spells END - END - BUT_ONLY - -END diff --git a/iwdification/dw/lib/ds.tph b/iwdification/dw/lib/ds.tph deleted file mode 100644 index c638bc9..0000000 --- a/iwdification/dw/lib/ds.tph +++ /dev/null @@ -1,1717 +0,0 @@ -// Detectable Spells v3.96 -// -// January 2017 -// David, editing Ardanis version -// -// Changes: -// - Now incorporate flexible handling of TOBEX stats using BGEE splstate baseline -// - if filename has no .spl suffix, try looking it up in SPELL.ids (and skip if not found) - - -// Detectable Spells v3.95 -// February 3rd, 2016 - Yaroslav "Ardanis/GeN1e" Kalyuzhnyy -// -// Changes from previous version: -// -// - the use of stats 176-182 now can be disabled - -// Detectable Spells v3.9xx -// XX YYth, 201Z - Yaroslav "Ardanis/GeN1e" Kalyuzhnyy -// -// Changes from previous version: -// -// - added new spell states - -// Detectable Spells v3.92 -// October 17th, 2014 - Yaroslav "Ardanis/GeN1e" Kalyuzhnyy -// -// Changes from previous version: -// -// - added detection by effects' generic type -// - added potion detection - -// Detectable Spells v3.91 -// July 24th, 2014 - Yaroslav "Ardanis/GeN1e" Kalyuzhnyy -// -// Changes from previous version: -// -// - fixed a couple of things with SPLSTATE.IDS support -// - added SPLSTATE.IDS entries to the main table - - -// Detectable Spells v3.9 -// July 4th, 2014 - Yaroslav "Ardanis/GeN1e" Kalyuzhnyy -// -// Changes from previous version: -// - fixed some things in the code -// - moved all extra files into the main installer TPH -// - added support for SPLSTATE.IDS states - - -// Detectable Spells v3.1 -// -// Assembled by Ardanis/GeN1e, using DavidW's version (SCS) as a base -// -// Changes from previous version (SCS): -// - if Khelben's Warding Whip is broken, we first will attempt to repair it -// - removing older Ascension version of DS is less destructive -// - patching STATS.IDS is compatible with ToBEx -// - scripts from Kiara-Zaiya mod are also being updated to use new DS -// - core code is more compatibility-friendly with spell-altering mods -// - removed EFF-patching, it is not being used anywhere anyway -// - removed ~134 LEVELDRAIN~ stat, until somebody shows me a live example of the 200th stat NOT working -// - new ToBEx stats may be added on the fly, similar to how ADD_SPELL WeiDU command works (suggested by i30817 and aigleborgne) -// -// Contents (don't change any, unless you're the next update maintainer!!!): -// ds.tph -// -// Usage (basic): -// copypaste code below into your TP2, and set the path to match the directory -/* -INCLUDE ~XXXX/ds.tph~ // change "XXXX" to your mod folder -LAF detectable_spells END -*/ -// -// Advanced options: -// 1) table's format is: -// FILE - which file (SPL or ITM) you want patched -// OPCODE - which opcode will be added to the FILE (233 is proficiency, 282 is scripting state) -// PAR_1 - the first parameter of OPCODE (stat value for 233/282 opcodes) -// PAR_2 - the second paramater of OPCODE (stat's index in STATS.IDS, substract 156 for scripting states); -// if set to a string, it will be looked up in STATS.IDS and the corresponding index will be used instead -// CLONE - the opcode used as a marker (duration, etc.) for generating OPCODE; if CLONE is not found, OPCODE will not be added -// TICK - see the 4th option (below) for detailed explanation -// PATCH_WHAT - the location within FILE where OPCODE should be added to (and where CLONE is looked up): -// "g" - global (equipped) effects -// "a" - all ability headers -// if you want only specific header patched, set PATCH_WHAT to that header's index (starting from 0) -// -// 2) you can launch the second macro multiple times with different tables (change path, if required) -// -// 3) you can use stats' ID names in your table instead of fixed values; to avoid compatibility issues with other ToBEx-using mods, -// consider using only strings (with your personal modder's prefix) for ToBEx stats, rather than values - DS then will find the -// lowerest unclaimed 400+ slot in STATS.IDS and use it for further patching -// -// 4) you can update painlessly spells with ticking effects (Khelben's Whip, clouds) - change the letter in "tick" column to a value; -// DS will find the effect with the longest delay and use it for the cloning purpose, your value will be added to the total duration; -// non-zero values may be required in cases when the spell only has one effect in header and relies on the projectile to apply it -// multiple times (clouds) -// -// 5) if you have altered some spells, so that their duration can no longer be correctly detected by the opcode in "clone" column, you -// must update the "ag#dsal2.2da" table in the "override" folder, to let other mods know of your changes; if you don't, those mods will -// erroneously assume that the spell's detection is invalid and delete it; this is how we'd proceed with the Spell Shield fix (SCS): -/* -LAF ds_altered_spell INT_VAR old_clone=226 new_clone=142 STR_VAR file=~spwi519.spl~ END -*/ -// 6) you can install detectable weapon enchantment, as per SCS: -/* -LAF ds_detectable_weapon_enchantment END -*/ -// -// -// - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Define the table -DEFINE_ACTION_FUNCTION detectable_spells_setup BEGIN - -<<<<<<<<...inlined/ds/ag#detectable_spells_v4_stats_extra.2da -FILE OPCODE PAR_1 PAR_2 CLONE TICK PATCH_WHAT // DESCRIPTION -SPWI108.SPL 282 1 20 142 n A // PROTECTION_FROM_PETRIFICATION -SPWI519.SPL 282 1 21 226 n A // SPELL_SHIELD -SPCL222.SPL 282 2 22 142 n A // CAVALIER_REMOVE_FEAR -SPPR108.SPL 282 2 22 142 n A // RESIST_FEAR -SPWI210.SPL 282 1 22 142 n A // RESIST_FEAR -SPRA303.SPL 282 1 23 142 n A // STALKER_PROTECTION_FROM_NORMAL_MISSILES -SPWI311.SPL 282 1 23 142 n A // PROTECTION_FROM_NORMAL_MISSILES -SPWI412.SPL 282 1 24 142 n A // GREATER_MALISON -SPWI511.SPL 282 1 25 142 n A // PROTECTION_FROM_NORMAL_WEAPONS -SPWI603.SPL 282 1 26 142 n A // TENSER_TRANSFORMATION ->>>>>>>> - -<<<<<<<<...inlined/ds/ag#detectable_spells_v4.2da -FILE OPCODE PAR_1 PAR_2 CLONE TICK PATCH_WHAT // DESCRIPTION - -SPCL900.SPL 282 4 3 142 n A // HLA_WHIRLWIND_ATTACK -SPCL901.SPL 282 5 3 142 n A // HLA_GREATER_WHIRLWIND_ATTACK -SPCL902.SPL 282 2 3 142 n A // HLA_DEATHBLOW -SPCL903.SPL 282 3 3 142 n A // HLA_GREATER_DEATHBLOW -SPCL905.SPL 282 3 3 142 n A // HLA_CRITICAL_STRIKE -SPCL906.SPL 282 2 3 142 n A // HLA_POWER_ATTACK -SPCL909.SPL 282 5 3 142 n A // HLA_SMITE -SPCL916.SPL 282 4 3 142 n A // HLA_ASSASSINATION -BALSHLD.SPL 233 1 125 232 n A // ___FIRE_SHEILD_RED -BHAAL1B.SPL 233 1 124 142 n A // PC_TOB_REGENERATION -BHAAL2A.SPL 282 4 5 142 n A // PC_TOB_DRAW_UPON_HOLY_MIGHT -DGARCHON.SPL 233 1 123 201 n A // ___SHIELD_OF_THE_ARCHONS -DGFAITH.SPL 233 1 110 142 n A // ___ARMOR_OF_FAITH -DGRIGHT.SPL 282 6 5 142 n A // ___RIGHTEOUS_MAGIC -MARW401.SPL 282 2 9 188 n A // ___AURA_CLEANSING -MELIS02.SPL 233 2 121 142 n A // MELISSAN_BLADE_BARRIER -SPCL144.SPL 282 2 3 142 n A // KENSAI_KAI -SPCL152.SPL 282 1 3 142 n A // BARBARIAN_RAGE -SPCL213.SPL 233 1 117 142 n A // PALADIN_PROTECTION_FROM_EVIL -SPCL232.SPL 233 1 118 142 n A // INQUISITOR_TRUE_SIGHT -SPCL233.SPL 233 1 117 142 n A // ___PROTECTION_FROM_EVIL_TEN_FEET -SPCL237.SPL 233 1 125 142 n A // GREATER_SUN -SPCL321.SPL 282 1 3 169 n A // BERSERKER_ENRAGE -SPCL321.SPL 101 0 45 169 n A // BERSERKER_ENRAGE -SPCL423.SPL 282 4 3 142 n A // ASSASSIN_POISON_WEAPON -SPCL521.SPL 282 2 3 142 n A // BLADE_OFFENSIVE_SPIN -SPCL522.SPL 282 2 3 142 n A // BLADE_DEFENSIVE_SPIN -SPCL732.SPL 233 1 118 142 n A // HELM_TRUE_SIGHT -SPCL741.SPL 282 1 2 142 n A // LATHANDER_BOON -SPCL741.SPL 282 1 3 142 n A // LATHANDER_BOON -SPCL811.SPL 282 2 3 142 n A // MONK_STUNNING_BLOW -SPCL820.SPL 282 5 3 142 n A // MONK_QUIVERING_PALM -SPIN103.SPL 282 4 5 142 n A // PC_DRAW_UPON_HOLY_MIGHT -SPIN117.SPL 282 1 3 142 n A // MINSC_BERSERK -SPIN117.SPL 101 0 45 142 n A // MINSC_BERSERK -SPIN121.SPL 233 1 117 142 n A // ___PROTECTION_FROM_EVIL -SPIN676.SPL 282 3 3 142 n A // MAZZY_INVOKE_COURAGE -SPIN684.SPL 233 1 118 142 n A // _KOA_TRUE_SIGHT_NO_VIS -SPIN686.SPL 233 4 128 142 n A // _PROTECTION_MAGIC_WEAPON_NOEFF -SPIN696.SPL 233 1 118 220 n A // MOON_DOG_SIGHT -SPIN710.SPL 233 2 116 142 n A // _SPELL_DEFLECTION_NO_VISUAL -SPIN920.SPL 233 1 129 200 n A // _BEHOLDER_SPELL_TURNING -SPPR107.SPL 233 1 117 142 n A // PROTECTION_FROM_EVIL -SPPR111.SPL 233 1 110 142 n A // ARMOR_OF_FAITH -SPPR202.SPL 282 1 4 142 n A // BARKSKIN -SPPR214.SPL 282 4 5 142 n A // DRAW_UPON_HOLY_MIGHT -SPPR312.SPL 282 2 5 142 n A // STRENGTH_OF_ONE -SPPR319.SPL 233 1 120 60 n A // SUMMON_INSECTS -SPPR403.SPL 233 1 131 142 n A // FREE_ACTION -SPPR406.SPL 233 1 133 142 n A // DEFENSIVE_HARMONY -SPPR408.SPL 233 1 117 142 n A // PROTECTION_FROM_EVIL_TEN_FEET -SPPR412.SPL 282 3 5 142 n A // HOLY_POWER -SPPR505.SPL 233 1 118 142 n A // TRUE_SEEING -SPPR507.SPL 282 1 3 142 n A // CHAMPION_STRENGTH -SPPR507.SPL 282 3 5 142 n A // CHAMPION_STRENGTH -SPPR508.SPL 233 1 119 142 n A // CHAOTIC_COMMANDS -SPPR513.SPL 282 6 5 142 n A // RIGHTEOUS_MAGIC -SPPR517.SPL 233 2 120 60 n A // INSECT_PLAGUE -SPPR603.SPL 233 2 121 142 n A // BLADE_BARRIER -SPPR613.SPL 233 1 122 197 n A // PHYSICAL_MIRROR -SPPR698.SPL 233 1 121 142 n A // _NPC_BLADE_BARRIER -SPPR701.SPL 233 1 123 201 n A // SHIELD_OF_THE_ARCHONS -SPPR711.SPL 233 1 124 142 n A // REGENERATION -SPPR717.SPL 233 3 120 60 n A // CREEPING_DOOM -SPPR725.SPL 233 1 121 142 n A // HLA_GLOBE_OF_BLADES -SPPR730.SPL 233 1 125 142 n A // HLA_AURA_OF_FLAMING_DEATH -SPRA302.SPL 233 1 116 201 n A // STALKER_MINOR_SPELL_DEFLECTION -SPWI102.SPL 282 3 4 142 n A // ARMOR -SPWI113.SPL 233 1 117 142 n A // PROTECTION_FROM_EVIL -SPWI114.SPL 282 2 4 142 n A // SHIELD -SPWI214.SPL 282 2 5 142 n A // STRENGTH -SPWI317.SPL 282 4 4 142 n A // GHOST_ARMOR -SPWI318.SPL 233 1 116 201 n A // MINOR_SPELL_DEFLECTION -SPWI403.SPL 233 2 125 142 n A // FIRE_SHIELD_BLUE -SPWI414.SPL 282 5 4 142 n A // SPIRIT_ARMOR -SPWI418.SPL 233 1 125 142 n A // FIRE_SHIELD_RED -SPWI522.SPL 233 1 129 200 n A // MINOR_SPELL_TURNING -SPWI590.SPL 282 1 6 142 n A // SI_ABJURATION -SPWI591.SPL 282 2 6 142 n A // SI_CONJURATION -SPWI592.SPL 282 3 6 142 n A // SI_DIVINATION -SPWI593.SPL 282 4 6 142 n A // SI_ENCHANTMENT -SPWI594.SPL 282 5 6 142 n A // SI_ILLUSION -SPWI595.SPL 282 6 6 142 n A // SI_EVOCATION -SPWI596.SPL 282 7 6 142 n A // SI_NECROMANCY -SPWI597.SPL 282 8 6 142 n A // SI_TRANSMUTATION -SPWI603.SPL 282 1 3 142 n A // TENSER_TRANSFORMATION -SPWI606.SPL 233 1 126 142 n A // PROTECTION_FROM_MAGICAL_ENERGY -SPWI607.SPL 233 1 127 236 n A // MISLEAD -SPWI609.SPL 233 1 118 142 n A // TRUE_SIGHT -SPWI611.SPL 233 4 128 142 n A // PROTECTION_FROM_MAGICAL_WEAPONS -SPWI618.SPL 233 2 116 201 n A // SPELL_DEFLECTION -SPWI701.SPL 233 2 129 200 n A // SPELL_TURNING -SPWI702.SPL 233 1 130 142 n A // PROTECTION_FROM_ELEMENTS -SPWI703.SPL 233 2 127 236 n A // PROJECT_IMAGE -SPWI705.SPL 233 1 132 230 0 A // WIZARD_WARDING_WHIP -SPWI708.SPL 233 1 128 142 n A // MANTLE -SPWI802.SPL 233 2 116 142 n A // UNUSED_SPELL_DEFLECTION -SPWI803.SPL 282 1 7 142 n A // PROTECTION_FROM_ENERGY -SPWI804.SPL 233 3 127 236 n A // SIMULACRUM -SPWI808.SPL 233 2 128 142 n A // IMPROVED_MANTLE -SPWI902.SPL 282 1 8 259 n A // SPELL_TRAP -SPWI907.SPL 233 3 128 142 n A // ABSOLUTE_IMMUNITY -SPWI921.SPL 282 1 9 142 n A // IMPROVED_ALACRITY -SPWISH17.SPL 282 1 9 142 n A // WISH_ALACRITY_AND_TIMESTOP - -J#YA05.SPL 233 1 119 142 n A // -KISH11.SPL 233 1 119 142 n A // -TG#DIVN.SPL 233 1 123 142 n A // -TG#DIVN.SPL 233 1 131 142 n A // -TG#DIVN.SPL 233 1 119 142 n A // - -SCRL07.ITM 282 2 8 102 n A -POTN33.ITM 282 3 8 102 n A -STAF11.SPL 282 1 8 259 n A -IMMUNE1.ITM 282 1 25 120 n G -IMMUNE2.ITM 282 1 25 120 n G -IMMUNE3.ITM 282 1 25 120 n G -IMMUNE4.ITM 282 1 25 120 n G -IMMUNE3.ITM 233 1 128 120 n G -IMMUNE4.ITM 233 2 128 120 n G -POTN45.ITM 233 1 131 142 n A // FREE_ACTION (Potion of Freedom) -NMIMPERV.SPL 233 1 119 142 n A -NMIMPREG.SPL 233 1 119 142 n A -SPWISH17.SPL 282 1 9 142 n A - -SPPR111.SPL 328 1 ARMOR_OF_FAITH 142 n A // ARMOR_OF_FAITH -SPPR508.SPL 328 1 CHAOTIC_COMMANDS 142 n A // CHAOTIC_COMMANDS -SPCL152.SPL 328 1 BARBARIAN_RAGE 142 n A // BARBARIAN_RAGE -SPCL321.SPL 328 1 BERSERKER_RAGE 142 n A // BERSERKER_ENRAGE -SPIN117.SPL 328 1 MINSC_BERSERK 142 n A // MINSC_BERSERK -SPCL423.SPL 328 1 POISON_WEAPON 142 n A // ASSASSIN_POISON_WEAPON -SPCL144.SPL 328 1 KENSAI_KIA 142 n A // KENSAI_KAI -SPDWD02.SPL 328 1 DEFENSIVE_STANCE 142 n A // Defensive Stance -SPCL121.SPL 328 1 ARCHER_CALL_SHOT 142 n A // Called Shot -SPWI222.SPL 328 1 CHAOS_SHIELD 142 n A // Chaos Shield -SPWI723.SPL 328 1 IMPROVED_CHAOS_SHIELD 142 n A // Improved Chaos Shield -SPCL542A.SPL 328 1 SKALD_SONG 142 n A // Skald Song -SPCL751A.SPL 328 1 JESTER_SONG 142 n A // Jester Song -POTN21.ITM 328 1 POTION_OF_CLARITY 142 n A // Potion of Clarity -POTN33.ITM 328 1 POTION_OF_MAGIC_BLOCKING 142 n A // Potion of Magic Blocking -SCRL07.ITM 328 1 SCROLL_OF_PROTECTION_FROM_MAGIC 142 n A // Protection From Magic -SCRL09.ITM 328 1 SCROLL_OF_PROTECTION_FROM_UNDEAD 142 n A // Protection From Undead - -SPCL222.SPL 328 1 RESIST_FEAR 142 n A // CAVALIER_REMOVE_FEAR -SPRA303.SPL 328 1 PROTECTION_FROM_NORMAL_MISSILES 142 n A // STALKER_PROTECTION_FROM_NORMAL_MISSILES -SPPR108.SPL 328 1 RESIST_FEAR 142 n A // RESIST_FEAR -SPWI210.SPL 328 1 RESIST_FEAR 142 n A // RESIST_FEAR -SPWI108.SPL 328 1 PROTECTION_FROM_PETRIFICATION 142 n A // PROTECTION_FROM_PETRIFICATION -SPWI519.SPL 328 1 SPELL_SHIELD 226 n A // SPELL_SHIELD -SPWI311.SPL 328 1 PROTECTION_FROM_NORMAL_MISSILES 142 n A // PROTECTION_FROM_NORMAL_MISSILES -SPWI511.SPL 328 1 PROTECTION_FROM_NORMAL_WEAPONS 142 n A // PROTECTION_FROM_NORMAL_WEAPONS -SPWI603.SPL 328 1 TENSERS_TRANSFORMATION 142 n A // TENSER_TRANSFORMATION - -BALSHLD.SPL 328 1 RED_FIRESHIELD 232 n A // ___FIRE_SHEILD_RED -SPCL237.SPL 328 1 RED_FIRESHIELD 142 n A // GREATER_SUN -SPCL721.SPL 328 1 STORM_SHELL 142 n A // STORM_SHELL -SPCL907.SPL 328 1 HARDINESS 142 n A // HLA_HARDINESS -SPPR113.SPL 328 1 DOOM 142 n A // DOOM -SPPR116.SPL 328 1 FAERIE_FIRE 142 n A // FAERIE_FIRE -SPPR202.SPL 328 1 BARKSKIN 142 n A // BARKSKIN -SPPR310.SPL 328 1 MISCAST_MAGIC 142 n A // MISCAST_MAGIC -SPPR409.SPL 328 1 DEATH_WARD 142 n A // DEATH_WARD -SPPR412.SPL 328 1 HOLY_POWER 142 n A // HOLY_POWER -SPWI224.SPL 328 1 GLITTERDUST 142 n A // GLITTERDUST -SPWI403.SPL 328 1 BLUE_FIRESHIELD 142 n A // FIRE_SHIELD_BLUE -SPWI411.SPL 328 1 HOPELESSNESS 142 n A // HOPELESSNESS -SPWI412.SPL 328 1 MALISON 142 n A // GREATER_MALISON -SPWI413a.SPL 328 1 OTILUKES_RESILIENT_SPHERE 142 n A // OTILUKES_RESILIENT_SPHERE -SPWI418.SPL 328 1 RED_FIRESHIELD 142 n A // FIRE_SHIELD_RED -SPWI590.SPL 328 1 SI_ABJURATION 142 n A // SI_ABJURATION -SPWI591.SPL 328 1 SI_CONJURATION 142 n A // SI_CONJURATION -SPWI592.SPL 328 1 SI_DIVINATION 142 n A // SI_DIVINATION -SPWI593.SPL 328 1 SI_ENCHANTMENT 142 n A // SI_ENCHANTMENT -SPWI594.SPL 328 1 SI_ILLUSION 142 n A // SI_ILLUSION -SPWI595.SPL 328 1 SI_EVOCATION 142 n A // SI_EVOCATION -SPWI596.SPL 328 1 SI_NECROMANCY 142 n A // SI_NECROMANCY -SPWI597.SPL 328 1 SI_TRANSMUTATION 142 n A // SI_TRANSMUTATION - -SPCL232.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // TRUE_SIGHT -SPCL232D.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // -SPPR505.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // TRUE_SEEING -SPPR505D.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // -SPPR950.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // -SPWI224.SPL 328 1 CANNOT_TURN_INVISIBLE 142 n A // GLITTERDUST -SPWI609.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // TRUE_SIGHT -SPWI609D.SPL 328 1 CANNOT_TURN_INVISIBLE 221 7 A // - -SPPR613.SPL 328 1 BUFF_PRO_WEAPONS 197 n A // PHYSICAL_MIRROR -SPRA303.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // STALKER_PROTECTION_FROM_NORMAL_MISSILES -SPWI311.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // PROTECTION_FROM_NORMAL_MISSILES -SPWI511.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // PROTECTION_FROM_NORMAL_WEAPONS -SPWI611.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // PROTECTION_FROM_MAGICAL_WEAPONS -SPWI708.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // MANTLE -SPWI808.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // IMPROVED_MANTLE -SPWI907.SPL 328 1 BUFF_PRO_WEAPONS 142 n A // ABSOLUTE_IMMUNITY - -SPCL237.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // GREATER_SUN -SPCL721.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // STORM_SHELL -SPPR730.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // HLA_AURA_OF_FLAMING_DEATH -SPPR210.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // RESIST_FIRE_AND_COLD -SPPR306.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_FIRE -SPPR407.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_LIGHTNING -SPWI319.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_FIRE -SPWI320.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_COLD -SPWI403.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // FIRE_SHIELD_BLUE -SPWI418.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // FIRE_SHIELD_RED -SPWI512.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_ELECTRICITY -SPWI517.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_ACID -SPWI606.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_MAGICAL_ENERGY -SPWI702.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_ELEMENTS -SPWI803.SPL 328 1 BUFF_PRO_DAMAGE 142 n A // PROTECTION_FROM_ENERGY -POTN02.ITM 328 1 BUFF_PRO_DAMAGE 142 n A // POTION_OF_FIRE_RESISTANCE -POTN18.ITM 328 1 BUFF_PRO_DAMAGE 142 n A // POTION_OF_ABSORBTION -POTN22.ITM 328 1 BUFF_PRO_DAMAGE 142 n A // POTION_OF_COLD_RESISTANCE -POTN31.ITM 328 1 BUFF_PRO_DAMAGE 142 n A // POTION_OF_INSULATION -POTN35.ITM 328 1 BUFF_PRO_DAMAGE 142 n A // POTION_OF_MAGIC_SHIELDING - -SPPR701.SPL 328 1 BUFF_PRO_SPELLS 201 n A // SHIELD_OF_THE_ARCHONS -SPRA302.SPL 328 1 BUFF_PRO_SPELLS 201 n A // STALKER_MINOR_SPELL_DEFLECTION -SPWI318.SPL 328 1 BUFF_PRO_SPELLS 201 n A // MINOR_SPELL_DEFLECTION -SPWI406.SPL 328 1 BUFF_PRO_SPELLS 142 n A // MINOR_GLOBE_OF_INVULNERABILITY -SPWI519.SPL 328 1 BUFF_PRO_SPELLS 226 n A // SPELL_SHIELD -SPWI522.SPL 328 1 BUFF_PRO_SPELLS 200 n A // MINOR_SPELL_TURNING -SPWI590.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_ABJURATION -SPWI591.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_CONJURATION -SPWI592.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_DIVINATION -SPWI593.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_ENCHANTMENT -SPWI594.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_ILLUSION -SPWI595.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_EVOCATION -SPWI596.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_NECROMANCY -SPWI597.SPL 328 1 BUFF_PRO_SPELLS 142 n A // SI_TRANSMUTATION -SPWI602.SPL 328 1 BUFF_PRO_SPELLS 142 n A // GLOBE_OF_INVULNERABILITY -SPWI618.SPL 328 1 BUFF_PRO_SPELLS 201 n A // SPELL_DEFLECTION -SPWI701.SPL 328 1 BUFF_PRO_SPELLS 200 n A // SPELL_TURNING -SPWI902.SPL 328 1 BUFF_PRO_SPELLS 259 n A // SPELL_TRAP -POTN33.ITM 328 1 BUFF_PRO_SPELLS 102 n A // POTION_OF_MAGIC_BLOCKING - -SPPR108.SPL 328 1 BUFF_PRO_EFFECTS 142 n A // RESIST_FEAR -SPPR403.SPL 328 1 BUFF_PRO_EFFECTS 142 n A // FREE_ACTION -SPPR409.SPL 328 1 BUFF_PRO_EFFECTS 142 n A // DEATH_WARD -SPPR508.SPL 328 1 BUFF_PRO_EFFECTS 142 n A // CHAOTIC_COMMANDS -SPWI210.SPL 328 1 BUFF_PRO_EFFECTS 142 n A // RESIST_FEAR -POTN21.ITM 328 1 BUFF_PRO_EFFECTS 142 n A // POTION_OF_CLARITY -POTN45.ITM 328 1 BUFF_PRO_EFFECTS 142 n A // POTION_OF_FREEDOM - -BHAAL2A.SPL 328 1 BUFF_ENHANCEMENT 142 n A // PC_TOB_DRAW_UPON_HOLY_MIGHT -SPPR214.SPL 328 1 BUFF_ENHANCEMENT 142 n A // DRAW_UPON_HOLY_MIGHT -SPPR312.SPL 328 1 BUFF_ENHANCEMENT 142 n A // STRENGTH_OF_ONE -SPPR412.SPL 328 1 BUFF_ENHANCEMENT 142 n A // HOLY_POWER -SPPR507.SPL 328 1 BUFF_ENHANCEMENT 142 n A // CHAMPION_STRENGTH -SPPR508.SPL 328 1 BUFF_ENHANCEMENT 142 n A // CHAOTIC_COMMANDS -SPPR513.SPL 328 1 BUFF_ENHANCEMENT 142 n A // RIGHTEOUS_MAGIC -SPPR603.SPL 328 1 BUFF_ENHANCEMENT 142 n A // BLADE_BARRIER -SPPR698.SPL 328 1 BUFF_ENHANCEMENT 142 n A // _NPC_BLADE_BARRIER -SPPR730.SPL 328 1 BUFF_ENHANCEMENT 142 n A // HLA_AURA_OF_FLAMING_DEATH -SPWI214.SPL 328 1 BUFF_ENHANCEMENT 142 n A // STRENGTH -SPWI403.SPL 328 1 BUFF_ENHANCEMENT 142 n A // FIRE_SHIELD_BLUE -SPWI418.SPL 328 1 BUFF_ENHANCEMENT 142 n A // FIRE_SHIELD_RED -SPWI603.SPL 328 1 BUFF_ENHANCEMENT 142 n A // TENSER_TRANSFORMATION -POTN03.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_HILL_GIANT_STRENGTH -POTN04.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_FROST_GIANT_STRENGTH -POTN05.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_FIRE_GIANT_STRENGTH -POTN06.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_CLOUD_GIANT_STRENGTH -POTN07.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_STORM_GIANT_STRENGTH -POTN09.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_HEROISM -POTN12.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_STONE_GIANT_STRENGTH -POTN41.ITM 328 1 BUFF_ENHANCEMENT 142 n A // POTION_OF_POWER - -SPCL152.SPL 328 1 STATE_ENRAGED 142 n A // BARBARIAN_RAGE -SPCL321.SPL 328 1 STATE_ENRAGED 142 n A // BERSERKER_ENRAGE -SPIN117.SPL 328 1 STATE_ENRAGED 142 n A // MINSC_BERSERK -OHRRAGE.SPL 328 1 STATE_ENRAGED 142 n A // WILSON RAGE - ->>>>>>>> - -END // end of function - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Core patch -// -// Now using intelligent compatibility-friendly check: -// we start by looking for existing 233/282 (with parameters matching CDDETECT.2DA) and opcode-to-be-detected -// - if both are present, we check if 233/282 has correct settings (timing, power, etc.) -// -- if yes, we do nothing -// -- if not, we delete 233/282 and generate new effect via cloning o-t-b-d -// - if o-t-b-d is present and 233/282 is not, we generate new effect via cloning o-t-b-d -// - if 233/282 is present and o-t-b-d is not, we delete 233/282 -// - if neither is present, we do nothing -// -// New features: -// - we allow for spells to have been changed by mods and use a different duration marker opcode (aka 'clone') than stated in %table% -// - you can define stats in %table% by their ID names rather than values (case insensitive) -// - you can add new ToBEx stats (opcode 318) on the fly, filling in the empty slots - -DEFINE_ACTION_FUNCTION detectable_spells - INT_VAR - append_stats = 1 - use_stats_176_182 = 1 // use stats 176-182, disabled for official BG:EE / BGII:EE release - fix_khelben = 1 - fix_old_ds = 1 - install_ds = 1 - flexible_extended_stats = 1 - STR_VAR - path = ~~ - table = ~...inlined/ds/ag#detectable_spells_v4.2da~ - default = ~...inlined/ds/ag#detectable_spells_v4.2da~ - extra = ~...inlined/ds/ag#detectable_spells_v4_stats_extra.2da~ - BEGIN - -////////////////////////////////////////////////////////////////////////////////////// - -// append stats.ids with new entries -ACTION_IF append_stats = 1 BEGIN - -<<<<<<<<...inlined/ds/stats.2da -109 WEAPON_ENCHANTMENT -110 CLERIC_ARMOR_OF_FAITH -116 WIZARD_SPELL_DEFLECTION -117 PROTECTION_FROM_EVIL -118 TRUE_SIGHT -119 CLERIC_CHAOTIC_COMMANDS -120 CLERIC_INSECT_PLAGUE -121 CLERIC_BLADE_BARRIER -122 CLERIC_PHYSICAL_MIRROR -123 CLERIC_SHIELD_OF_THE_ARCHONS -124 CLERIC_REGENERATION -125 WIZARD_FIRE_SHIELD -126 WIZARD_PROTECTION_FROM_MAGIC_ENERGY -127 WIZARD_MISLEAD -128 WIZARD_PROTECTION_FROM_MAGIC_WEAPONS -129 WIZARD_SPELL_TURNING -130 WIZARD_PROTECTION_FROM_THE_ELEMENTS -131 CLERIC_FREE_ACTION -132 WIZARD_KHELBENS_WARDING_WHIP -133 CLERIC_DEFENSIVE_HARMONY -134 EXTRAPROFICIENCY20 -156 SCRIPTINGSTATE1 -157 SCRIPTINGSTATE2 -158 SCRIPTINGSTATE3 -159 SCRIPTINGSTATE4 -160 SCRIPTINGSTATE5 -161 SCRIPTINGSTATE6 -162 WIZARD_SPELL_IMMUNITY -163 WIZARD_PROTECTION_FROM_ENERGY -164 WIZARD_SPELL_TRAP -165 WIZARD_IMPROVED_ALACRITY -166 MELEE_THACO_BONUS -167 MELEE_DAMAGE_BONUS -168 MISSILE_DAMAGE_BONUS -169 DISABLE_CIRCLE -170 FIST_THACO_BONUS -171 FIST_DAMAGE_BONUS -172 CLASS_STRING_OVERRIDE_MIXED -173 CLASS_STRING_OVERRIDE_LOWER -174 PREVENT_SPELL_PROTECTION_EFFECTS -175 IMMUNITY_TO_BACKSTAB -176 LOCKPICKINGMTPBONUS -177 MOVESILENTLYMTPBONUS -178 TRAPSMTPBONUS -179 PICKPOCKETMTPBONUS -180 HIDEINSHADOWSMTPBONUS -181 DETECTILLUSIONSMTPBONUS -182 SETTRAPSMTPBONUS -183 PREVENT_AI_SLOWDOWN -184 EXISTANCE_DELAY_OVERRIDE -185 ANIMATION_ONLY_HASTE -186 NO_PERMANENT_DEATH -187 IMMUNE_TO_TURN_UNDEAD -200 LEVELDRAIN ->>>>>>>> - -<<<<<<<<...inlined/ds/stats_extra.2da -156 WING_BUFFET -157 DEATH_WARD -158 LEVEL_DRAIN_IMMUNITY -159 OFFENSIVE_MODIFIER -160 DEFENSIVE_MODIFIER -161 STRENGTH_MODIFIER -176 WIZARD_PROTECTION_FROM_PETRIFICATION -177 WIZARD_SPELL_SHIELD -178 WIZARD_RESIST_FEAR -179 WIZARD_PROTECTION_FROM_NORMAL_MISSILES -180 WIZARD_GREATER_MALISON -181 WIZARD_PROTECTION_FROM_NORMAL_WEAPONS -182 WIZARD_TENSERS_TRANSFORMATION ->>>>>>>> - - COPY_EXISTING stats.ids override - INSERT_FILE SOURCE_SIZE ~...inlined/ds/stats.2da~ - LAM ds_sort_stats_ids -END - -////////////////////////////////////////////////////////////////////////////////////// - -// fix the bug in G3's DS -ACTION_IF fix_khelben = 1 BEGIN - ACTION_IF NOT FILE_EXISTS_IN_GAME ~cddetect.spl~ BEGIN - COPY_EXISTING ~dw#marker_file.itm~ ~override/cddetect.spl~ // tell CamDawg's (?) version that DS is already installed - LAM ds_fix_khelben - END -END - -////////////////////////////////////////////////////////////////////////////////////// - -// fix old Ascension DS -ACTION_IF fix_old_ds = 1 BEGIN - ACTION_IF NOT FILE_EXISTS_IN_GAME ~dw#DScleanout.mrk~ BEGIN - COPY_EXISTING ~dw#marker_file.itm~ ~override/dw#DScleanout.mrk~ // tell DavidW's version that we've already fixed it - LAM ds_fix_old_scripts - LAM ds_fix_old_ds - END -END - -////////////////////////////////////////////////////////////////////////////////////// - -ACTION_IF install_ds = 1 BEGIN - -ACTION_IF FILE_EXISTS ~tobex.dll~ BEGIN - OUTER_SET engine_is_tobex = 1 -END ELSE BEGIN - OUTER_SET engine_is_tobex = 0 -END - -ACTION_IF FILE_EXISTS_IN_GAME ~spdm101.spl~ BEGIN // Dark Moon Monk, Blindness innate - OUTER_SET engine_is_bgee = 1 -END ELSE BEGIN - OUTER_SET engine_is_bgee = 0 -END - -ACTION_IF FILE_EXISTS_IN_GAME ~splstate.ids~ BEGIN - OUTER_SET engine_is_sod = 1 -END ELSE BEGIN - OUTER_SET engine_is_sod = 0 -END - -LAF detectable_spells_setup END - -ACTION_IF ~%path%~ STR_CMP ~~ BEGIN - OUTER_SPRINT table ~%path%/%table%~ -END -ACTION_TRY // this is a mere file existance check by attempting to load it, because FILE_EXISTS doesn't return true for virtual files - COPY - ~%table%~ ~ag#detectable_spells_v4_custom.2da~ -WITH - DEFAULT - ACTION_IF ~%table%~ STR_CMP ~...inlined/ds/ag#detectable_spells_v4.2da~ BEGIN // if user specified a custom string - PRINT "Detectable Spells: Unable to locate ~%table%~, using default 2DA instead" - END - OUTER_SPRINT table ~%default%~ -END - -//////////////////// - -OUTER_SET ds_alter=0 -ACTION_IF FILE_EXISTS_IN_GAME ~ag#dsal2.2da~ BEGIN - COPY_EXISTING - ~ag#dsal2.2da~ ~override~ - READ_2DA_ENTRIES_NOW ds_alter 3 -END - -COPY - ~%table%~ ~override~ - PATCH_IF (~%table%~ STRING_EQUAL_CASE ~%default%~) && use_stats_176_182 = 1 BEGIN - INSERT_FILE SOURCE_SIZE ~%extra%~ - END - - READ_2DA_ENTRIES_NOW ds_table 7 - FOR (r=0;r=1000 BEGIN - INNER_PATCH "%ids_num%" BEGIN - READ_ASCII 0x0 digit (1) - READ_ASCII 0x1 rest (3) - PATCH_MATCH "%digit%" WITH - 1 BEGIN - SPRINT file "SPPR%rest%.spl" - END - 2 BEGIN - SPRINT file "SPWI%rest%.spl" - END - 3 BEGIN - SPRINT file "SPIN%rest%.spl" - END - 4 BEGIN - SPRINT file "SPCL%rest%.spl" - END - DEFAULT - END - END - END - END - - - PATCH_IF FILE_EXISTS_IN_GAME EVAL ~%file%~ BEGIN - abort=0 - ids=2 - - // check if this spell has been altered and it's original clonable opcode is no longer reliable - FOR (k=1;k200 && new_op != 318 && ids=2 BEGIN - PATCH_PRINT ~Detectable Spells: Warning: unable to add %p2% to STATS.IDS! New stats may not be added on the fly if they don't use ToBEx's 318th opcode!~ - abort=1 - // INNER_ACTION BEGIN - // LAF ds_resolve_stat INT_VAR index=stat_ind delete=1 END - // END - END - PATCH_IF (stat_ind>31 && ids=0) || (stat_ind>255 && ids=1) BEGIN // extstate.ids has 32 max, splstate.ids has 255 max - PATCH_PRINT ~Detectable Spells: Warning: maximum number of IDS entries is reached!~ - abort=1 - // INNER_ACTION BEGIN - // LAF ds_resolve_stat INT_VAR ids index=stat_ind delete=1 END - // END - END - PATCH_IF stat_ind<201 && new_op=318 BEGIN - PATCH_PRINT ~Detectable Spells: Warning: %p2% already exists in %stat_ind%th slot! ToBEx's 318th opcode may not use values below 401!~ - abort=1 - END - PATCH_IF new_op=282 BEGIN // scripting states start from 156 - stat_ind -= 156 - PATCH_IF stat_ind<0 BEGIN - PATCH_PRINT ~Detectable Spells: Warning: unable to resolve %p2%! Scripting states may not exist in slots below 156th!~ - abort=1 - END - END - p2=stat_ind - END - - END - - END ELSE BEGIN - abort=1 - END - - INNER_ACTION BEGIN ACTION_IF abort=0 BEGIN - COPY_EXISTING ~%file%~ ~override~ PATCH_IF SOURCE_SIZE>0x71 BEGIN LPF ~FJ_SPL_ITM_REINDEX~ END - READ_LONG 0x64 ab_off - READ_SHORT 0x68 ab_num - READ_LONG 0x6a ef_off - READ_SHORT 0x6e ef_ind - READ_SHORT 0x70 ef_num - PATCH_IF ~%SOURCE_EXT%~ STRING_EQUAL_CASE ~spl~ BEGIN size=0x28 END // if spell - ELSE BEGIN size=0x38 END // if not spell, then it's item - delta=0 - - // run through global effects - PATCH_IF ~%type%~ STRING_EQUAL_CASE ~g~ BEGIN - LPM ds_eval - WRITE_SHORT 0x70 ef_num+delta - END - - // run through ability headers - FOR (j=0;jdur) ? d : dur // the longest duration - END - END - END - - // look for existing effects - FOR (i=0;i r1 BEGIN - nomatch=1 - PHP_EACH clonable AS i2 => r2 BEGIN - PATCH_IF ~%r2%~ STRING_EQUAL_CASE ~%r1%~ BEGIN - nomatch=0 - END - END - PATCH_IF nomatch BEGIN - SPRINT $auxil("%i1%") ~0~ - END - END - - // check if the matching 233/282 already exists - PHP_EACH clonable AS i1 => r1 BEGIN - exists=0 - PHP_EACH detectable AS i2 => r2 BEGIN - PATCH_IF ~%r2%~ STRING_EQUAL_CASE ~%r1%~ BEGIN - exists=1 - END - END - PHP_EACH auxil AS i2 => r2 BEGIN - PATCH_IF ~%r2%~ STRING_EQUAL_CASE ~%r1%~ BEGIN - exists=1 - END - END - PATCH_IF exists=0 BEGIN - SPRINT $auxil("%i1%") ~%r1%~ - END - END - - SPRINT sort_array auxil - LPM sort_array - - // insert or delete data - local_delta=0 - PHP_EACH auxil AS ind => res BEGIN - // 0 = delete, anything else = insert - PATCH_IF ~%res%~ STRING_EQUAL_CASE ~0~ BEGIN - DELETE_BYTES ef_off+(ef_ind+ind+delta)*0x30 0x30 - delta -= 1 - local_delta -= 1 - END ELSE BEGIN - INSERT_BYTES ef_off+(ef_ind+ind+delta+1)*0x30 0x30 - WRITE_ASCIIE ef_off+(ef_ind+ind+delta+1)*0x30 ~%res%~ (0x30) - delta += 1 - local_delta += 1 - END - END - -END - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Warding Whip can be broken by older versions of DS. Check it up. -// -// If broken, but in a recognizable shape, we try to fix it first, before resorting to replacement with a backup file. -// -// While it likely is possible to write sufficiently sophisticated code to reanimate the file even if it has -// suffered the most dire kind of abuse, I feel that's rather excessive to do so. - -DEFINE_ACTION_MACRO ds_fix_khelben BEGIN - -COPY_EXISTING ~spwi705.spl~ override - READ_LONG 0x64 ab_off - READ_SHORT 0x68 ab_num - READ_LONG 0x6a ef_off - fubar=0 - - // check if the file is ok - repair=0 - total=0 - FOR (i=0;i= 0 BEGIN - total +=1 - size -=0x30 - END - PATCH_IF size > 0 && size < 0x30 BEGIN - fubar=1 - PATCH_PRINT ~Detectable Spells: SPWI705.SPL is broken in unknown manner, restoring from a backup~ - END - - // check if the first effect in each header is the expected 233/1/132 - PATCH_IF fubar=0 BEGIN - FOR (i=0;imax) ? num : max - SET $arr1("%num%") = 1 - SPRINT $arr2("%num%") ~%str%~ - END - PHP_EACH arr1 AS i1 => r1 BEGIN - min=max - PHP_EACH arr2 AS i2 => r2 BEGIN - PATCH_IF (i2>>>>>>> -COPY ~...ds/inline/blank~ ~override/stats.ids~ -ACTION_PHP_EACH stats AS ind => res BEGIN - APPEND stats.ids ~%ind% %res%~ -END - -END - -////////////////////////////////////////////////////////////////////////////////////// -/// duplicated in stratagems_shared - -DEFINE_ACTION_FUNCTION ds_resolve_stat INT_VAR ids=2 index=0 delete=0 STR_VAR id="" RET stat_ind BEGIN - -OUTER_SPRINT ids_file stats OUTER_SET min_new=401 - -ACTION_IF ids=0 BEGIN OUTER_SPRINT ids_file extstate OUTER_SET min_new=0 END -ACTION_IF ids=1 BEGIN OUTER_SPRINT ids_file splstate OUTER_SET min_new=0 END - -COPY_EXISTING ~%ids_file%.ids~ override - stat_ind=0 - found=0 - - READ_2DA_ENTRIES_NOW stats 2 - FOR (row=0;row ind BEGIN - PATCH_IF found=0 && (row+1 < stats) BEGIN // not at the end of file - next_row = row+1 - next_ind = EVAL $stat("%next_row%") - PATCH_IF index BEGIN - PATCH_IF indexind BEGIN - INSERT_2DA_ROW next_row 2 ~%index% %id%~ - found=1 - END - END ELSE BEGIN - PATCH_IF stat_indind BEGIN - INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~ - END ELSE BEGIN - stat_ind+=1 - INSERT_2DA_ROW stats 2 ~%stat_ind% %id%~ - END - END - END - END - END // PHP_EACH - END - -END - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Check if there're scripts using older version of DS and fix them if needed - -DEFINE_ACTION_MACRO ds_fix_old_scripts BEGIN - -<<<<<<<<...inlined/ds/ag#old_ds_swap.2da -SCRIPTINGSTATE6 WIZARD_SPELL_DEFLECTION -WIZARD_SPELL_IMMUNITY WIZARD_SPELL_TURNING -MELEE_THACO_BONUS PROTECTION_FROM_EVIL -MELEE_DAMAGE_BONUS TRUE_SIGHT -MISSILE_DAMAGE_BONUS CLERIC_CHAOTIC_COMMANDS -FIST_THACO_BONUS CLERIC_INSECT_PLAGUE -FIST_DAMAGE_BONUS CLERIC_BLADE_BARRIER -CLASS_STRING_OVERRIDE_MIXED CLERIC_PHYSICAL_MIRROR -CLASS_STRING_OVERRIDE_LOWER CLERIC_SHIELD_OF_THE_ARCHONS -PREVENT_SPELL_PROTECTION_EFFECTS CLERIC_REGENERATION -IMMUNITY_TO_BACKSTAB CLERIC_INSECT_PLAGUE -PREVENT_AI_SLOWDOWN WIZARD_PROTECTION_FROM_MAGIC_ENERGY -EXISTANCE_DELAY_OVERRIDE WIZARD_MISLEAD -ANIMATION_ONLY_HASTE WIZARD_PROTECTION_FROM_MAGIC_WEAPONS -NO_PERMANENT_DEATH WIZARD_SPELL_IMMUNITY -IMMUNE_TO_TURN_UNDEAD WIZARD_PROTECTION_FROM_THE_ELEMENTS ->>>>>>>> - -COPY - ~...inlined/ds/ag#old_ds_swap.2da~ override - READ_2DA_ENTRIES_NOW stats 2 - FOR (row=0;row res BEGIN - REPLACE_TEXTUALLY ~,%ind%)~ ~,%res%)~ - END - COMPILE_BAF_TO_BCS - BUT_ONLY -END - -END // end of macro - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Update older Ascension's version of DS - -DEFINE_ACTION_MACRO ds_fix_old_ds BEGIN - -<<<<<<<<...inlined/ds/ag#old_ds_swap.2da -SPPR950.SPL 282 11 1 -1 0 0 A -SPPR509.SPL 282 13 1 -1 0 0 A -SPCL321D.SPL 282 3 1 -1 0 0 A -MELIS02.SPL 282 1 1 -1 0 0 A -MELIS02.SPL 282 9 1 -1 0 0 A -SPCL213.SPL 282 10 1 233 1 117 A -SPCL232.SPL 282 11 1 233 1 118 A -SPCL732.SPL 282 11 1 233 1 118 A -SPIN121.SPL 282 10 1 233 1 117 A -SPIN684.SPL 282 11 1 233 1 118 A -SPIN686.SPL 282 29 4 233 4 128 A -SPIN710.SPL 282 5 2 233 2 116 A -SPIN920.SPL 282 6 1 233 1 129 A -SPPR107.SPL 282 10 1 233 1 117 A -SPPR408.SPL 282 10 1 233 1 117 A -SPPR505.SPL 282 11 1 233 1 118 A -SPPR508.SPL 282 12 1 233 1 119 A -SPPR517.SPL 282 14 1 233 2 120 A -SPPR603.SPL 282 15 1 233 2 121 A -SPPR613.SPL 282 16 1 233 1 122 A -SPPR698.SPL 282 15 1 233 1 121 A -SPPR701.SPL 282 17 1 233 1 123 A -SPPR711.SPL 282 18 1 233 1 124 A -SPPR717.SPL 282 19 1 233 3 120 A -SPWI113.SPL 282 10 1 233 1 117 A -SPWI318.SPL 282 5 1 233 1 116 A -SPWI522.SPL 282 6 1 233 1 129 A -SPWI590.SPL 282 30 1 282 1 6 A -SPWI591.SPL 282 30 2 282 2 6 A -SPWI592.SPL 282 30 3 282 3 6 A -SPWI593.SPL 282 30 4 282 4 6 A -SPWI594.SPL 282 30 5 282 5 6 A -SPWI595.SPL 282 30 6 282 6 6 A -SPWI596.SPL 282 30 7 282 7 6 A -SPWI597.SPL 282 30 8 282 8 6 A -SPWI606.SPL 282 27 1 233 1 126 A -SPWI607.SPL 282 28 1 233 1 127 A -SPWI609.SPL 282 11 1 233 1 118 A -SPWI611.SPL 282 29 4 233 4 128 A -SPWI618.SPL 282 5 2 233 2 116 A -SPWI701.SPL 282 6 2 233 2 129 A -SPWI702.SPL 282 31 1 233 1 130 A -SPWI708.SPL 282 29 1 233 1 128 A -SPWI802.SPL 282 5 2 233 2 116 A -SPWI808.SPL 282 29 2 233 2 128 A -SPWI907.SPL 282 29 3 233 3 128 A ->>>>>>>> - -COPY - ~...inlined/ds/ag#old_ds_swap.2da~ ~override~ - READ_2DA_ENTRIES_NOW row 8 - FOR (t=0;t0x71 BEGIN LPF ~FJ_SPL_ITM_REINDEX~ END - - READ_LONG 0x64 ab_off - READ_SHORT 0x68 ab_num - READ_LONG 0x6a ef_off - READ_SHORT 0x6e ef_ind - READ_SHORT 0x70 ef_num - PATCH_IF ~%SOURCE_EXT%~ STRING_EQUAL_CASE ~spl~ BEGIN size=0x28 END // if spell - ELSE BEGIN size=0x38 END // if not spell, then it's item - delta=0 - - // run through global effects - PATCH_IF ~%type%~ STRING_EQUAL_CASE ~g~ BEGIN - FOR (i=0;i0x71 BEGIN LPF ~FJ_SPL_ITM_REINDEX~ END - READ_LONG 0x64 ab_off - READ_SHORT 0x68 ab_num - - weapon=0 - FOR (i=0;i>>>>>>> -COPY ~...ds/inline/blank~ ~override/ag#dsal2.2da~ -END - -COPY_EXISTING ~ag#dsal2.2da~ override - found=0 - READ_2DA_ENTRIES_NOW ds_table 3 - FOR (r=1;rhc || insert_point<0) ? hc : insert_point - copy_header = (copy_header<0) ? 0 : copy_header - - PATCH_IF copy_header>hc BEGIN - PATCH_WARN ~Unable to copy %copy_header%th header, %SOURCE_FILE% contains only %hc% headers!~ - END ELSE BEGIN - INSERT_BYTES ho+insert_point*hs hs - hc+=1 - eo+=hs - PATCH_IF copy_header BEGIN - READ_SHORT ho+(copy_header - 1)*hs+0x1e ec - READ_SHORT ho+(copy_header - 1)*hs+0x20 ei - READ_ASCII eo+ei*0x30 effs (ec*0x30) - READ_ASCII ho+(copy_header - 1)*hs copy (hs) - WRITE_ASCIIE ho+insert_point*hs ~%copy%~ (hs) - END - WRITE_SHORT 0x68 hc - WRITE_LONG 0x6a eo - - READ_SHORT 0x70 ei // technically, it is a counter - FOR (i=ho;i ag#sa_r BEGIN - SPRINT $ag#sa_aux("%ag#sa_i%") ~%ag#sa_r%~ - SET $ag#sa_aux2("%ag#sa_i%") = 1 - PATCH_IF IS_AN_INT ~%ag#sa_i%~ && IS_AN_INT ~%ag#sa_max%~ BEGIN - PATCH_IF ~%ag#sa_i%~ > ~%ag#sa_max%~ BEGIN - SPRINT ag#sa_max ~%ag#sa_i%~ - END - END ELSE BEGIN - PATCH_IF (~%ag#sa_i%~ STRING_COMPARE_CASE ~%ag#sa_max%~) > 0 BEGIN - SPRINT ag#sa_max ~%ag#sa_i%~ - END - END - END - CLEAR_ARRAY EVAL ~%sort_array%~ - PHP_EACH ag#sa_aux AS ag#sa_i => ag#sa_r BEGIN - SPRINT ag#sa_min ~%ag#sa_max%~ - PHP_EACH ag#sa_aux2 AS ag#sa_i2 => ag#sa_r2 BEGIN - PATCH_IF IS_AN_INT ~%ag#sa_min%~ && IS_AN_INT ~%ag#sa_i2%~ BEGIN - PATCH_IF (~%ag#sa_min%~ > ~%ag#sa_i2%~) && (ag#sa_r2) BEGIN - SPRINT ag#sa_min ~%ag#sa_i2%~ - END - END ELSE BEGIN - PATCH_IF ((~%ag#sa_min%~ STRING_COMPARE_CASE ~%ag#sa_i2%~) > 0) && (ag#sa_r2) BEGIN - SPRINT ag#sa_min ~%ag#sa_i2%~ - END - END - END - SPRINT $ EVAL "%sort_array%"("%ag#sa_min%") $ag#sa_aux("%ag#sa_min%") - SET $ag#sa_aux2("%ag#sa_min%") = 0 - END -END - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -// Tightly based on Nythrun's ~fj_spl_itm_reindex~ patch - -DEFINE_PATCH_FUNCTION ~FJ_SPL_ITM_REINDEX~ BEGIN - -PATCH_IF !(~%SOURCE_FILE%~ STRING_MATCHES_REGEXP ~^.+\.spl~) BEGIN - hs = 0x28 - WRITE_LONG 0xc ~-1~ //Identified name - WRITE_LONG 0x54 ~-1~ //Identified description - PATCH_FOR_EACH tz IN 0x44 0x48 0x58 0x5c BEGIN - WRITE_LONG tz 0 - END -END ELSE PATCH_IF !(~%SOURCE_FILE%~ STRING_MATCHES_REGEXP ~^.+\.itm~) BEGIN - hs = 0x38 -END -READ_LONG 0x64 hf //Extended header offset -READ_SHORT 0x68 hc //Extended header count -READ_LONG 0x6a fb //Feature block table offset -READ_SHORT 0x70 fc //Feature block count -PATCH_IF ((hf > fb) AND (hc > 0)) BEGIN - READ_ASCII hf ~eh~ ELSE ~fail~ (hs * hc) - PATCH_IF (~%eh%~ STRING_EQUAL ~fail~) BEGIN - WHILE ((~%eh%~ STRING_EQUAL ~fail~) AND (hc > 0)) BEGIN - READ_ASCII hf ~eh~ ELSE ~fail~ (hs * hc) - hc -= 1 - END - END - DELETE_BYTES hf (hs * hc) - hf = 0x72 - WRITE_LONG 0x64 hf - WRITE_SHORT 0x68 hc - fb = (0x72 + (hs * hc)) - WRITE_LONG 0x6a fb - PATCH_IF !(~%eh%~ STRING_EQUAL ~fail~) BEGIN - INSERT_BYTES hf (hs * hc) - WRITE_ASCIIE hf ~%eh%~ - END -END ELSE PATCH_IF ((hf != 0x72) AND (hc = 0)) BEGIN - hf = 0x72 - WRITE_LONG 0x64 hf -END -FOR (i1 = 0; i1 < (hs * hc); i1 += hs) BEGIN - WRITE_SHORT (hf + i1 + 0x20) fc - READ_SHORT (hf + i1 + 0x1e) cx - fc += cx -END -PATCH_IF (SOURCE_SIZE > (0x72 + (hs * hc) + (0x30 * fc))) BEGIN - DELETE_BYTES (0x72 + (hs * hc) + (0x30 * fc)) (SOURCE_SIZE - (0x72 + (hs * hc) + (0x30 * fc))) -END - -// added by Ardanis -WRITE_SHORT 0x6e 0 - -END // end of function - -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION ds_individual_spell - STR_VAR file="" new_op="" p1="" p2="" clone_op="" tick="" type="" -BEGIN - -<<<<<<<< .../inlined/ds/dw#individual.2da -%file% %new_op% %p1% %p2% %clone_op% %tick% %type% ->>>>>>>> - - LAF detectable_spells INT_VAR fix_khelben=0 fix_old_ds=0 STR_VAR table=".../inlined/ds/dw#individual.2da" END - -END - - - - - - - - - - - - - - - diff --git a/iwdification/dw/lib/elemental_summoning.tpa b/iwdification/dw/lib/elemental_summoning.tpa deleted file mode 100644 index 0f65c70..0000000 --- a/iwdification/dw/lib/elemental_summoning.tpa +++ /dev/null @@ -1,231 +0,0 @@ -DEFINE_ACTION_FUNCTION elemental_summoning -BEGIN - - /////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////// - // Removes elemental-battle from elemental-summoning spells. - // - // MODIFIED version of SCS one that works on dw_iwdspells conversion - /////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////// - - // this is the filename for the water elemental CRE - - OUTER_SPRINT water_cre es8watr - - ACTION_DEFINE_ASSOCIATIVE_ARRAY elem_desc_map BEGIN // TRA location of the descriptions of the L6 spells - EARTH=>3 - AIR=>5 - FIRE=>4 - WATER=>6 - END - - // this points to the "Conjure Lesser [x] Elemental" strings (we have to introduce water) - ACTION_IF GAME_IS "bg2ee eet" BEGIN - ACTION_DEFINE_ASSOCIATIVE_ARRAY lesser_elem_name_map BEGIN - AIR=>24827 - EARTH=>24829 - FIRE=>24830 - END - END ELSE BEGIN - ACTION_DEFINE_ASSOCIATIVE_ARRAY lesser_elem_name_map BEGIN - AIR=>26540 - EARTH=>26542 - FIRE=>26530 - END - END - OUTER_SET $lesser_elem_name_map("WATER")=RESOLVE_STR_REF (@7) - - // this points to the names for the various sorts of water elemental - - COPY_EXISTING "%water_cre%.cre" "%workspace%" - SET $water_elem_names("STANDARD")=LONG_AT NAME1 - BUT_ONLY - OUTER_SET $water_elem_names("GREATER")=73479 - OUTER_SET $water_elem_names("ELDER")= RESOLVE_STR_REF (@8) - OUTER_SET $water_elem_names("LESSER")= RESOLVE_STR_REF (@9) - - // this is the "conjure water elemental" string - - COPY_EXISTING "%WIZARD_CONJURE_LESSER_WATER_ELEMENTAL%.spl" "%workspace%" - SET conjure_water_strref=LONG_AT NAME1 - BUT_ONLY - - /////////////////////////////////////////////////////////////// - // remove elemental-summoning overlay from summoned creatures - /////////////////////////////////////////////////////////////// - - ACTION_FOR_EACH creature IN elairsu2 elairsu3 elairsu4 elearsu1 elearsu2 elearsu3 elearsu4 elfirsu1 elfirsu2 elfirsu3 elfirsu4 BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%creature%.cre" BEGIN - COPY_EXISTING "%creature%.cre" override - REPLACE_TEXTUALLY "wizelsum" "" (8) - REPLACE_TEXTUALLY "wizelsu2" "" (8) - BUT_ONLY - END - END - - /////////////////////////////////////////////////////////////// - // change summoning effects so that allegiance matches summoner - /////////////////////////////////////////////////////////////// - - ACTION_FOR_EACH effect IN speart1 speart2 speart3 splesear spfir1 spfir2 spfir3 splesfir spair1 spair2 spair3 splesair BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%effect%.eff" BEGIN - COPY_EXISTING "%effect%.eff" override - WRITE_LONG 0x20 0 - BUT_ONLY - END - END - - /////////////////////////////////////////////////////////////// - // edit the L6 spells to change the descriptions and remove the mental-battle opcodes - /////////////////////////////////////////////////////////////// - - ACTION_FOR_EACH key IN EARTH AIR FIRE BEGIN - OUTER_SET strref=$elem_desc_map("%key%") - OUTER_SPRINT spellname "WIZARD_CONJURE_%key%_ELEMENTAL" - OUTER_SPRINT scrollname "%spellname%_SCROLL" - OUTER_SPRINT spell EVAL "%%spellname%%" - OUTER_SPRINT scroll EVAL "%%scrollname%%" - LAF remove_elemental_battle INT_VAR strref STR_VAR spell scroll END - END - - /////////////////////////////////////////////////////////////// - // rename the L5 spells back to Lesser - /////////////////////////////////////////////////////////////// - - ACTION_FOR_EACH key IN EARTH AIR FIRE WATER BEGIN - OUTER_SPRINT spellname "WIZARD_CONJURE_LESSER_%key%_ELEMENTAL" - OUTER_SPRINT scrollname "WIZARD_CONJURE_LESSER_%key%_ELEMENTAL_SCROLL" - OUTER_SPRINT spell EVAL "%%spellname%%" - OUTER_SPRINT scroll EVAL "%%scrollname%%" - OUTER_SET new_name_strref=$lesser_elem_name_map("%key%") - ACTION_GET_STRREF new_name_strref new_name - COPY_EXISTING "%spell%.spl" override - READ_STRREF NAME1 old_name - READ_STRREF 0x50 old_desc - INNER_PATCH_SAVE new_desc "%old_desc%" BEGIN - REPLACE_TEXTUALLY "%old_name%" "%new_name%" - END - SET new_desc_strref=RESOLVE_STR_REF ("%new_desc%") - WRITE_LONG 0x50 new_desc_strref - WRITE_LONG NAME1 new_name_strref - BUT_ONLY - COPY_EXISTING "%scroll%.itm" override - WRITE_LONG DESC new_desc_strref - WRITE_LONG NAME2 new_name_strref - BUT_ONLY - END - - /////////////////////////////////////////////////////////////// - // clone air-elemental summoning to make a water version - // (space here to tweak the CRE files for originality) - /////////////////////////////////////////////////////////////// - - // the spell - - OUTER_SET name=conjure_water_strref - OUTER_SET desc=$elem_desc_map("WATER") - OUTER_SPRINT water_icon "%WIZARD_CONJURE_LESSER_WATER_ELEMENTAL%" - - OUTER_SPRINT template "%WIZARD_CONJURE_AIR_ELEMENTAL%" - COPY_EXISTING "%template%.spl" "%workspace%" - - ADD_SPELL "%workspace%/%template%.spl" 2 6 WIZARD_CONJURE_WATER_ELEMENTAL - WRITE_LONG NAME1 name - SAY 0x50 (AT desc) - REPLACE_TEXTUALLY SPAIR1 DW#WAT1 (8) - REPLACE_TEXTUALLY SPAIR2 DW#WAT2 (8) - REPLACE_TEXTUALLY SPAIR3 DW#WAT3 (8) - REPLACE_TEXTUALLY CASE_INSENSITIVE SPWI621B "%water_icon%B" (8) - REPLACE_TEXTUALLY CASE_INSENSITIVE SPWI621C "%water_icon%C" (8) - - // the scroll (uses an install_iwd_spell_resources function) - - OUTER_SPRINT scroll_old "%WIZARD_CONJURE_AIR_ELEMENTAL_SCROLL%" - LAF find_scroll_slot RET scroll_slot END - OUTER_SPRINT scroll_new "SCRL%scroll_slot%" - COPY_EXISTING "%scroll_old%.ITM" "override/%scroll_new%.ITM" - WRITE_LONG NAME2 name - SAY DESC (AT desc) - REPLACE_TEXTUALLY CASE_INSENSITIVE SPWI621A "%water_icon%A" (8) - REPLACE_TEXTUALLY CASE_INSENSITIVE SPWI621B "%water_icon%B" (8) - REPLACE_TEXTUALLY CASE_INSENSITIVE SPWI621C "%water_icon%C" (8) - BUT_ONLY - - COPY_EXISTING_REGEXP GLOB ".*\.sto" override - PATCH_IF INDEX_BUFFER ("%scroll_old%")>=0 BEGIN - GET_OFFSET_ARRAY offset_array STO_V10_ITEMS_SOLD - PHP_EACH offset_array AS key=>offset_base BEGIN - LPF STO_read_item_resource STR_VAR offset_base RET item_resref=value END - PATCH_IF "%item_resref%" STRING_EQUAL_CASE "%scroll_old%" BEGIN - LPF STO_read_item_num_in_stock STR_VAR offset_base RET number_in_stock=value END - END - END - ADD_STORE_ITEM "%scroll_new%" AFTER "%scroll_old%" #1 #0 #0 "IDENTIFIED" (number_in_stock) - END - BUT_ONLY - - // the EFF files - - COPY_EXISTING "SPAIR1.EFF" "override/DW#WAT1.EFF" WRITE_ASCIIE 0x30 DW#WATE2 (8) - COPY_EXISTING "SPAIR2.EFF" "override/DW#WAT2.EFF" WRITE_ASCIIE 0x30 DW#WATE3 (8) - COPY_EXISTING "SPAIR3.EFF" "override/DW#WAT3.EFF" WRITE_ASCIIE 0x30 DW#WATE4 (8) - - // the CRE files - - // get the CLASS and ANIMATION entries from the water elemental; rename while we're at it - - COPY_EXISTING "%water_cre%.cre" override - READ_LONG 0x28 anim - READ_BYTE 0x273 class - SET temp=$water_elem_names("LESSER") - WRITE_LONG 0x8 temp - WRITE_LONG 0xc temp - BUT_ONLY - ACTION_DEFINE_ASSOCIATIVE_ARRAY air_elem BEGIN - STANDARD=>ELAIRSU2 - GREATER=>ELAIRSU3 - ELDER=>ELAIRSU4 - END - ACTION_DEFINE_ASSOCIATIVE_ARRAY water_elem BEGIN - STANDARD=>DW#WATE2 - GREATER=>DW#WATE3 - ELDER=>DW#WATE4 - END - ACTION_PHP_EACH air_elem AS key=>oldcre BEGIN - OUTER_SPRINT newcre $water_elem("%key%") - OUTER_SET name=$water_elem_names("%key%") - COPY_EXISTING "%oldcre%.cre" "override/%newcre%.cre" - WRITE_LONG 0x28 anim - WRITE_BYTE 0x273 class - WRITE_LONG NAME1 name - WRITE_LONG NAME2 name - BUT_ONLY - END - - -END // end of main function - - /////////////////////////////////////////////////////////////// - // helper functions - /////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION remove_elemental_battle - INT_VAR strref=0 - STR_VAR scroll="" - spell="" -BEGIN - COPY_EXISTING "%spell%.spl" override - PATCH_FOR_EACH opcode_to_delete IN 165 215 142 BEGIN - LPF DELETE_SPELL_EFFECT INT_VAR opcode_to_delete END - END - SAY 0x50 (AT strref) - BUT_ONLY - COPY_EXISTING "%scroll%.itm" override - SAY 0x50 (AT strref) - BUT_ONLY - -END - - diff --git a/iwdification/dw/lib/get_iwd_spell_bams.tpa b/iwdification/dw/lib/get_iwd_spell_bams.tpa deleted file mode 100644 index 67bc5bf..0000000 --- a/iwdification/dw/lib/get_iwd_spell_bams.tpa +++ /dev/null @@ -1,15 +0,0 @@ -DEFINE_ACTION_FUNCTION get_iwd_spell_bams STR_VAR file="" BEGIN - - LAF read_in_list STR_VAR file locbase="%iwdspells_data%" RET list END - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - LAF deabbreviate_spellname STR_VAR input="%entry%" RET spellname END - LAF get_spellcode STR_VAR input="%entry%" RET resref=value END - ACTION_FOR_EACH letter IN A B C BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%resref%%letter%.bam" BEGIN - COPY_EXISTING "%resref%%letter%.bam" "%resource_loc%/bam/%spellname%_ANIMATION_%letter%.bam" - END - END - END - -END diff --git a/iwdification/dw/lib/get_iwd_spell_resources.tpa b/iwdification/dw/lib/get_iwd_spell_resources.tpa deleted file mode 100644 index 1de1e2a..0000000 --- a/iwdification/dw/lib/get_iwd_spell_resources.tpa +++ /dev/null @@ -1,375 +0,0 @@ -DEFINE_ACTION_FUNCTION get_iwd_spell_resources INT_VAR CMW_string=0 STR_VAR file="" resref_list="" smtables_list="" proj_list="" location="" locbase="" locabs="" BEGIN - - - // generate list of IWD resources not in BG2 - - LAF spell_comparison END - - // read in that list - - COPY "%workspace%/spells_not_in_bg2.txt" "%workspace%" - READ_2DA_ENTRIES_NOW not_in_bg2_arr 2 - FOR (i=0;i>>>>>>> - ACTION_IF !FILE_EXISTS "%resource_loc%/spells_used.2da" BEGIN - COPY ".../stratagems-inline/spells_used.2da" "%resource_loc%" - END - - // quick ad hoc recording of strings needed - - ACTION_IF CMW_string BEGIN - LAF log_this STR_VAR file=strings_used.txt input="119397" END // Cure Moderate Wounds temple string - END - - // main install - - LAF read_in_list STR_VAR file location locbase locabs RET list END - LAF return_first_entry STR_VAR list RET list END // discard first entry - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET spell=entry list END - PRINT "Processing %spell%" - LAF deabbreviate_spellname STR_VAR input="%spell%" RET spellname END - MKDIR "%resource_loc%/%spellname%" - LAF get_spellcode STR_VAR input="%spell%" RET resref=value END - OUTER_SPRINT SFO_reserved_spell_here "%resref%" - LAF log_this STR_VAR locabs="%resource_loc%" file="%resref_list%" input="%spellname% %resref%" END - ACTION_IF VARIABLE_IS_SET "%spellname%_SCROLL" BEGIN - COPY_EXISTING "%%spellname%_SCROLL%.itm" "%resource_loc%/%spellname%" - LPF apply_to_strrefs STR_VAR arguments=log_strref filename=EVAL "%%spellname%_SCROLL%" file_ext=itm END - OUTER_SPRINT to_check EVAL "%%spellname%_SCROLL%.itm" - END ELSE BEGIN - ACTION_IF VARIABLE_IS_SET $iterate_override("%spellname%") BEGIN - OUTER_SPRINT file $iterate_override("%spellname%") - OUTER_INNER_PATCH_SAVE file_resref "%file%" BEGIN - READ_ASCII (BUFFER_LENGTH - 3) ext (3) - DELETE_BYTES (BUFFER_LENGTH - 4) 4 - END - COPY_EXISTING "%file%" "%resource_loc%/%spellname%" - LPF apply_to_strrefs STR_VAR arguments=log_strref filename="%file_resref%" file_ext="%ext%" END - OUTER_SPRINT to_check "%file%" - END ELSE BEGIN - COPY_EXISTING "%resref%.spl" "%resource_loc%/%spellname%" - LPF apply_to_strrefs STR_VAR arguments=log_strref filename="%resref%" file_ext="spl" END - OUTER_SPRINT to_check "%resref%.spl" - END - END - LAF iter_resource INT_VAR skip_payload_on_ignore=1 STR_VAR to_check func=iterfunc_get_resources ignore_func=ignore_wrapper immunity_func=iterfunc_log_immunities END - - END // end of copy routine - - PRINT "Finished main resource collection, doing residual tasks" - // manual edits go here - - // get entries for SMTABLES - - ACTION_IF FILE_EXISTS "%workspace%/smtable_entries.2da" BEGIN - PRINT "blook! %smtables_list%" - COPY "%workspace%/smtable_entries.2da" "%resource_loc%/%smtables_list%" - END - - -END - -DEFINE_PATCH_FUNCTION log_strref STR_VAR offset=0 filename="" file_ext="" BEGIN - READ_LONG offset strref - SET strref=strref+100000 // slightly hacky way to ensure no strref is a substring of another - LPF log_this STR_VAR file="strings_used.txt" input="%strref%" repeat="no" END -END - -DEFINE_ACTION_FUNCTION iterfunc_log_immunities STR_VAR resref="" resref_ext="" source="" source_ext="" -// we only care about spells, only if they're in the spell.ids, and only if they're not in BG(2)EE -BEGIN - ACTION_IF "%resref_ext%" STRING_EQUAL_CASE SPL BEGIN - ACTION_MATCH "%resref%" WITH - "SPIN[0-9]+" "SPWI[0-9]+" "SPPR[0-9]+" BEGIN - ACTION_TO_UPPER resref - ACTION_IF VARIABLE_IS_SET $not_in_bg2("%resref%") BEGIN - OUTER_SPRINT idsname $not_in_bg2("%resref%") - ACTION_IF "%source_ext%" STRING_EQUAL_CASE "SPL" BEGIN - LAF return_spellname STR_VAR resref="%source%" RET source=spellname END - END - LAF log_this STR_VAR file="spells_used.2da" locabs="%resource_loc%" input="%resref% %idsname% %source% %source_ext%" repeat=no END - END - END - - DEFAULT - END - - - END -END - -DEFINE_ACTION_FUNCTION iterfunc_get_resources // slight violation of encapsulation: we assume access to "%spellname%" - STR_VAR resref="" - ext="" - parent="" - RET output - BEGIN - OUTER_SPRINT output "" - OUTER_SET copy=1 - ACTION_MATCH "%ext%" WITH - pro BEGIN - // log this projectile - OUTER_SET pronum=IDS_OF_SYMBOL (projectl "%resref%") - LAF log_this STR_VAR file="%proj_list%" locabs="%resource_loc%" input="%resref% %pronum%" END - END - wav BEGIN - OUTER_PATCH "%resref%" BEGIN - READ_ASCII 0x0 start (4) - END - ACTION_MATCH "%start%" WITH - EFF_ AFT_ TRA_ BEGIN - OUTER_SET copy=0 - END - DEFAULT END - END - DEFAULT END - ACTION_IF copy BEGIN - // check if this needs renaming - ACTION_TO_UPPER resref - ACTION_TO_UPPER ext - ACTION_IF VARIABLE_IS_SET $file_renames("%resref%" "%ext%") BEGIN - OUTER_SPRINT resref_new $file_renames("%resref%" "%ext%") - OUTER_SPRINT copy_name "%resref_new%.%ext%" - COPY "%resource_loc%/%spellname%/%parent%" "%resource_loc%/%spellname%" - REPLACE_TEXTUALLY CASE_INSENSITIVE "%resref%" "%resref_new%" (8) - END ELSE BEGIN - OUTER_SPRINT copy_name "%resref%.%ext%" - END - ACTION_IF FILE_EXISTS_IN_GAME "%resref%.%ext%" BEGIN - ACTION_MATCH "%ext%" WITH - BCS BEGIN - COPY_EXISTING "%resref%.%ext%" "%resource_loc%/%spellname%/%resref%.BAF" - DECOMPILE_BCS_TO_BAF - END - DEFAULT - COPY_EXISTING "%resref%.%ext%" "%resource_loc%/%spellname%/%copy_name%" - LPF apply_to_strrefs STR_VAR arguments=log_strref filename="%resref%" file_ext="%ext%" END - END - END ELSE BEGIN - LAF warning STR_VAR warning="%resref%.%ext% missing (used by %parent%; relevant to %spellname%)" END - END - END -END - - -DEFINE_ACTION_FUNCTION process_tra_entries - INT_VAR make_lookup=1 - STR_VAR tra="" lookup="" -BEGIN - OUTER_SPRINT traloc "%resource_loc%/tra/%tra%" - ACTION_IF !FILE_EXISTS "%traloc%" BEGIN - COPY ".../stratagems-inline/blank" "%traloc%" - END - ACTION_IF make_lookup BEGIN - OUTER_SPRINT lookuploc "%resource_loc%/%lookup%" - ACTION_IF !FILE_EXISTS "%lookuploc%" BEGIN - COPY ".../stratagems-inline/blank" "%lookuploc%" - END - END - LAF read_in_list STR_VAR file=strings_used.txt locabs="%workspace%" RET list END - OUTER_SET tra_ind=1 - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET strref=entry list END - OUTER_SET strref=strref - 100000 // reverse the transformation in log_strref - ACTION_IF !VARIABLE_IS_SET $processed("%strref%") BEGIN - ACTION_GET_STRREF strref temp - OUTER_SPRINT $tra_output("%strref%") "%atsymbol%%tra_ind%=~%temp%~" - OUTER_SPRINT $tra_map("%strref%") "%tra_ind%" - OUTER_SET tra_ind +=1 - OUTER_SET $processed("%strref%")=1 - END - END - COPY_EXISTING "%traloc%" "%traloc%" - PHP_EACH tra_output AS null=>line BEGIN - INSERT_2DA_ROW 0 0 "%line%" - END - BUT_ONLY - ACTION_IF make_lookup BEGIN - COPY_EXISTING "%lookuploc%" "%lookuploc%" - PHP_EACH tra_map AS strref=>tra_ind BEGIN - INSERT_2DA_ROW 0 0 "%strref% %tra_ind%" - END - BUT_ONLY - END -END - -DEFINE_ACTION_FUNCTION process_tra_entries_all -BEGIN - ACTION_IF get_all_languages BEGIN - ACTION_FOR_EACH language IN cs_CZ de_DE en_US es_ES fr_FR it_IT ko_KR pl_PL ru_RU tr_TR BEGIN // current list of IWD languages - ACTION_IF !("%language%" STRING_EQUAL_CASE "%EE_LANGUAGE%") BEGIN // do your current language last, so WEIDU doesn't save your change - MKDIR "%resource_loc%/tra/%language%" - COPY ".../stratagems-inline/blank" "%resource_loc%/tra/%language%/iwdspells.tra" - AT_NOW "setup-%scsroot% %scsroot%\%iwdspells_lib%\process_strref.tp2 --no-auto-tp2 --use-lang %language% --force-install 1000 --yes" - END - END - AT_NOW "setup-%scsroot% --no-auto-tp2 --use-lang %EE_LANGUAGE% --yes" - END - LAF include STR_VAR file=get_iwd_spell_resources.tpa location="%iwdspells_lib%" END - LAF process_tra_entries STR_VAR tra="%EE_LANGUAGE%/iwdspells.tra" lookup="iwd_strref.txt" END - -END - -// Ignore any SPIN/SPWI/SPPR - EXCEPT if it's the spell itself (we violate encapsulation here) - -DEFINE_ACTION_FUNCTION ignore_wrapper - STR_VAR resref="" - ext="" - parent="" - RET value -BEGIN - // check the list - OUTER_SPRINT file "%resref%.%ext%" - ACTION_TO_UPPER file - ACTION_IF VARIABLE_IS_SET $do_not_copy("%file%") BEGIN - OUTER_SET value=1 - END ELSE BEGIN - LAF ignore_spell_entries STR_VAR resref ext parent RET value END - END -END - - -DEFINE_ACTION_FUNCTION ignore_spell_entries - STR_VAR resref="" - ext="" - parent="" - RET value -BEGIN - OUTER_SET value=0 - ACTION_IF ("%ext%" STRING_EQUAL_CASE "spl" && "%resref%" STRING_COMPARE_CASE "%SFO_reserved_spell_here%") BEGIN - // hardcoded list of BG2 resources we don't care about - ACTION_MATCH "%resref%" WITH - SPRA301 "SPWM.*" "SPWISH.*" - BEGIN - OUTER_SET value=1 - END - DEFAULT - ACTION_MATCH "%resref%" WITH - "SPIN[0-9]+" "SPWI[0-9]+" "SPPR[0-9]+" BEGIN - OUTER_SET value=1 - ACTION_TO_UPPER resref - ACTION_IF VARIABLE_IS_SET $not_in_bg2("%resref%") BEGIN - OUTER_SPRINT idsname $not_in_bg2("%resref%") - OUTER_INNER_PATCH_SAVE parent_resref "%parent%" BEGIN - READ_ASCII (BUFFER_LENGTH - 3) ext (3) - DELETE_BYTES (BUFFER_LENGTH - 4) 4 - END - ACTION_IF "%ext%" STRING_EQUAL_CASE SPL BEGIN - LAF return_spellname STR_VAR resref="%parent_resref%" RET spellname END - OUTER_SPRINT parent_resref "%spellname%" - END - LAF log_this STR_VAR file="spells_used.2da" locabs="%resource_loc%" input="%resref% %idsname% %parent_resref% %ext%" repeat=no END - END - END - DEFAULT - OUTER_SET value=0 - END - END - END -END - -// macro to work out which resources aren't in BG(2)EE and which might have different names - -DEFINE_ACTION_FUNCTION spell_comparison -BEGIN - ACTION_IF !FILE_EXISTS "%workspace%/spells_not_in_bg2.txt" BEGIN - COPY_EXISTING "spell.ids" "%workspace%" - READ_2DA_ENTRIES_NOW iwdspl_array 2 - FOR (i=1;iidscode BEGIN - ACTION_IF !VARIABLE_IS_SET $bg2_ids_array("%spell%") BEGIN - LAF idscode_to_spell INT_VAR idscode RET resref END - ACTION_TO_UPPER resref - LAF log_this STR_VAR file="spells_not_in_bg2.txt" input="%resref% %spell%" END - END ELSE BEGIN - OUTER_SET idscode_bg2 = $bg2_ids_array("%spell%") - ACTION_IF !idscode=idscode_bg2 BEGIN - LAF log_this STR_VAR file="spell_ids_mismatch.txt" input="%spell%" END // as there aren't any mismatches as of 2.5, we don't actually do anything with this data - END - END - END - END -END diff --git a/iwdification/dw/lib/install_iwd_spell_bams.tpa b/iwdification/dw/lib/install_iwd_spell_bams.tpa deleted file mode 100644 index 418dec0..0000000 --- a/iwdification/dw/lib/install_iwd_spell_bams.tpa +++ /dev/null @@ -1,18 +0,0 @@ -DEFINE_ACTION_FUNCTION install_iwd_spell_bams STR_VAR file="" install_loc="" BEGIN - - LAF read_in_list STR_VAR file locbase="%iwdspells_data%" RET list END - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - LAF deabbreviate_spellname STR_VAR input="%entry%" RET spellname END - LAF get_spellcode STR_VAR input="%entry%" RET resref=value END - ACTION_FOR_EACH letter IN A B C BEGIN - ACTION_IF FILE_EXISTS "%resource_loc%/bam/%spellname%_ANIMATION_%letter%.bam" BEGIN - PRINT "copying to %install_loc%/%resref%%letter%.bam" - COPY "%resource_loc%/bam/%spellname%_ANIMATION_%letter%.bam" "%install_loc%/%resref%%letter%.bam" - ACTION_IF (!do_not_biff && FILE_EXISTS "override/%resref%%letter%.bam") BEGIN - DELETE "override/%resref%%letter%.bam" - END - END - END - END -END diff --git a/iwdification/dw/lib/install_iwd_spell_resources.tpa b/iwdification/dw/lib/install_iwd_spell_resources.tpa deleted file mode 100644 index 667c30e..0000000 --- a/iwdification/dw/lib/install_iwd_spell_resources.tpa +++ /dev/null @@ -1,535 +0,0 @@ -DEFINE_ACTION_FUNCTION install_iwd_spell_resources - STR_VAR scroll_shadow_list="" - smtables_list="" - spell_list="" - proj_list="" - smtables_list="" - tra="" lookup="" - location="" - locbase="" - locabs="" - biff="" - bam_copy="" - green_bams="" - afterwards="" - afterwards_tra="" - ds="" -BEGIN - - - ACTION_IF "%scroll_shadow_list%" STRING_EQUAL "" BEGIN - OUTER_SET macro_spellcode_skip_scrolls=1 - END - OUTER_SET macro_spellcodes_read=0 - LAM read_in_spellcodes - - - // initialise scroll finder - OUTER_SPRINT scroll_slot "00" - - ACTION_IF do_not_biff BEGIN - OUTER_SPRINT install_loc override - END ELSE BEGIN - OUTER_SPRINT install_loc "%workspace%/%biff%" - MKDIR "%install_loc%" - END - - // install animations - - LAF check_label STR_VAR label="dw#iwd_anim" RET value END - ACTION_IF !value BEGIN - LAF make_label STR_VAR label="dw#iwd_anim" END - MAKE_BIFF "dw#idani" BEGIN "%resource_loc%/anim/bam" ".*\.*" END - MAKE_BIFF "dw#idawv" BEGIN "%resource_loc%/anim/wav" ".*\.*" END - END - - // read in files we're allowed to overwrite - - LAF read_in_list STR_VAR file="resource_overwrite.2da" location="%iwdspells_data%" RET list END - OUTER_WHILE "%list%" STRING_COMPARE_CASE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - ACTION_TO_UPPER entry - OUTER_SET $overwrite_me("%entry%")=1 - END - - PRINT "Resolving animation reallocations" - - // get a list of which IWD animations are missing in BG(2)EE - - ACTION_IF !(FILE_EXISTS "%workspace%/missing_animations.2da") BEGIN - LAF run STR_VAR file=audit_animations location="%iwdspells_lib%" END - END - ACTION_IF FILE_EXISTS "%workspace%/missing_animations.2da" BEGIN // theoretically it might still not exist because every animation has been added! - COPY "%workspace%/missing_animations.2da" "%workspace%" - READ_2DA_ENTRIES_NOW missing_anim_array 1 - FOR (i=0;i %value_number%, corresponding to %key%=>%value" - END - - PRINT "Resolving TRA entries" - - // load in and resolve the tra entries - - ACTION_IF FILE_EXISTS "%resource_loc%/tra/%EE_LANGUAGE%/%tra%" BEGIN - OUTER_SPRINT tra_file "%resource_loc%/tra/%EE_LANGUAGE%/%tra%" - END ELSE BEGIN - OUTER_SPRINT tra_file "%resource_loc%/tra/en_us/%tra%" - END - - WITH_TRA "%tra_file%" BEGIN - COPY_EXISTING "%resource_loc%/%lookup%" "%workspace%" - READ_2DA_ENTRIES_NOW tra_entries 2 - FOR (i=0;i=4 BEGIN - READ_ASCII 0x0 is_sc (2) - READ_ASCII 0x0 is_spl_prefix (4) - PATCH_IF ("%is_sc%" STRING_EQUAL_CASE "SC" || "%is_spl_prefix%" STRING_EQUAL_CASE sppr || "%is_spl_prefix%" STRING_EQUAL_CASE spwi) BEGIN - SET is_a_scroll=1 - END - END - END - END - ACTION_IF is_a_scroll BEGIN - ACTION_IF (overwrite && VARIABLE_IS_SET "%spellname%_SCROLL") BEGIN - OUTER_SPRINT new_resref EVAL "%%spellname%_SCROLL%" - END ELSE BEGIN - LAF find_scroll_slot STR_VAR scroll_slot RET scroll_slot END - OUTER_SPRINT new_resref "SCRL%scroll_slot%" - END - OUTER_SPRINT "%spellname%_SCROLL" "%new_resref%" - END - ACTION_IF ("%BASH_FOR_EXT%" STRING_EQUAL_CASE itm && INDEX ("dw#scr" "%BASH_FOR_RES%")>=0 && overwrite && VARIABLE_IS_SET "%spellname%_SCROLL") BEGIN - OUTER_SPRINT new_resref EVAL "%%spellname%_SCROLL%" - END - // do a namespace-conflict sanity check - OUTER_SET sanity_check_fail=0 - OUTER_SPRINT new_filename "%new_resref%.%BASH_FOR_EXT%" - ACTION_TO_UPPER new_filename - ACTION_IF FILE_EXISTS_IN_GAME "%new_filename%" && !is_a_scroll && !(VARIABLE_IS_SET $resource_copied_over("%new_resref%" "%BASH_FOR_EXT%")) BEGIN - // looks like namespace conflict... - OUTER_SET sanity_check_fail=1 - // ...but we don't care if we're overwriting and it's the spell's actual name, or a BAM file - ACTION_IF overwrite && !("%new_resref%" STRING_MATCHES_REGEXP "%new_spell_resref%.*") BEGIN - OUTER_SET sanity_check_fail=0 - END - ACTION_IF sanity_check_fail BEGIN - // otherwise, see if files are actually different - COPY_EXISTING "%new_filename%" "%workspace%" - READ_ASCII 0x0 checksum_1 (BUFFER_LENGTH) - BUT_ONLY - COPY "%resource_loc%/%spellname%/%BASH_FOR_FILE%" "%workspace%" - READ_ASCII 0x0 checksum_2 (BUFFER_LENGTH) - BUT_ONLY - ACTION_IF "%checksum_1%" STRING_EQUAL "%checksum_2%" BEGIN - OUTER_SET sanity_check_fail=0 - OUTER_SET $resource_copied_over("%new_resref%" "%BASH_FOR_EXT%")=1 - END - END - // look to see if this file is marked to overwrite - ACTION_IF VARIABLE_IS_SET $overwrite_me("%new_filename%") BEGIN - OUTER_SET sanity_check_fail=0 - END - // otherwise - ACTION_IF sanity_check_fail BEGIN - ACTION_IF !VARIABLE_IS_SET $namespace_conflict("%new_filename%") BEGIN - LAF warning STR_VAR warning="Not installing resource %new_filename% for %spellname%: namespace conflict" END - OUTER_SET $namespace_conflict("%new_filename%")=1 - END - END - - END - ACTION_IF !sanity_check_fail BEGIN - ACTION_IF !VARIABLE_IS_SET $resource_copied_over("%new_resref%" "%BASH_FOR_EXT%") BEGIN - OUTER_SET $resource_copied_over("%new_resref%" "%BASH_FOR_EXT%")=1 - ACTION_IF FILE_EXISTS "override/%new_resref%.%BASH_FOR_EXT%" &!do_not_biff BEGIN // if it's already in the override, delete it - DELETE "override/%new_resref%.%BASH_FOR_EXT%" - END - COPY "%resource_loc%/%spellname%/%BASH_FOR_FILE%" "%install_loc%/%new_resref%.%BASH_FOR_EXT%" - REPLACE_TEXTUALLY "%old_spell_resref%" "%new_spell_resref%" - LPF apply_to_strrefs STR_VAR arguments=strref_updater filename="%BASH_FOR_RES%" file_ext="%BASH_FOR_EXT%" END - // sort out projectiles and summons - ACTION_MATCH "%BASH_FOR_EXT%" WITH - spl itm BEGIN - MAKE_PATCH - patch_ability_inline=>"projectile=>~projectile in adjust_projectile_number~" - patch_effect_inline=>"match=>opcode=331 parameter2=>~parameter2 in summons_swap~" - END - LAF edit_whatever STR_VAR file="%new_resref%.%BASH_FOR_EXT%" locabs="%install_loc%" edits=patch_data END - END - pro BEGIN - COPY "%install_loc%/%new_resref%.%BASH_FOR_EXT%" "%workspace%" - PATCH_IF BUFFER_LENGTH>0x200 BEGIN - SET extended=1 - END ELSE BEGIN - SET extended=0 - END - BUT_ONLY - ACTION_IF extended BEGIN - MAKE_PATCH - explosion_pro=>"explosion_pro in adjust_projectile_number" - secondary_pro=>"secondary_pro in adjust_projectile_number" - END - LAF edit_pro STR_VAR pro="%new_resref%" locabs="%install_loc%" edits=patch_data END - END - END - cre BEGIN - MAKE_PATCH - animation_code=>"animation_code in animation_swap" - END - LAF edit_creature STR_VAR creature="%new_resref%" locabs="%install_loc%" edits=patch_data END - END - DEFAULT END - // end of copy - END - END - END - END - END - - // compile any scripts (do this last, so new entries have a chance to get into spell.ids) - - CLEAR_IDS_MAP - ACTION_BASH_FOR "%install_loc%" ".*\.baf" BEGIN - COPY "%BASH_FOR_FILESPEC%" "%install_loc%/%BASH_FOR_RES%.BCS" - COMPILE_BAF_TO_BCS - DELETE "%BASH_FOR_FILESPEC%" - END - - // if relevant, install scrolls - - ACTION_IF "%scroll_shadow_list%" STRING_COMPARE "" BEGIN - LAF install_scrolls STR_VAR scroll_shadow_list END - END - - // greenify - - ACTION_IF "%bam_copy%" STRING_COMPARE_CASE "" BEGIN - LAF include STR_VAR file=install_iwd_spell_bams.tpa location="%iwdspells_lib%" END - LAF install_iwd_spell_bams STR_VAR file="%bam_copy%" install_loc END - END - - ACTION_IF "%green_bams%" STRING_COMPARE_CASE "" BEGIN - LAF include STR_VAR file=make_bams_green.tpa location="%iwdspells_lib%" END - LAF make_bams_green STR_VAR file="%green_bams%" install_loc END - END - - // make BIFF - - ACTION_IF !do_not_biff BEGIN - MAKE_BIFF "%biff%" BEGIN "%install_loc%" ".*\.*" END - END - - // sort out remaps (needs to happen AFTER biff so files are in-game - this is the price of having separate divine, arcane components) - - LAF process_table STR_VAR function=remap_spell_resrefs_helper table="spells_used.2da" locabs="%resource_loc%" END - - // manual tasks - - ACTION_IF "%afterwards%" STRING_COMPARE_CASE "" BEGIN - ACTION_IF "%afterwards_tra%" STRING_COMPARE_CASE "" BEGIN - ACTION_IF FILE_EXISTS "%scsroot%/iwdspells_trabase%/%LANGUAGE%/%afterwards_tra%" BEGIN - OUTER_SPRINT tra "%scsroot%/%iwdspells_trabase%/%LANGUAGE%/%afterwards_tra%" - END ELSE BEGIN - OUTER_SPRINT tra "%scsroot%/%iwdspells_trabase%/english/%afterwards_tra%" - END - END ELSE BEGIN - OUTER_SPRINT tra "" - END - LAF include STR_VAR file="%afterwards%.tpa" location="%iwdspells_lib%" END - LAF "%afterwards%" STR_VAR tra END - END - - // Detectable spells - - ACTION_IF "%ds%" STRING_COMPARE_CASE "" BEGIN - INCLUDE "%scsroot%/%iwdspells_lib%/ds.tph" - LAF detectable_spells INT_VAR fix_khelben = 0 fix_old_ds = 0 STR_VAR table="%scsroot%/%ds%.2da" END - END - - // tidy up - - LAF sort_spell_ids END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION strref_updater STR_VAR offset=0 BEGIN - READ_LONG offset old - PATCH_IF VARIABLE_IS_SET $strref_map("%old%") BEGIN - SET new=$strref_map("%old%") - WRITE_LONG offset new - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION adjust_projectile_number - STR_VAR arguments=0 RET value -BEGIN - SET arguments -=1 - PATCH_IF VARIABLE_IS_SET $proj_map("%arguments%") BEGIN - SET value = $proj_map("%arguments%") + 1 - END ELSE BEGIN - SET value = arguments + 1 - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION summons_swap - STR_VAR arguments=0 RET value -BEGIN - PATCH_IF VARIABLE_IS_SET $smtables_map("%arguments%") BEGIN - SPRINT value $smtables_map("%arguments%") - END ELSE BEGIN - SPRINT value "%arguments%" - LPF warning STR_VAR warning="failed to recognise a swap for summons code %arguments%" END - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION animation_swap - STR_VAR arguments=0 RET value -BEGIN - PATCH_IF VARIABLE_IS_SET $anim_map("%arguments%") BEGIN - SET value=$anim_map("%arguments%") - END ELSE BEGIN - arguments +=1 // to force number - PATCH_IF VARIABLE_IS_SET $anim_missing("%arguments%") BEGIN - LOOKUP_IDS_SYMBOL_OF_INT anim_name animate arguments - SPRINT warning_string "Warning: animation %anim_name% does not exist in game. Reverting to MINOTAUR, which may look weird" - LPF warning STR_VAR warning="%warning_string%" END - SET value=0xE070 - END ELSE BEGIN - SET value=arguments - END - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION add_projectile_ids_entry INT_VAR lowest_to_try=300 STR_VAR resref="" RET number -BEGIN - OUTER_PATCH "" BEGIN - LOOKUP_IDS_SYMBOL_OF_INT check projectl lowest_to_try - END - ACTION_IF IS_AN_INT check BEGIN // ie if it's -1, i.e. that number isn't used - APPEND "projectl.ids" "%lowest_to_try% %resref%" - OUTER_SET number=lowest_to_try - END ELSE BEGIN - OUTER_SET lowest_to_try +=1 - LAF add_projectile_ids_entry INT_VAR lowest_to_try STR_VAR resref RET number END - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_scrolls - STR_VAR scroll_shadow_list="" -BEGIN - // read in the shadow list - COPY "%scsroot%/%iwdspells_data%/%scroll_shadow_list%" "%workspace%" - COUNT_2DA_ROWS 2 rowcount - FOR (i=1;ioffset_base BEGIN - LPF STO_read_item_resource STR_VAR offset_base RET item_resref=value END - LPF STO_read_item_num_in_stock STR_VAR offset_base RET number=value END - TO_UPPER item_resref - SET $stock("%item_resref%")=number - END - - PHP_EACH shadow_map AS key=>value BEGIN - PATCH_IF INDEX_BUFFER ("%value%")>=0 BEGIN - TO_UPPER value - SET number_in_stock=$stock("%value%") - ADD_STORE_ITEM "%key%" AFTER "%value%" #1 #0 #0 "IDENTIFIED" (number_in_stock) - END - END - BUT_ONLY -END - -//////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION find_scroll_slot - STR_VAR scroll_slot="00" - RET scroll_slot -BEGIN - ACTION_IF (FILE_EXISTS_IN_GAME "SCRL%scroll_slot%.itm" || FILE_EXISTS "%install_loc%/SCRL%scroll_slot%.itm") BEGIN - LAF alphanumeric_advance STR_VAR arguments="%scroll_slot%" RET scroll_slot=value END - LAF find_scroll_slot STR_VAR scroll_slot RET scroll_slot END - END -END - - -//////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION remap_spell_resrefs_helper - STR_VAR resref="" - spellname="" - parent="" - parent_ext="" -BEGIN - ACTION_TO_UPPER parent - ACTION_IF "%parent_ext%" STRING_EQUAL_CASE SPL BEGIN - ACTION_IF VARIABLE_IS_SET "%parent%" BEGIN - OUTER_SPRINT parent EVAL "%%parent%%" - END - END - ACTION_IF FILE_EXISTS_IN_GAME "%parent%.%parent_ext%" BEGIN - OUTER_INNER_PATCH_SAVE placeholder "%resref%" BEGIN - WRITE_ASCII 0x0 "##" - END - ACTION_TO_UPPER spellname - ACTION_IF VARIABLE_IS_SET "%spellname%" BEGIN - OUTER_SPRINT resref_new EVAL "%%spellname%%" - PRINT "%spellname% exists; swapping %placeholder% and %resref% for %resref_new% in %parent%" - LAF swap_text STR_VAR files="%parent%.%parent_ext%" swaps="%placeholder%=>%resref_new% %resref%=>%resref_new%" END - END ELSE BEGIN - PRINT "%spellname% does not exist; swapping %resref% for %placeholder% in %parent%" - LAF swap_text STR_VAR files="%parent%.%parent_ext%" swaps="%resref%=>%placeholder%" END - END - END -END - diff --git a/iwdification/dw/lib/make_bams_green.tpa b/iwdification/dw/lib/make_bams_green.tpa deleted file mode 100644 index 3725d2e..0000000 --- a/iwdification/dw/lib/make_bams_green.tpa +++ /dev/null @@ -1,58 +0,0 @@ -DEFINE_ACTION_FUNCTION make_bams_green STR_VAR file="" -BEGIN - - LAF read_in_list STR_VAR file locbase="%iwdspells_data%" RET list END - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - LAF get_spellcode STR_VAR input="%entry%" RET resref=value END - LAF patch_colors INT_VAR suppress_warning=1 STR_VAR bam="%resref%a %resref%c" condition=is_red action=col_swap END - LAF patch_colors INT_VAR suppress_warning=1 STR_VAR bam="%resref%b" condition=is_dark_red action=col_swap_2 END - END -END - - -DEFINE_PATCH_FUNCTION col_swap - INT_VAR red=0 green=0 blue=0 - RET red green blue -BEGIN - SET green_old=green - SET blue_old=blue - SET red_old=red - - SET red = 35 - SET green = red_old - 50 - SET blue = blue_old - 20 -END - -DEFINE_PATCH_FUNCTION col_swap_2 - INT_VAR red=0 green=0 blue=0 - RET red green blue -BEGIN - SET green_old=green - SET blue_old=blue - SET red_old=red - - SET red = 50 - SET green = red_old - 50 - SET blue = 40 -END - -DEFINE_PATCH_FUNCTION is_red - STR_VAR red=0 green=0 blue=0 - RET value -BEGIN - SET value=1 - PATCH_IF (red<160 || green>90) BEGIN - SET value=0 - END -END - -DEFINE_PATCH_FUNCTION is_dark_red - STR_VAR red=0 green=0 blue=0 - RET value -BEGIN - SET value=1 - PATCH_IF (red<60) BEGIN - SET value=0 - END -END diff --git a/iwdification/dw/lib/process_strref.tp2 b/iwdification/dw/lib/process_strref.tp2 deleted file mode 100644 index e6a7d02..0000000 --- a/iwdification/dw/lib/process_strref.tp2 +++ /dev/null @@ -1,21 +0,0 @@ -BACKUP "stratagems_external/backup/iwdspells_auto" -AUTHOR ~DavidW~ -VERSION ~v1~ - -AUTO_EVAL_STRINGS - -BEGIN "Automated conversion of strings" DESIGNATED 1000 NO_LOG_RECORD - - OUTER_SPRINT scsroot dw_iwdspells - OUTER_SPRINT resource_loc dw_iwdspells_resource - OUTER_SPRINT iwdspells_data data - OUTER_SPRINT iwdspells_lib lib - OUTER_SPRINT iwdspells_resource resource - OUTER_SPRINT iwdspells_trabase tra - OUTER_SPRINT sfo_loc sfo - OUTER_SPRINT ssl_loc ssl - OUTER_SPRINT inifile "%scsroot%.ini" -INCLUDE ~%scsroot%/sfo/install_sfo.tpa~ - -LAF include STR_VAR file=get_iwd_spell_resources.tpa location="%iwdspells_lib%" END -LAF process_tra_entries INT_VAR make_lookup=0 STR_VAR tra="%EE_LANGUAGE%/iwdspells.tra" END diff --git a/iwdification/dw/lib/summoned_monsters.tpa b/iwdification/dw/lib/summoned_monsters.tpa deleted file mode 100644 index 58bda32..0000000 --- a/iwdification/dw/lib/summoned_monsters.tpa +++ /dev/null @@ -1,489 +0,0 @@ -/// operates *after* primary converter run, to sort out summons - - -DEFINE_ACTION_FUNCTION summoned_monsters_arcane BEGIN - - LAM read_in_saving_throws - -///////////////////////////////////////////////////// -//// Create Boneguard -/////////////////////////////////////////////////// - - LAF check_ini STR_VAR ini=create_boneguard RET value END - ACTION_IF value BEGIN - - CLEAR_IDS_MAP - LAF get_spellcode STR_VAR input=WIZARD_MONSTER_SUMMONING_7 RET spell=value END - COPY_EXISTING "%spell%.spl" "%workspace%/boneguard.spl" - MAKE_PATCH - say_name=>1 - say_description=>2 - enforce_school=>necromancy - patch_effect_inline=>"opcode=>177 resource=>dw#spbgd parameter2=>2 probability1=>50 dicenum=>0 dicesize=>0" - clone_effect_inline=>"number_to_add=>2 probability1=>100 probability2=>51" - END - LAF install_spell STR_VAR idsname=WIZARD_CREATE_BONEGUARD spell="boneguard" locabs="%workspace%" edits=patch_data RET WIZARD_CREATE_BONEGUARD=newname END - LAF collect_spell_icons STR_VAR location=bam locbase=hla resref=tg#bone spell=WIZARD_CREATE_BONEGUARD END - - // at least pro tem, steal Protection from Undead scroll icon - - COPY_EXISTING iscrl09.bam "override/%WIZARD_CREATE_BONEGUARD%A.bam" - - // sort out scroll - - LAF find_scroll_slot RET scroll_slot END - OUTER_SPRINT scroll_new "SCRL%scroll_slot%" - - MAKE_PATCH - say_both_names=>1 - say_both_descriptions=>2 - patch_effect_inline=>"resource=>%WIZARD_CREATE_BONEGUARD%" - patch_ability_inline=>"ability_icon=>%WIZARD_CREATE_BONEGUARD%A" - icon=>"%WIZARD_CREATE_BONEGUARD%A" - unusable_invoker=>0 - unusable_diviner=>0 - unusable_illusionist=>1 - END - LAF clone_item STR_VAR item="%WIZARD_MONSTER_SUMMONING_7_SCROLL%=>%scroll_new%" edits=patch_data END - - - OUTER_SPRINT shadow "%WIZARD_WAIL_OF_THE_BANSHEE_SCROLL%" - MAKE_PATCH - clone_item_inline=>"match=>~item_resource=%shadow%~ item_resource=>%scroll_new%" - END - COPY_EXISTING_REGEXP GLOB ".*\.sto" override - PATCH_IF INDEX_BUFFER ("%shadow%")>=0 BEGIN - LPF apply_patches STR_VAR edits=patch_data file_ext=STO END - END - BUT_ONLY - - // make effect - - MAKE_PATCH - duration=>2400 - timing=>1 - resource=>ms7bgrd - resource2=>spraised - target=>1 - opcode=>67 - END - LAF make_effect STR_VAR effect=dw#spbgd edits=patch_data END - - // tweak monster file - - MAKE_PATCH - delete_effect=>"opcode=233" - swap_script=>"gnsummm=>bdsumm00" - xp_value=>0 - END - LAF edit_creature STR_VAR creature=ms7bgrd edits=patch_data END - - END - -///////////////////////////////////////////////////// -//// MS7 -/////////////////////////////////////////////////// - -//// Umber hulk - baseline is IWDEE's MS7 UH but it needs BG2-style immunities and confusion - - MAKE_PATCH - delete_effect=>"opcode=233" // pointless cruft in IWD file - remove_items=>umberhlk - add_item=>"helmnoan umber01" - patch_item_inline=>"unstealable=>1 undroppable=>1" - swap_script=>"UHGAZE=>DW#UMBER GNSUMMM=>BDSUMM00" - dv=>ms7umber - xp_value=>0 - END - LAF edit_creature STR_VAR creature=MS7UMBH edits=patch_data END - LAF install STR_VAR file=dw#umber.baf location="%iwdspells_resource%" END - -//// Ettin - baseline is BG2 ettin - - MAKE_PATCH - allegiance=>controlled - gender=>summoned - dv=>ms7ettin - no_corpse=>1 - swap_script=>"wtasight=>BDSUMM00" - xp_value=>0 - END - LAF clone_creature STR_VAR creature="PETTIN=>DW#MS7ET" edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="MS7UMBH DW#MS7ET" filename=msummo7 END - -///////////////////////////////////////////////////// -//// MS6 -/////////////////////////////////////////////////// - -/// Frost salamander - base is IWDEE's MS6 salamander but needs BG2-style aura etc - - MAKE_PATCH - delete_effect=>"opcode=233" - add_item=>"ring95 immune1" - class=>ELEMENTAL_WATER // best match - no SALAMANDER class in BG2 - dv=>MS6salac - remove_items=>salfros - add_item=>salgrice - strip_script=>safrost - patch_item_inline=>"unstealable=>1 undroppable=>1" - add_proficiencies=>"spear=>2" - swap_script=>"gnsummm=>bdsumm00" - xp_value=>0 - END - LAF edit_creature STR_VAR creature=MS6SALC edits=patch_data END - -//// Fire salamanader - ditto - - MAKE_PATCH - delete_effect=>"opcode=233" - add_item=>"ring95 immune1" - class=>ELEMENTAL_FIRE// best match - no SALAMANDER class in BG2 - dv=>MS6salaf - remove_items=>salfire - add_item=>salgrfir - strip_script=>safire - patch_item_inline=>"unstealable=>1 undroppable=>1" - add_proficiencies=>"spear=>2" - swap_script=>"gnsummm=>bdsumm00" - xp_value=>0 - END - LAF edit_creature STR_VAR creature=MS6SALF edits=patch_data END - -//// giant troll - base is BG2 trolgi01 - - MAKE_PATCH - allegiance=>controlled - gender=>summoned - dv=>ms6gttrl - no_corpse=>1 - swap_script=>"wtasight=>bdsumm00" - strip_script=>gensht01 - xp_value=>0 - END - LAF clone_creature STR_VAR creature="trolgi01=>DW#MS6GT" edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="MS6SALC MS6SALF DW#MS6GT" filename=msummo6 END - - -///////////////////////////////////////////////////// -//// MS5 -/////////////////////////////////////////////////// - - /// ordinary troll - - MAKE_PATCH - allegiance=>controlled - gender=>summoned - dv=>ms5troll - no_corpse=>1 - swap_script=>"wtatroll=>bdsumm00" - xp_value=>0 - END - LAF clone_creature STR_VAR creature="troll01=>DW#MS5TR" edits=patch_data END - - /// minotaur - - MAKE_PATCH - delete_effect=>"opcode=233" - immunity_to_spell=>"%WIZARD_MAZE% %PSIONIC_MAZE%" - remove_items=>"s1-8m1" - add_items=>"ax1h01" - patch_item_inline=>"unstealable=>1 undroppable=>1" - add_proficiencies=>"axe=>2" - strength=>18 - str_ex=>100 - xp_value=>0 - swap_script=>"gnsummm=>bdsumm00" - END - LAF edit_creature STR_VAR creature=ms5mino edits=patch_data END - - - LAF make_summoning_2da STR_VAR monsters="MS5MINO DW#MS5TR" filename=msummo5 END - - -///////////////////////////////////////////////////// -//// MS4 -/////////////////////////////////////////////////// - - // ogre mage - based on unused monster-summon in BG2 - - LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=ITEM_MM RET stat_ind END - LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=ITEM_MM_SEEN RET stat_ind END - LAF ds_resolve_stat INT_VAR ids=1 STR_VAR id=DO_NOT_TARGET_SPELLS RET stat_ind END - LAF ssl_to_bcs STR_VAR location="%iwdspells_resource%" script=ogremasu END - - MAKE_PATCH - allegiance=>controlled - no_corpse=>1 - dv=>ms4ogrem - add_proficiencies=>"singleweapon=>2 bastardsword=>2" - remove_spells=>all - add_spells=>"MAGIC_MISSILE(2) BURNING_HANDS(2) MIRROR_IMAGE MELF_ACID_ARROW LIGHTNING_BOLT GHOST_ARMOR" - swap_script=>"wtasight=>bdsumm00" - xp_value=>0 - END - LAF edit_creature STR_VAR creature=ogremasu edits=patch_data END - - /// yuan-ti - - MAKE_PATCH - allegiance=>controlled - gender=>summoned - dv=>ms5yuant - no_corpse=>1 - swap_script=>"wtasight=>bdsumm00" - xp_value=>0 - END - LAF clone_creature STR_VAR creature="icyuan01=>DW#MS4YU" edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="OGREMASU DW#MS4YU" filename=msummo4 END - - -///////////////////////////////////////////////////// -//// MS3 -/////////////////////////////////////////////////// - - // ogre berserker - - MAKE_PATCH - enforce_class=>null - remove_items=>ogre1 - add_items=>blun06 - add_proficiencies=>"FLAILMORNINGSTAR=>2" - patch_item_inline=>"unstealable=>1 undroppable=>1" - insert_script_high=>"dw#msogr" - no_corpse=>1 - xp_value=>0 - END - LAF edit_creature STR_VAR creature=ogregrsu edits=patch_data END - LAF install STR_VAR file=dw#msogr.baf location="%iwdspells_resource%" END - - // hobgoblin elite - MAKE_PATCH - add_proficiencies=>"BASTARDSWORD=>2 LONGBOW=>2" - no_corpse=>1 - xp_value=>0 - END - LAF edit_creature STR_VAR creature=hobgobsu edits=patch_data END - - // ettercap - - MAKE_PATCH - no_corpse=>1 - xp_value=>0 - END - LAF edit_creature STR_VAR creature=ettercsu edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="OGREGRSU ETTERCSU HOBGOBSU" filename=msummo3 END - - -///////////////////////////////////////////////////// -//// MS2 -/////////////////////////////////////////////////// - - // gnoll - - MAKE_PATCH - level=>3 - name1_string=>6627 - name2_string=>6627 - hitpoints=>24 - attacks=>1 - no_corpse=>1 - add_proficiencies=>"spear=>1" - xp_value=>0 - END - LAF edit_creature STR_VAR creature=gnollsu edits=patch_data END - - // ogrillon - - MAKE_PATCH - attacks=>1 - no_corpse=>1 - xp_value=>0 - END - LAF edit_creature STR_VAR creature=ogrelesu edits=patch_data END - - // lizard man - - MAKE_PATCH - xp_value=>0 - level=>3 - swap_script=>"gnsummm=>bdsumm00" - END - LAF edit_creature STR_VAR creature=ms2lizm edits=patch_data END - - // ogre - - MAKE_PATCH - no_corpse=>1 - swap_script=>"gnsummm=>bdsumm00" - END - LAF edit_creature STR_VAR creature=ogresu edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="MS2LIZM OGRELESU GNOLLSU OGRESU" filename=msummo2 END - -///////////////////////////////////////////////////// -//// MS1 -/////////////////////////////////////////////////// - - // goblins - - MAKE_PATCH - patch_item_inline=>"unstealable=>1 undroppable=>1" - xp_value=>0 - swap_script=>"gnsummm=>bdsumm00" - swap_script'=>"gnsummb=>bdsumm00" - END - LAF edit_creature STR_VAR creature="ms1goba ms1gobm" edits=patch_data END - - // hobgoblins - - MAKE_PATCH - gender=>summoned - no_corpse=>1 - allegiance=>controlled - xp_value=>0 - dv=>ms1hobgo - strip_script=>"gensht01 hobarc01" - swap_script=>"wtasight=>bdsumm00" - patch_item_inline=>"unstealable=>1 undroppable=>1" - END - LAF clone_creature STR_VAR creature="hobwar01=>dw#ms1hw hobarc01=>dw#ms1ha" edits=patch_data END - - // orc archer - MAKE_PATCH - gender=>summoned - level=>1 - hitpoints=>8 - thac0=>20 - attacks=>1 - no_corpse=>1 - allegiance=>controlled - xp_value=>0 - dv=>ms1orcar - strip_script=>"gensht01 oarch02" - swap_script=>"wtasight=>bdsumm00 wtarsgt=>bdsumm00" - animation_code=>59408 - remove_items=>rndtre03 - patch_item_inline=>"unstealable=>1 undroppable=>1" - patch_item_inline'=>"match=>~resource=arow02~ resource=>arow01" - enforce_saves=>null - END - LAF clone_creature STR_VAR creature="orc02=>dw#ms1oa" edits=patch_data END - - // orc warrior - MAKE_PATCH - gender=>summoned - level=>1 - hitpoints=>8 - thac0=>20 - attacks=>1 - no_corpse=>1 - allegiance=>controlled - xp_value=>0 - dv=>ms1orcwa - strip_script=>"gensht01 orcwar" - swap_script=>"wtasight=>bdsumm00 wtarsgt=>bdsumm00" - remove_items=>rndtre03 - patch_item_inline=>"unstealable=>1 undroppable=>1" - enforce_saves=>null - END - LAF clone_creature STR_VAR creature="orc01=>dw#ms1ow" edits=patch_data END - - LAF make_summoning_2da STR_VAR monsters="DW#MS1OW DW#MS1OA DW#MS1HW DW#MS1HA MS1GOBA MS1GOBM" filename=msummo1 END - -///////////////////////////////////////////////////// -//// shadow summons -/////////////////////////////////////////////////// - - // the shadow umber hulk needs BGification - - MAKE_PATCH - remove_items=>umberhlk - add_item=>"helmnoan umber01" - patch_item_inline=>"unstealable=>1 undroppable=>1" - swap_script=>"UHGAZE=>DW#UMBER GNSUMMM=>BDSUMM00" - xp_value=>0 - END - LAF edit_creature STR_VAR creature="SS3UMB8 SS3UMB9" edits=patch_data END - - -///////////////////////////////////////////////////// -//// misc -/////////////////////////////////////////////////// - - - // everything needs BD scripts - - MAKE_PATCH - xp_value=>0 - swap_script=>"GNSUMMM=>BDSUMM00" - END - LAF edit_creature STR_VAR creature="SUMSHAD SS1GOB1 SS1GOB2 SS1GOB3 SS1LIZ3 SS1LIZ4 SS1TRL6 SS1TRL7 SS1TRL8 SS2GOB1 SS2GOB2 SS2GOB3 SS2LIZ5 SS2LIZ6 SS2LIZ7 SS3TRL7 SS3TRL8" edits=patch_data END // Summon Shadow - LAF edit_creature STR_VAR creature="ES8WATR ES8FIRE ES8ERTH ES8AIR" edits=patch_data END // elementals - LAF edit_creature STR_VAR creature="AD3SKLM" edits=patch_data END // soul eater - - - -END - -DEFINE_ACTION_FUNCTION summoned_monsters_divine BEGIN - -///////////////////////////////////////////////////// -//// shamblers - put on a more standard format -/////////////////////////////////////////////////// - - LAF clone_effect STR_VAR effect="SPEART1P=>DW#SHAMB" editstring="resource=>SSHAMB" END - - MAKE_PATCH - match=>"opcode=67" - opcode=>177 - target=>2 - parameter2=>2 - duration=>2400 - resource=>DW#SHAMB - END - LAF edit_spell STR_VAR spell="%CLERIC_STALKER%" editstring="patch_effect=>patch_data" END - - MAKE_PATCH - allegiance=>controlled - swap_script=>"EFATKMEL=>BDSUMM00" - END - LAF edit_creature STR_VAR creature=SSHAMB edits=patch_data END - -///////////////////////////////////////////////////// -//// giant insect - just map over to new scripts -/////////////////////////////////////////////////// - - MAKE_PATCH - xp_value=>0 - swap_script=>"GNSUMMM=>BDSUMM00" - END - LAF edit_creature STR_VAR creature="GISBOMB GISBORB" edits=patch_data END - - - -END - -<<<<<<<< .../stratagems-inline/summon_template.2da -2DA V1.0 -0 - RESREF Hit AreaHitAnimation ->>>>>>>> - -DEFINE_ACTION_FUNCTION make_summoning_2da - STR_VAR filename="" - monsters="" - anim_hit="msumm1h" - anim_area="msumm1x" -BEGIN - COPY ".../stratagems-inline/summon_template.2da" "override/%filename%.2da" - OUTER_SET counter=1 - OUTER_WHILE "%monsters%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list="%monsters%" RET entry monsters=list END - APPEND "%filename%.2da" "%counter% %entry% %anim_hit% %anim_area%" - OUTER_SET counter +=1 - END -END \ No newline at end of file diff --git a/iwdification/dw/resource/dw#msogr.baf b/iwdification/dw/resource/dw#msogr.baf deleted file mode 100644 index 8a0acbc..0000000 --- a/iwdification/dw/resource/dw#msogr.baf +++ /dev/null @@ -1,10 +0,0 @@ -IF - !GlobalTimerNotExpired("castspell","LOCALS") - See(NearestEnemyOf(Myself)) - !CheckSpellState(Myself,STATE_ENRAGED) - HaveSpell(BERSERKER_ENRAGE) -THEN - RESPONSE #100 - SetGlobalTimer("castspell","LOCALS",6) - Spell(Myself,BERSERKER_ENRAGE) -END diff --git a/iwdification/dw/resource/dw#umber.baf b/iwdification/dw/resource/dw#umber.baf deleted file mode 100644 index 39ff901..0000000 --- a/iwdification/dw/resource/dw#umber.baf +++ /dev/null @@ -1,36 +0,0 @@ -IF - !GlobalTimerNotExpired("gaze","LOCALS") - !GlobalTimerNotExpired("castspell","LOCALS") - See(NearestEnemyOf(Myself)) -THEN - RESPONSE #100 - SetGlobalTimer("gaze","LOCALS",12) - SetGlobalTimer("castspell","LOCALS",6) - ForceSpell(LastSeenBy(Myself),HULK_CONFUSION) - RESPONSE #100 - Continue() -END - -IF - !GlobalTimerNotExpired("gaze","LOCALS") - !GlobalTimerNotExpired("castspell","LOCALS") - See(SecondNearestEnemyOf(Myself)) -THEN - RESPONSE #200 - SetGlobalTimer("gaze","LOCALS",12) - SetGlobalTimer("castspell","LOCALS",6) - ForceSpell(LastSeenBy(Myself),HULK_CONFUSION) - RESPONSE #100 - Continue() -END - -IF - !GlobalTimerNotExpired("gaze","LOCALS") - !GlobalTimerNotExpired("castspell","LOCALS") - See(ThirdNearestEnemyOf(Myself)) -THEN - RESPONSE #100 - SetGlobalTimer("gaze","LOCALS",12) - SetGlobalTimer("castspell","LOCALS",6) - ForceSpell(LastSeenBy(Myself),HULK_CONFUSION) -END \ No newline at end of file diff --git a/iwdification/dw/resource/ogremasu.ssl b/iwdification/dw/resource/ogremasu.ssl deleted file mode 100644 index e1d0d8a..0000000 --- a/iwdification/dw/resource/ogremasu.ssl +++ /dev/null @@ -1,98 +0,0 @@ -BEGIN_ACTION_DEFINITION - Name(AttackIfEmpty) - TRIGGER - !HotKey(E) - !StateCheck(scstarget,STATE_INVISIBLE) - ActionListEmpty() - ACTION - RESPONSE #scsprob1 - EquipMostDamagingMelee() - SetGlobal("melee","LOCALS",1) - AttackOneRound(scstarget) -END - -BEGIN_ACTION_DEFINITION - Name(Spell) - TRIGGER - !HotKey(E) - !GlobalTimerNotExpired("castspell","LOCALS") - HaveSpell(scsargument1) - !StateCheck(scstarget,STATE_NOT_TARGETABLE) - !CheckStatGT(scstarget,0,SANCTUARY) - CheckStatLT(Myself,60,SPELLFAILUREMAGE) - !CheckSpellState(scstarget,DO_NOT_TARGET_SPELLS) - ACTION - RESPONSE #scsprob1 - SetGlobalTimer("castspell","LOCALS",6) - Spell(scstarget,scsargument1) -END - -BEGIN_ACTION_DEFINITION - Name(SpellMyself) - TRIGGER - !HotKey(E) - !GlobalTimerNotExpired("castspell","LOCALS") - HaveSpell(scsargument1) - CheckStatLT(Myself,60,SPELLFAILUREMAGE) - ACTION - RESPONSE #scsprob1 - SetGlobalTimer("castspell","LOCALS",6) - Spell(Myself,scsargument1) -END - -IF TRIGGER -THEN DO - Action(SpellMyself,WIZARD_GHOST_ARMOR) -END - -IF TRIGGER - OR(2) - Range(NearestEnemyOf(Myself),15) - HPPercentLT(Myself,80) -THEN DO - Action(SpellMyself,WIZARD_MIRROR_IMAGE) -END - -IF TRIGGER - TargetBlock(EnemiesInOrderShort) - TriggerBlock(MinorGlobe|Helpless) -THEN DO - Action(Spell,WIZARD_LIGHTNING_BOLT|100|100) -END - -IF TRIGGER - TargetBlock(EnemiesInOrderShort) - Range(scstarget,5) -THEN DO - Action(Spell,WIZARD_BURNING_HANDS|100|100) -END - -IF TRIGGER - Allegiance(Myself,ENEMY) - TargetBlock(PCSpellcasters) - TriggerBlock(MinorGlobe|Helpless|SpellTurn) -THEN DO - Action(Spell,WIZARD_MELF_ACID_ARROW|100|50) -END - -IF TRIGGER - !Allegiance(Myself,ENEMY) - TargetBlock(EnemiesInOrderShort) - TriggerBlock(MinorGlobe|Helpless|SpellTurn) -THEN DO - Action(Spell,WIZARD_MELF_ACID_ARROW|100|50) -END - -IF TRIGGER - TargetBlock(EnemiesInOrderShort) - TriggerBlock(MinorGlobe|Helpless|MagicMissile|SpellTurn) - OR(2) - !CheckSpellState(scstarget,ITEM_MM) - !CheckSpellState(scstarget,ITEM_MM_SEEN) -THEN DO - ApplySpellRES("dw#mmsee",scstarget) - Action(Spell,WIZARD_MAGIC_MISSILE|100|50) -END - - - diff --git a/iwdification/dw/setup-dw_iwdspells.tp2 b/iwdification/dw/setup-dw_iwdspells.tp2 deleted file mode 100644 index 557d31b..0000000 --- a/iwdification/dw/setup-dw_iwdspells.tp2 +++ /dev/null @@ -1,180 +0,0 @@ -BACKUP "stratagems_external/backup/iwdspells" -AUTHOR ~DavidW~ -VERSION ~v1~ - -AUTO_EVAL_STRINGS -ASK_EVERY_COMPONENT - -ALWAYS - OUTER_SPRINT scsroot dw_iwdspells - OUTER_SPRINT resource_loc dw_iwdspells_resource - OUTER_SPRINT iwdspells_data data - OUTER_SPRINT iwdspells_lib lib - OUTER_SPRINT iwdspells_resource resource - OUTER_SPRINT iwdspells_trabase tra - OUTER_SPRINT sfo_loc sfo - OUTER_SPRINT ssl_loc ssl - OUTER_SPRINT inifile "%scsroot%.ini" - INCLUDE ~%scsroot%/%iwdspells_lib%/always.tph~ - OUTER_SET do_not_biff=0 // set to 1 and most resources (not animations) get put in the override - OUTER_SET get_all_languages=1 // set to 0 when testing the install, because it speeds things up a lot -END - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// Language commands -//////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////// - -LANGUAGE -"English" -ENGLISH - ~dw_iwdspells/tra/english/setup.tra~ - - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// test space -//////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////// - -/* -BEGIN "Test" DESIGNATED 0 - -LAF run STR_VAR file=test location=test END -*/ - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// BG(2)EE bit - runs to install resources -//////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////// - -BEGIN @5 DESIGNATED 1000 // install arcane resources -REQUIRE_PREDICATE GAME_IS "bgee bg2ee eet" @6 - -LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END -LAF install_iwd_spell_resources - STR_VAR - scroll_shadow_list=iwd_arcane.2da - spell_list=arcane_resrefs.txt - lookup=iwd_strref.txt - smtables_list=arcane_smtable.txt - proj_list=arcane_proj.txt - tra=iwdspells.tra - biff="dw#iwdm" - afterwards="arcane_spells_postproduction" - afterwards_tra="%iwdspells_trabase%/%LANGUAGE%/arcane.tra" - bam_copy="bam_copy_arcane.2da" - green_bams="green_spells_arcane.2da" - ds="%iwdspells_data%/ds_iwd_arcane.2da" -END - -BEGIN @7 DESIGNATED 2000 // install divine resources - -REQUIRE_PREDICATE GAME_IS "bgee bg2ee eet" @6 - -LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END -LAF install_iwd_spell_resources - STR_VAR - spell_list=divine_resrefs.txt - lookup=iwd_strref.txt - proj_list=divine_proj.txt - smtables_list=divine_smtable.txt - tra=iwdspells.tra - biff="dw#iwdp" - afterwards="divine_spells_postproduction" - afterwards_tra="%iwdspells_trabase%/%LANGUAGE%/divine.tra" - bam_copy="bam_copy_divine.2da" - green_bams="" - ds="%iwdspells_data%/ds_iwd_divine.2da" -END - -BEGIN @8 DESIGNATED 3000 // install bardsongs - -REQUIRE_PREDICATE GAME_IS "bgee bg2ee eet" @6 - -LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END -LAF install_iwd_spell_resources - STR_VAR - spell_list=bardic_resrefs.txt - lookup=iwd_strref.txt - proj_list=bardic_proj.txt - smtables_list=bardic_smtable.txt - tra=iwdspells.tra - biff="dw#iwdb" - afterwards="bardsong_postproduction" - bam_copy="" - green_bams="" -END - -//////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////// -//// IWDEE bit - runs to collect resources -//// -//// Not really worth TRA-ifying this bit, only modders and power users -//// who can cope with English are going to be using it, so don't -//// force anyone to translate it. -//////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////// - - -BEGIN "Collect all IWD resources" DESIGNATED 90000 -REQUIRE_PREDICATE GAME_IS iwdee "This component runs only when installing on BG(2)EE; it is not needed nor used when collecting IWDEE resources." -LAF include STR_VAR file=get_iwd_spell_resources.tpa location="%iwdspells_lib%" END - -// arcane spells - -LAF get_iwd_spell_resources - STR_VAR - file=iwd_arcane.2da - location="%iwdspells_data%" - smtables_list=arcane_smtable.txt - proj_list="arcane_proj.txt" - resref_list="arcane_resrefs.txt" -END - -// divine spells - -LAF get_iwd_spell_resources - INT_VAR - CMW_string=1 - STR_VAR - file=iwd_divine.2da - location="%iwdspells_data%" - smtables_list=divine_smtable.txt - proj_list="divine_proj.txt" - resref_list="divine_resrefs.txt" -END - -// bardsong - -LAF get_iwd_spell_resources - STR_VAR - file=iwd_bard.2da - location="%iwdspells_data%" - smtables_list=bardic_smtable.txt // not needed really - proj_list="bardic_proj.txt" - resref_list="bardic_resrefs.txt" -END - -// animations - -LAF include STR_VAR file=collect_animations.tpa location="%iwdspells_lib%" END -ACTION_BASH_FOR "%scsroot%/%iwdspells_data%/anim" ".*\.ini" BEGIN - LAF collect_iwd_animations STR_VAR ini="%BASH_FOR_FILESPEC%" anim_loc="%resource_loc%/anim/bam" wav_loc="%resource_loc%/anim/wav" END -END - -// copy-only spell BAMs - -LAF include STR_VAR file=get_iwd_spell_bams.tpa location="%iwdspells_lib%" END -LAF get_iwd_spell_bams STR_VAR file="bam_copy_arcane.2da" END -LAF get_iwd_spell_bams STR_VAR file="bam_copy_divine.2da" END - -// TRA entries - -LAF process_tra_entries_all END - - - - diff --git a/iwdification/dw/sfo/doc/Kit library.docx b/iwdification/dw/sfo/doc/Kit library.docx deleted file mode 100644 index ca5784b..0000000 Binary files a/iwdification/dw/sfo/doc/Kit library.docx and /dev/null differ diff --git a/iwdification/dw/sfo/doc/SFO.docx b/iwdification/dw/sfo/doc/SFO.docx deleted file mode 100644 index 1329f5b..0000000 Binary files a/iwdification/dw/sfo/doc/SFO.docx and /dev/null differ diff --git a/iwdification/dw/sfo/doc/Table library.docx b/iwdification/dw/sfo/doc/Table library.docx deleted file mode 100644 index 9a413a8..0000000 Binary files a/iwdification/dw/sfo/doc/Table library.docx and /dev/null differ diff --git a/iwdification/dw/sfo/doc/Tools library.docx b/iwdification/dw/sfo/doc/Tools library.docx deleted file mode 100644 index 4dbe698..0000000 Binary files a/iwdification/dw/sfo/doc/Tools library.docx and /dev/null differ diff --git a/iwdification/dw/sfo/doc/are library.docx b/iwdification/dw/sfo/doc/are library.docx deleted file mode 100644 index 046404c..0000000 Binary files a/iwdification/dw/sfo/doc/are library.docx and /dev/null differ diff --git a/iwdification/dw/sfo/doc/cre library.docx b/iwdification/dw/sfo/doc/cre library.docx deleted file mode 100644 index ccad074..0000000 Binary files a/iwdification/dw/sfo/doc/cre library.docx and /dev/null differ diff --git a/iwdification/dw/sfo/dw#kit.ids b/iwdification/dw/sfo/dw#kit.ids deleted file mode 100644 index 566997a..0000000 --- a/iwdification/dw/sfo/dw#kit.ids +++ /dev/null @@ -1,33 +0,0 @@ -0x00000000 NONE -0x00004000 TRUECLASS -0x00000001 BERSERKER -0x00000002 WIZARDSLAYER -0x00000004 KENSAI -0x00000008 CAVALIER -0x00000010 INQUISITOR -0x00000020 UNDEADHUNTER -0x00000040 MAGESCHOOL_ABJURER -0x00000080 MAGESCHOOL_CONJURER -0x00000100 MAGESCHOOL_DIVINER -0x00000200 MAGESCHOOL_ENCHANTER -0x00000400 MAGESCHOOL_ILLUSIONIST -0x00000800 MAGESCHOOL_INVOKER -0x00001000 MAGESCHOOL_NECROMANCER -0x00002000 MAGESCHOOL_TRANSMUTER -0x00004000 MAGESCHOOL_GENERALIST -0x00008000 FERALAN -0x00010000 STALKER -0x00020000 BEASTMASTER -0x00040000 ASSASIN -0x00080000 BOUNTYHUNTER -0x00100000 SWASHBUCKLER -0x00200000 BLADE -0x00400000 JESTER -0x00800000 SKALD -0x01000000 GODTALOS -0x02000000 GODHELM -0x04000000 GODLATHANDER -0x08000000 TOTEMIC -0x10000000 SHAPESHIFTER -0x20000000 AVENGER -0x40000000 BARBARIAN diff --git a/iwdification/dw/sfo/filetype/lib_are.tpa b/iwdification/dw/sfo/filetype/lib_are.tpa deleted file mode 100644 index 0649466..0000000 --- a/iwdification/dw/sfo/filetype/lib_are.tpa +++ /dev/null @@ -1,586 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_area - INT_VAR allow_missing=0 - STR_VAR - area="" - edits="" - editstring="" - allow_missing="no" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - INT_VAR allow_missing - STR_VAR file_list= ~%area%~ - file_ext=~ARE~ - edits - editstring - - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_area - INT_VAR allow_missing=0 - STR_VAR - area="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - INT_VAR allow_missing - STR_VAR file_list= ~%area%~ - file_ext=~ARE~ - edits editstring - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_area - INT_VAR allow_missing=0 - STR_VAR - area="" - edits="" - editstring="" - location="" - locbase="" - locabs="" - BEGIN - LAUNCH_ACTION_FUNCTION install_template - INT_VAR allow_missing - STR_VAR file_list=~%area%~ - file_ext=~ARE~ - edits editstring location locbase locabs - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching regexp -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_all_areas - STR_VAR - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION regexp_template - STR_VAR file_ext=~ARE~ - edits= ~%edits%~ - editstring= ~%editstring%~ - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< area_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -actor 0x54 4 0x58 2 0x110 -trigger 0x5c 4 0x5a 2 0xc4 -spawn 0x60 4 0x64 4 0xc8 -entrance 0x68 4 0x6c 4 0x68 -container 0x70 4 0x74 2 0xc0 -item 0x78 4 0x76 2 0x14 -vertex 0x7c 4 0x80 2 0x4 -ambient 0x84 4 0x82 2 0xd4 -variable 0x88 4 0x8c 4 0x54 -explored 0xa0 4 0x9c 4 0 -door 0xa8 4 0xa4 4 0xc8 -animation 0xb0 4 0xac 4 0x4c -tiles 0xb8 4 0xb4 4 0 -songs 0xbc 4 0x0 0 0 -restspawn 0xc0 4 0x0 0 0 -mapnote 0xc4 4 0xc8 4 0x34 -projectile 0xcc 4 0xd0 4 0x1c ->>>>>>>> -OUTER_SPRINT has_secondaries_ARE_trigger "" -OUTER_SPRINT has_secondaries_ARE_container "" -OUTER_SPRINT has_secondaries_ARE_door "" - -OUTER_SPRINT ~offset_readin_lookup_2da~ ~area_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~ARE~ -LAUNCH_ACTION_MACRO read_in_offsets - -OUTER_SET $lookup_ARE_trigger_vertex_ind_loc(0)=0x2c -OUTER_SET $lookup_ARE_trigger_vertex_ind_length(0)=4 -OUTER_SET $lookup_ARE_trigger_vertex_num_loc(0)=0x2a -OUTER_SET $lookup_ARE_trigger_vertex_num_length(0)=2 - -OUTER_SET $lookup_ARE_container_vertex_ind_loc(0)=0x50 -OUTER_SET $lookup_ARE_container_vertex_ind_length(0)=4 -OUTER_SET $lookup_ARE_container_vertex_num_loc(0)=0x54 -OUTER_SET $lookup_ARE_container_vertex_num_length(0)=2 - -OUTER_SET $lookup_ARE_container_item_ind_loc(0)=0x40 -OUTER_SET $lookup_ARE_container_item_ind_length(0)=4 -OUTER_SET $lookup_ARE_container_item_num_loc(0)=0x44 -OUTER_SET $lookup_ARE_container_item_num_length(0)=4 - -OUTER_SET $lookup_ARE_door_vertex_ind_loc(0)=0x2c -OUTER_SET $lookup_ARE_door_vertex_ind_loc(1)=0x34 -OUTER_SET $lookup_ARE_door_vertex_ind_loc(2)=0x48 -OUTER_SET $lookup_ARE_door_vertex_ind_loc(3)=0x50 -OUTER_SET $lookup_ARE_door_vertex_num_loc(0)=0x30 -OUTER_SET $lookup_ARE_door_vertex_num_loc(1)=0x32 -OUTER_SET $lookup_ARE_door_vertex_num_loc(2)=0x4c -OUTER_SET $lookup_ARE_door_vertex_num_loc(3)=0x4e -OUTER_FOR (i=0;i<4;i+=1) BEGIN - OUTER_SET $lookup_ARE_door_vertex_ind_length("%i%")=4 - OUTER_SET $lookup_ARE_door_vertex_num_length("%i%")=2 -END - -OUTER_SPRINT $ARE_virtual_type_parent(item) container -OUTER_SPRINT $ARE_virtual_type_child(item) item -OUTER_SET $ARE_virtual_type_index(item)=0 - -OUTER_SPRINT $ARE_virtual_type_parent(trigger_vertex) trigger -OUTER_SPRINT $ARE_virtual_type_child(trigger_vertex) vertex -OUTER_SET $ARE_virtual_type_index(trigger_vertex)=0 - -OUTER_SPRINT $ARE_virtual_type_parent(container_vertex) container -OUTER_SPRINT $ARE_virtual_type_child(container_vertex) vertex -OUTER_SET $ARE_virtual_type_index(container_vertex)=0 - -OUTER_SPRINT $ARE_virtual_type_parent(door_vertex_open) door -OUTER_SPRINT $ARE_virtual_type_child(door_vertex_open) vertex -OUTER_SET $ARE_virtual_type_index(door_vertex_open)=0 - -OUTER_SPRINT $ARE_virtual_type_parent(door_vertex_closed) door -OUTER_SPRINT $ARE_virtual_type_child(door_vertex_closed) vertex -OUTER_SET $ARE_virtual_type_index(door_vertex_closed)=1 - -OUTER_SPRINT $ARE_virtual_type_parent(door_vertex_open_impeded) door -OUTER_SPRINT $ARE_virtual_type_child(door_vertex_open_impeded) vertex -OUTER_SET $ARE_virtual_type_index(door_vertex_open_impeded)=2 - -OUTER_SPRINT $ARE_virtual_type_parent(door_vertex_closed_impeded) door -OUTER_SPRINT $ARE_virtual_type_child(door_vertex_closed_impeded) vertex -OUTER_SET $ARE_virtual_type_index(door_vertex_closed_impeded)=3 - -OUTER_SPRINT $ARE_vertex_secondaries_follow(container) trigger -OUTER_SPRINT $ARE_vertex_secondaries_follow(door) container - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits - absolute -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY are_fields_absolute BEGIN - rain_probability=>~0x4a,SHORT~ - snow_probability=>~0x4c,SHORT~ - lightning_probability=>~0x50,SHORT~ - area_script=>~0x94,ASCII~ - wed=>~0x8,ASCII~ - to_north=>~0x18,ASCII~ - to_east=>~0x24,ASCII~ - to_west=>~0x3c,ASCII~ - to_south=>~0x30,ASCII~ - restmovie_day=>~0xd4,ASCII~ - restmove_night=>~0xdc,ASCII~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=are_fields_absolute function_prefix=ARE END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY are_bit_fields_absolute BEGIN - outdoor=>~0x44,0~ - day_night=>~0x44,1~ - weather=>~0x44,2~ - city=>~0x44,3~ - forest=>~0x44,4~ - dungeon=>~0x44,5~ - extended_night=>~0x44,6~ - rest_indoors=>~0x44,7~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=are_bit_fields_absolute function_prefix=ARE END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits - relative to offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY are_fields BEGIN - actorname => ~0x0,ASCII20~ - actor_name => ~0x0,ASCII20~ - script_override=>~0x50,ASCII~ - script_class => ~0x60,ASCII~ - script_race => ~0x68,ASCII~ - script_general => ~0x58,ASCII~ - script_default => ~0x70,ASCII~ - script_specifics => ~0x78,ASCII~ - crefile => ~0x80,ASCII~ - actor_resource => ~0x80,ASCII~ - actor_x_coord_start => ~0x20,SHORT~ - actor_y_coord_start => ~0x22,SHORT~ - actor_x_coord_dest => ~0x24,SHORT~ - actor_y_coord_dest => ~0x26,SHORT~ - actor_orientation => ~0x34,SHORT~ - actor_removal_timer => ~0x38,LONG~ - dialog => ~0x48,ASCII~ - door_name=>~0x0,ASCII20~ - door_id=>~0x20,ASCII~ - door_icon=>~0x7c,LONG~ - door_script=>~0x80,ASCII~ - door_dialog=>~0xb8,ASCII~ - container_name=>~0x0,ASCII20~ - container_xloc=>~0x20,SHORT~ - container_yloc=>~0x22,SHORT~ - container_type=>~0x24,SHORT~ - container_lock_difficulty=>~0x26,SHORT~ - container_trap_detection_difficulty=>~0x2c, SHORT~ - container_trap_removal_difficulty=>~0x2e, SHORT~ - container_trapped=>~0x30,SHORT~ - container_trap_detected=>~0x32,SHORT~ - container_trap_xloc=>~0x34,SHORT~ - container_trap_yloc=>~0x36,SHORT~ - container_top_left=>~0x38,SHORT~ - container_top_right=>~0x3a,SHORT~ - container_bottom_right=>~0x3c,SHORT~ - container_bottom_left=>~0x3e,SHORT~ - container_script=>~0x48,ASCII~ - container_key=>~0x78,ASCII~ - container_lockpick_strref=>~0x84,LONG~ - entrance_name=>~0x0,ASCII20~ - entrance_xloc=>~0x20,SHORT~ - entrance_yloc=>~0x22,SHORT~ - entrance_orientation=>~0x24,SHORT~ - trigger_name=>~0x0,ASCII20~ - destination=>~0x38,ASCII~ - trigger_type =>~0x20,SHORT~ - trigger_info=>~0x64,LONG~ - trigger_script=>~0x7c,ASCII~ - trigger_dest=>~0x38,ASCII~ - trigger_bbleft=>~0x22,SHORT~ - trigger_bbtop=>~0x24,SHORT~ - trigger_bbright=>~0x26,SHORT~ - trigger_bbbottom=>~0x28,SHORT~ - is_trapped=>~0x6c,SHORT~ - trap_detected=>~0x6e,SHORT~ - spawn_name=>~0x0,ASCII20~ - spawn_xloc=>~0x20,SHORT~ - spawn_yloc=>~0x22,SHORT~ - spawn_creature1=>~0x24,ASCII~ - spawn_creature2=>~0x2c,ASCII~ - spawn_creature3=>~0x34,ASCII~ - spawn_creature4=>~0x3c,ASCII~ - spawn_creature5=>~0x44,ASCII~ - spawn_creature6=>~0x4c,ASCII~ - spawn_creature7=>~0x54,ASCII~ - spawn_creature8=>~0x5c,ASCII~ - spawn_creature9=>~0x64,ASCII~ - spawn_creature10=>~0x6c,ASCII~ - spawn_count=>~0x74,SHORT~ - restspawn_creature1=>~0x48,ASCII~ - restspawn_creature2=>~0x50,ASCII~ - restspawn_creature3=>~0x58,ASCII~ - restspawn_creature4=>~0x60,ASCII~ - restspawn_creature5=>~0x68,ASCII~ - restspawn_creature6=>~0x70,ASCII~ - restspawn_creature7=>~0x78,ASCII~ - restspawn_creature8=>~0x80,ASCII~ - restspawn_creature9=>~0x88,ASCII~ - restspawn_creature10=>~0x90,ASCII~ - animation_name=> ~0x0,ASCII20~ - animation_resource=> ~0x28,ASCII~ - animation_height=> ~0x38,SHORT~ - ambient_sound1=>"0x30,ASCII" - ambient_sound2=>"0x38,ASCII" - ambient_sound3=>"0x40,ASCII" - ambient_sound4=>"0x48,ASCII" - ambient_sound5=>"0x50,ASCII" - ambient_sound6=>"0x58,ASCII" - ambient_sound7=>"0x60,ASCII" - ambient_sound8=>"0x68,ASCII" - ambient_sound9=>"0x70,ASCII" - ambient_sound10=>"0x78,ASCII" -END -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=are_fields offset_base=~offset_base~ function_prefix=ARE END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY are_child_fields BEGIN - item_resource => ~0x0,ASCII~ - item_charges_1 => ~0xa,SHORT~ - item_charges_2 => ~0xc,SHORT~ - item_charges_3 => ~0xe,SHORT~ - vertex_xloc=>"0x0,SHORT" - vertex_yloc=>"0x2,SHORT" -END -LAF build_simple_data_field_editors STR_VAR lookup_table=are_child_fields offset_base=~offset_base~ function_prefix=ARE secondary="yes" END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY are_bit_fields BEGIN - // exits - trap_undetectable => ~0x60,0~ - reset_trap => ~0x60,1~ - party_required => ~0x60,2~ - trap_detectable => ~0x60,3~ - trap_set_off_by_NPC => ~0x60,6~ - trigger_deactivated => ~0x61,0~ - impassable_by_NPC => ~0x61,1~ - // animations - animation_enabled =>~0x34,0~ - animation_transparent_black=>~0x34,1~ - animation_non_self_illumination=>~0x34,2~ - animation_partial=>~0x34,3~ - animation_synchronised=>~0x34,4~ - animation_wall_does_not_hide=>~0x34,6~ - animation_invisible_in_dark=>~0x34,7~ - animation_not_cover=>~0x35,0~ - animation_play_all_frames=>~0x35,1~ - animation_palette=>~0x35,2~ - animation_mirrored=>~0x35,3~ - animation_show_in_combat=>~0x35,4~ - actor_present_0=>~0x40,0~ - actor_present_1=>~0x40,1~ - actor_present_2=>~0x40,2~ - actor_present_3=>~0x40,3~ - actor_present_4=>~0x40,4~ - actor_present_5=>~0x40,5~ - actor_present_6=>~0x40,6~ - actor_present_7=>~0x40,7~ - actor_present_8=>~0x41,0~ - actor_present_9=>~0x41,1~ - actor_present_10=>~0x41,2~ - actor_present_11=>~0x41,3~ - actor_present_12=>~0x41,4~ - actor_present_13=>~0x41,5~ - actor_present_14=>~0x41,6~ - actor_present_15=>~0x41,7~ - actor_present_16=>~0x42,0~ - actor_present_17=>~0x42,1~ - actor_present_18=>~0x42,2~ - actor_present_19=>~0x42,3~ - actor_present_20=>~0x42,4~ - actor_present_21=>~0x42,5~ - actor_present_22=>~0x42,6~ - actor_present_23=>~0x42,7~ - -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=are_bit_fields offset_base=~offset_base~ function_prefix=ARE END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// IDS-based data-field edits -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY ~are_ids_fields~ BEGIN - actor_animation=>~0x30,LONG,ANIMATE~ -END - -LAUNCH_ACTION_FUNCTION build_IDS_data_field_editors STR_VAR lookup_table=are_ids_fields function_prefix=ARE END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// composite data-field edits -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_actor_x_coord - INT_VAR offset_base=0 - STR_VAR arguments="" -BEGIN - LAUNCH_PATCH_FUNCTION ARE_actor_x_coord_start INT_VAR offset_base = offset_base STR_VAR arguments= ~%arguments%~ END - LAUNCH_PATCH_FUNCTION ARE_actor_x_coord_dest INT_VAR offset_base = offset_base STR_VAR arguments= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION ARE_actor_y_coord - INT_VAR offset_base=0 - STR_VAR arguments="" -BEGIN - LAUNCH_PATCH_FUNCTION ARE_actor_y_coord_start INT_VAR offset_base = offset_base STR_VAR arguments= ~%arguments%~ END - LAUNCH_PATCH_FUNCTION ARE_actor_y_coord_dest INT_VAR offset_base = offset_base STR_VAR arguments= ~%arguments%~ END -END -DEFINE_PATCH_FUNCTION ARE_wipe_spawns - INT_VAR offset_base=0 -BEGIN - WRITE_ASCII 0x24+offset_base ~~ (0x50) -END - -DEFINE_PATCH_FUNCTION ARE_actor_present_always - INT_VAR offset_base=0 - STR_VAR arguments="" -BEGIN - WRITE_BYTE (offset_base + 0x40) "-1" - WRITE_BYTE (offset_base + 0x41) "-1" - WRITE_BYTE (offset_base + 0x42) "-1" -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// baseline data - for adding actors -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_actor_baseline - INT_VAR offset_base=0 -BEGIN - WRITE_LONG offset_base + 0x28 9 // CRE loaded=unknown [seems to be default] - WRITE_LONG offset_base + 0x40 0xffffffff // present at all times - WRITE_LONG offset_base + 0x38 "-1" // never remove actor - WRITE_LONG offset_base + 0x30 "57376" // default animation - -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// looks for a script anywhere and returns 1 if true -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_match_script - INT_VAR - offset_base=0 - STR_VAR - arguments="" - RET - value -BEGIN - SET value=0 - PATCH_FOR_EACH script IN override class race general default specifics BEGIN - LPF ~ARE_read_script_%script%~ INT_VAR offset_base=offset_base RET scriptvalue=value END - PATCH_IF ~%scriptvalue%~ STRING_EQUAL_CASE ~%arguments%~ BEGIN - SET value=1 - END - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// swaps a script -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_swap_scripts - STR_VAR arguments="" -BEGIN - LPF patch_entry STR_VAR arguments="ARE_swap_script_core=>~%arguments%~ type=>actor" file_ext filename END -END - -DEFINE_PATCH_FUNCTION ARE_swap_script_core - INT_VAR - offset_base=0 - STR_VAR - arguments="" -BEGIN - LPF process_pair STR_VAR input= ~%arguments%~ RET oldscript=key newscript=value END - PATCH_FOR_EACH script IN override class race general default specifics BEGIN - LPF ~ARE_read_script_%script%~ INT_VAR offset_base=offset_base RET scriptvalue=value END - PATCH_IF ~%scriptvalue%~ STRING_EQUAL_CASE ~%oldscript%~ BEGIN - LPF ~ARE_script_%script%~ INT_VAR offset_base=offset_base STR_VAR arguments= ~%newscript%~ END - END - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// gets the area script (and allocates one if needed) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION get_area_script - STR_VAR area="" - RET script -BEGIN - COPY_EXISTING ~%area%.are~ ~override~ - LPF ARE_read_area_script RET script=value END - PATCH_IF (~%script%~ STRING_EQUAL_CASE ~none~ || ~%script%~ STRING_EQUAL_CASE ~~) BEGIN - INNER_PATCH_SAVE ~script~ ~%area%~ BEGIN - READ_ASCII 0x0 fwcheck (2) - PATCH_IF ~%fwcheck%~ STRING_EQUAL_CASE ~FW~ BEGIN - INSERT_BYTES 0x0 1 - WRITE_ASCII 0x0 ~_AR~ - END - END - LPF ARE_area_script STR_VAR arguments= ~%script%~ END - END - BUT_ONLY - ACTION_IF !FILE_EXISTS_IN_GAME ~%script%.bcs~ BEGIN - <<<<<<<< %script%.baf - >>>>>>>> - COMPILE ~%script%.baf~ - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// extends the area script -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION extend_area_script - STR_VAR area="" - top="" - bottom="" - location="" - inline="no" - ssl="no" -BEGIN - ACTION_IF ~%area%~ STRING_COMPARE ~~ BEGIN - ACTION_IF "%top%%bottom%" STRING_EQUAL "" BEGIN - LAF warning STR_VAR warning="extend_area_script called on area %area% with empty argument" END - END - LAF action_return_first_entry STR_VAR list= ~%area%~ RET entry=entry area=list END - LAF get_area_script STR_VAR area= ~%entry%~ RET file=script END - LAF extend STR_VAR file top bottom location inline ssl END - LAF extend_area_script STR_VAR area top bottom location inline ssl END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// swap an item -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_swap_items - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET old=key new=value arguments=list END - REPLACE_TEXTUALLY CASE_INSENSITIVE ~%old%~ ~%new%~ (8) - LPF ARE_swap_items STR_VAR arguments= ~%arguments%~ END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ARE_swap_items") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set trigger info -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ARE_say_trigger_info - STR_VAR arguments="" offset_base="" -BEGIN - SET offset=offset_base+0x64 - LPF say_this_here INT_VAR offset say= ~%arguments%~ END -END - diff --git a/iwdification/dw/sfo/filetype/lib_bam.tpa b/iwdification/dw/sfo/filetype/lib_bam.tpa deleted file mode 100644 index 0a20d9a..0000000 --- a/iwdification/dw/sfo/filetype/lib_bam.tpa +++ /dev/null @@ -1,167 +0,0 @@ - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_bam - STR_VAR - bam="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%bam%~ - file_ext=~BAM~ - edits= ~%edits%~ - editstring= ~%editstring%~ - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_bam - STR_VAR - bam="" - edits="" - editstring="" - BEGIN - - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%bam%~ - file_ext=~BAM~ - edits= ~%edits%~ - editstring= ~%editstring%~ - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< bam_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -frame 0xc 4 0x8 2 0xc ->>>>>>>> -OUTER_SPRINT ~offset_readin_lookup_2da~ ~bam_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~BAM~ -LAUNCH_ACTION_MACRO read_in_offsets - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -ACTION_DEFINE_ASSOCIATIVE_ARRAY bam_fields BEGIN - sig => ~0x0,ASCII~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=bam_fields function_prefix=BAM END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY bam_frame_fields BEGIN - width=>~0x0,SHORT~ - height=>~0x2,SHORT~ - xloc=>~0x4,SHORT~ - yloc=>~0x6,SHORT~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR offset_base=~offset_base~ lookup_table=bam_frame_fields function_prefix=BAM END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// palette editor for BAMs -///////////// -///////////// -///////////// "condition" should either be blank, or a function that takes as INT_VAR inputs "green", "red" and "blue" and returns -///////////// "value", which should be 1 (if the color should be patched) or 0 (if not) -///////////// "action" should be a function which takes "green", "red", "blue" as inputs and then outputs "green", "red" and "blue" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION patch_colors - INT_VAR suppress_warning=0 - STR_VAR condition="" - action="" - bam="" -BEGIN - ACTION_IF "%bam%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list="%bam%" RET entry bam=list END - ACTION_IF FILE_EXISTS_IN_GAME "%entry%.bam" BEGIN - COPY_EXISTING "%entry%.bam" override - LPF patch_colors STR_VAR condition action END - BUT_ONLY - END ELSE BEGIN - ACTION_IF !suppress_warning BEGIN - LAF warning STR_VAR warning="tried to patch the palette of %entry%.bam but it doesn't exist" END - END - END - LAF patch_colors INT_VAR suppress_warning STR_VAR condition action bam END - END - -END - -DEFINE_PATCH_FUNCTION patch_colors - STR_VAR condition="" - action="" -BEGIN - SET compressed=0 - READ_ASCII 0x0 sg (4) //Signature - PATCH_IF ~%sg%~ STRING_EQUAL_CASE ~BAMC~ BEGIN - SET compressed=1 - READ_LONG 0x8 dl //Uncompressed data length - DECOMPRESS_REPLACE_FILE 0xc (SOURCE_SIZE - 0xc) dl - END - READ_LONG 0x10 pal_off - FOR (i=1;i<256;i+=1) BEGIN // skip top left - SET offset= pal_off + i*4 - LPF read_color INT_VAR offset RET red blue green END - PATCH_IF "%condition%" STRING_COMPARE "" BEGIN - LPF "%condition%" INT_VAR red green blue RET value END - END ELSE BEGIN - SET value=1 - END - PATCH_IF value BEGIN - LPF "%action%" INT_VAR red blue green RET red blue green END - LPF write_color INT_VAR offset red blue green END - END - END - PATCH_IF compressed BEGIN - COMPRESS_REPLACE_FILE 0 dl 9 - INSERT_BYTES 0x0 0xc - WRITE_ASCII 0x0 ~BAMCV1 ~ - WRITE_LONG 0x8 dl - END -END - - -DEFINE_PATCH_FUNCTION read_color - INT_VAR offset=0 - RET red green blue -BEGIN - READ_BYTE offset blue - READ_BYTE (offset+1) green - READ_BYTE (offset+2) red -END - -DEFINE_PATCH_FUNCTION write_color - INT_VAR red=0 green=0 blue=0 offset=0 -BEGIN - LPF legal_byte INT_VAR input=green RET green=output END - LPF legal_byte INT_VAR input=blue RET blue=output END - LPF legal_byte INT_VAR input=red RET red=output END - WRITE_BYTE offset blue - WRITE_BYTE (offset+1) green - WRITE_BYTE (offset+2) red -END - -DEFINE_PATCH_FUNCTION legal_byte INT_VAR input=0 RET output BEGIN - output = input>0x100 ? 0x100 : input - output = output<0 ? 0 : output -END diff --git a/iwdification/dw/sfo/filetype/lib_bcs.tpa b/iwdification/dw/sfo/filetype/lib_bcs.tpa deleted file mode 100644 index 15da833..0000000 --- a/iwdification/dw/sfo/filetype/lib_bcs.tpa +++ /dev/null @@ -1,227 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////////////// -//// Overall edit wraps -//// -//////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_script - STR_VAR script="" - editstring="" -BEGIN - PRINT "Applying patches to script(s) %script%" - OUTER_WHILE "%script%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list= "%script%" RET filename=entry script=list END - COPY_EXISTING "%filename%.bcs" override - DECOMPILE_AND_PATCH BEGIN - LPF process_baf STR_VAR editstring filename END - END - BUT_ONLY - END -END - -DEFINE_ACTION_FUNCTION edit_all_scripts - STR_VAR editstring="" -BEGIN - COPY_EXISTING_REGEXP GLOB ".*\.bcs" override - SPRINT filename "%SOURCE_RES%" - DECOMPILE_AND_PATCH BEGIN - LPF process_baf STR_VAR editstring filename END - END - BUT_ONLY -END - -//////////////////////////////////////////////////////////////////////////////////////// -//// Core BAF editor. Takes as input a list of task=>arg -//// -//// Tasks are : leave_alone (arg ignored, block is reinserted) -//// patch (arg is a list of functions separated by |, functions act on -//// trigger and action string, result is outputted as a block in same -//// place as old block. Output empty trigger/action to avoid adding block) -//// insert_top (as patch, but block placed at start of script) -//// insert_bottom (as patch, but block placed at end of script) -///////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_baf - STR_VAR editstring="" - filename="" -BEGIN - // initialise - PATCH_FOR_EACH type IN top main bottom BEGIN - SET $count("%type%")=0 - END - SET blocknum=0 - SPRINT trig "" - SPRINT act "" - /// work around the space in RESPONSE # - REPLACE_TEXTUALLY "RESPONSE #" "RESPONSE-#" - /// read in the BAF file - READ_2DA_ENTRIES_NOW baf_rows 1 - /// parse the BAF file - FOR (i=0;i=0;i = i - 1) BEGIN - SPRINT trig_in $trig_top("%i%") - SPRINT act_in $act_top("%i%") - LPF process_baf_block_inserter INT_VAR rowcount STR_VAR act_in trig_in RET rowcount=rowcount END - END - // do main and bottom in normal order - FOR (i=0;i>>>>>>> - -// leaving effects for now, it depends on cretype -OUTER_SPRINT ~offset_readin_lookup_2da~ ~cre_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~CRE~ -LAUNCH_ACTION_MACRO read_in_offsets - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY cre_fields BEGIN - name1_string=> ~0x8,LONG~ - name2_string=> ~0xc,LONG~ - xp_value=> ~0x14,LONG~ - xp_total=> ~0x18,LONG~ - color_metal => ~0x2c,BYTE~ - color_minor => ~0x2d,BYTE~ - color_major => ~0x2e,BYTE~ - color_skin => ~0x2f,BYTE~ - color_leather => ~0x30,BYTE~ - color_armor => ~0x31,BYTE~ - color_hair => ~0x32,BYTE~ - hide_in_shadows => ~0x45,BYTE~ - detect_illusions => ~0x64,BYTE~ - set_traps => ~0x65,BYTE~ - lore =>~0x66,BYTE~ - open_locks=>~0x67,BYTE~ - move_silently=>~0x68,BYTE~ - find_traps=>~0x69,BYTE~ - pick_pockets=>~0x6a,BYTE~ - resist_fire =>~0x59,SBYTE~ - resist_cold =>~0x5a,SBYTE~ - resist_electricity =>~0x5b,SBYTE~ - resist_acid =>~0x5c,SBYTE~ - resist_magic =>~0x5d,SBYTE~ - resist_magic_fire =>~0x5e,SBYTE~ - resist_magic_cold =>~0x5f,SBYTE~ - resist_slashing =>~0x60,SBYTE~ - resist_crushing =>~0x61,SBYTE~ - resist_piercing =>~0x62,SBYTE~ - resist_missile =>~0x63,SBYTE~ - level => ~0x234,BYTE~ - level1 => ~0x234,BYTE~ - level2 => ~0x235,BYTE~ - level3 => ~0x236,BYTE~ - str => ~0x238,BYTE~ - str_ex => ~0x239,BYTE~ - int => ~0x23a,BYTE~ - wis => ~0x23b,BYTE~ - dex => ~0x23c,BYTE~ - con => ~0x23d,BYTE~ - cha => ~0x23e,BYTE~ - strength => ~0x238,BYTE~ - strength_ex => ~0x239,BYTE~ - intelligence => ~0x23a,BYTE~ - wisdom => ~0x23b,BYTE~ - dexterity => ~0x23c,BYTE~ - constitution => ~0x23d,BYTE~ - charisma => ~0x23e,BYTE~ - sex => ~0x237,BYTE~ - script_override => ~0x248,ASCII~ - script_class => ~0x250,ASCII~ - script_race => ~0x258,ASCII~ - script_general => ~0x260,ASCII~ - script_default => ~0x268,ASCII~ - specifics => ~0x274,BYTE~ - save_vs_death => ~0x54,SBYTE~ - save_vs_wand => ~0x55,SBYTE~ - save_vs_wands => ~0x55,SBYTE~ - save_vs_poly => ~0x56,SBYTE~ - save_vs_polymorph => ~0x56,SBYTE~ - save_vs_breath => ~0x57,SBYTE~ - save_vs_spell => ~0x58,SBYTE~ - save_vs_spells => ~0x58,SBYTE~ - thac0 => ~0x52,SBYTE~ - attacks => ~0x53,BYTE~ - hp_max => ~0x26,SHORT~ - hp_current => ~0x24,SHORT~ - dv => ~0x280,ASCII20~ - dialog => ~0x2cc,ASCII~ - animation_code => ~0x28,SHORT~ - effect_type => ~0x33,BYTE~ - ac_natural => ~0x46,SSHORT~ - ac_effective => ~0x48,SSHORT~ - morale => ~0x23f,BYTE~ - morale_break => ~0x240,BYTE~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=cre_fields function_prefix=CRE END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY cre_rel_fields BEGIN - item_resource => ~0x0,ASCII~ - item_charges_1 => ~0xa,SHORT~ - item_charges_2 => ~0xc,SHORT~ - item_charges_3 => ~0xe,SHORT~ - spell_resource => ~0x0,ASCII~ - opcode => ~0x8,LONG~ - resource=>~0x28,ASCII~ - target=>~0xc,LONG~ - effect_resource=>~0x28,ASCII~ - timing=>~0x1c,LONG~ - probability1=>~0x24,SHORT~ - // probability2=>~0x26,SHORT~ - probability2=>~0x14,LONG~ - duration=>~0x20,LONG~ - parameter1 => ~0x14,LONG~ - parameter2 => ~0x18,LONG~ - item_slot => ~0x0,SHORT~ - memorized_spell => ~0x0,ASCII~ - memorization_level => ~0x0,SHORT~ - number_can_memorize => ~0x2,SHORT~ - number_has_memorized => ~0x4,SHORT~ - memorization_type => ~0x6,SHORT~ - parent_resource_type=>~0x88,LONG~ - parent_resource=>~0x8c,ASCII~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=cre_rel_fields offset_base=~offset_base~ function_prefix=CRE END - - - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY cre_bit_fields BEGIN - no_corpse => ~0x10,1~ - permanent_corpse => ~0x10,2~ - original_class_fighter=>"0x10,3" - original_class_mage=>"0x10,4" - original_class_cleric=>"0x10,5" - original_class_thief=>"0x10,6" - original_class_druid=>"0x10,7" - original_class_ranger=>"0x11,0" - state_sleeping => ~0x20,0~ - state_berserk => ~0x20,1~ - state_panic => ~0x20,2~ - state_stunned => ~0x20,3~ - state_invisible => ~0x20,4~ - state_helpless => ~0x20,5~ - state_frozen_death => ~0x20,6~ - state_stone_death => ~0x20,7~ - state_exploding_death => ~0x21,0~ - state_flame_death =>~0x21,1~ - state_acid_death=>~0x21,2~ - state_dead=>~0x21,3~ - state_silenced=>~0x21,4~ - state_charmed=>~0x21,5~ - state_poisoned=>~0x21,6~ - state_hasted=>~0x21,7~ - state_slowed=>~0x22,0~ - state_infravision=>~0x22,1~ - state_blind=>~0x22,2~ - state_diseased=>~0x22,3~ - state_feebleminded=>~0x22,4~ - state_nondetection=>~0x22,5~ - state_improved_invisibility=>~0x22,6~ - state_bless=>~0x22,7~ - state_chant=>~0x23,0~ - state_drawuponholymight=>~0x23,1~ - state_luck=>~0x23,2~ - state_aid=>~0x23,3~ - state_chantbad=>~0x23,4~ - state_blur=>~0x23,5~ - state_mirrorimage=>~0x23,6~ - state_confused=>~0x23,7~ - state_hidden => ~0x22,3~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=cre_bit_fields function_prefix=CRE END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY cre_rel_bit_fields BEGIN - unstealable => ~0x10,1~ - undroppable => ~0x10,3~ -END - - -LAF build_flag_data_field_editors STR_VAR lookup_table=cre_rel_bit_fields offset_base="offset_base" function_prefix=CRE END - - - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// composite data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -// current and max hp - -DEFINE_PATCH_FUNCTION CRE_hitpoints STR_VAR arguments="" BEGIN - LAUNCH_PATCH_FUNCTION CRE_hp_max STR_VAR arguments= ~%arguments%~ END - LAUNCH_PATCH_FUNCTION CRE_hp_current STR_VAR arguments= ~%arguments%~ END -END - -// all three levels - -DEFINE_PATCH_FUNCTION CRE_level_all STR_VAR arguments="" BEGIN - LPF CRE_level STR_VAR arguments END - LPF CRE_level2 STR_VAR arguments END - LPF CRE_level3 STR_VAR arguments END -END - -// both ACs - -DEFINE_PATCH_FUNCTION CRE_ac STR_VAR arguments="" BEGIN - LPF CRE_ac_natural STR_VAR arguments END - LPF CRE_ac_effective STR_VAR arguments END -END - -// all saving throws - -DEFINE_PATCH_FUNCTION CRE_saves STR_VAR arguments="" BEGIN - INNER_ACTION BEGIN - LAUNCH_ACTION_FUNCTION decompose_CSV - STR_VAR input= ~%arguments%~ - RET save_vs_death=argument_0 - save_vs_wands=argument_1 - save_vs_poly=argument_2 - save_vs_breath=argument_3 - save_vs_spell=argument_4 - END - END - PATCH_FOR_EACH save IN death wands poly breath spell BEGIN - SPRINT ~string~ ~LAUNCH_PATCH_FUNCTION CRE_save_vs_%save% STR_VAR arguments= "%percentage%save_vs_%save%%percentage%" END~ - LAUNCH_PATCH_FUNCTION patch_reinclude_this STR_VAR input= ~%string%~ END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_saves") "" - -// original class - -DEFINE_PATCH_FUNCTION CRE_original_class STR_VAR arguments="" BEGIN - PATCH_MATCH "%arguments%" WITH - NO_CHANGE BEGIN END - FIGHTER MAGE CLERIC THIEF DRUID RANGER NONE BEGIN - TO_LOWER arguments - PATCH_FOR_EACH class IN - fighter mage cleric thief druid ranger BEGIN - PATCH_IF "%class%" STRING_EQUAL "%arguments%" BEGIN - LPF "CRE_original_class_%class%" INT_VAR arguments=1 END - END ELSE BEGIN - LPF "CRE_original_class_%class%" INT_VAR arguments=0 END - END - END - END - DEFAULT - PATCH_FAIL "%arguments% cannot be a character's original class, because you can't dual from that class" - END -END - -DEFINE_PATCH_FUNCTION CRE_read_original_class RET value BEGIN - SPRINT value none - PATCH_FOR_EACH class IN - fighter mage cleric thief druid ranger BEGIN - LPF "CRE_read_original_class_%class%" RET this_value=value END - PATCH_IF this_value=1 BEGIN - SPRINT value "%class%" - END - END - -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// data-field edits involving lookup -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY ~cre_ids_fields~ BEGIN - animation => ~0x28,SHORT,ANIMATE~ - allegiance => ~0x270,BYTE,EA~ - general => ~0x271,BYTE,general~ - race => ~0x272,BYTE,race~ - class => ~0x273,BYTE,class~ - gender => ~0x275,BYTE,gender~ - alignment => ~0x27b,BYTE,align~ - kit_vanilla => ~0x244,LONG_REVERSED,kit~ - kit => ~0x244,LONG_REVERSED,dw#kit~ -END - -LAUNCH_ACTION_FUNCTION build_IDS_data_field_editors STR_VAR lookup_table=cre_ids_fields function_prefix=CRE END - -// we'll overwrite gender by hand to also set the Sex field - -DEFINE_PATCH_FUNCTION ~CRE_gender~ - STR_VAR arguments="" -BEGIN - PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN - SET value = IDS_OF_SYMBOL (gender "%arguments%") - PATCH_IF value>0 BEGIN - WRITE_BYTE 0x275 value - PATCH_IF ~%arguments%~ STRING_EQUAL_CASE ~FEMALE~ BEGIN - WRITE_BYTE 0x237 2 - END - END ELSE BEGIN - LPF warning STR_VAR warning= "tried to set nonexistent %idsfile% entry %arguments%" END - END - END -END - - -// kit needs special treatment - -COPY_EXISTING kit.ids "override/dw#kit.ids" - COUNT_2DA_ROWS 2 rowcount - SET thisrow=0 - WHILE thisrow176 target=>1 timing=>9 parameter2=>1 parameter1=>%move%~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// strip scripts -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_strip_script /// takes as argument list of scripts - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_EQUAL_CASE all BEGIN - WRITE_ASCII 0x248 ~~ (0x28) - END ELSE BEGIN - - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET arguments=list script=entry END - FOR (i=0x248;i<0x270;i=i+8) BEGIN - READ_ASCII i ~current_script~ - PATCH_IF ~%current_script%~ STRING_EQUAL_CASE ~%script%~ BEGIN - WRITE_ASCII i ~~ (8) - END - END - LPF CRE_strip_script STR_VAR arguments= ~%arguments%~ END - END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_strip_script") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// swap scripts -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_swap_script /// takes as argument hash of maps - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list=~%arguments%~ RET arguments=list oldscript=key newscript=value END - FOR (i=0x248;i<0x270;i=i+8) BEGIN - READ_ASCII i ~current_script~ - PATCH_IF ~%current_script%~ STRING_EQUAL_CASE ~%oldscript%~ BEGIN - WRITE_ASCIIE i ~%newscript%~ (8) - END - END - LPF CRE_swap_script STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_swap_script") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// invert scripts -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_invert_scripts /// takes as argument hash of maps - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET arguments=list oldscript=key newscript=value END - FOR (i=0x248;i<0x270;i=i+8) BEGIN - READ_ASCII i ~current_script~ - PATCH_IF ~%current_script%~ STRING_EQUAL_CASE ~%oldscript%~ BEGIN - WRITE_ASCIIE i ~%newscript%~ (8) - END - PATCH_IF ~%current_script%~ STRING_EQUAL_CASE ~%newscript%~ BEGIN - WRITE_ASCIIE i ~%oldscript%~ (8) - END - END - LPF CRE_invert_scripts STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_invert_scripts") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// enforce script order (argument is "X above Y" or "X below Y") -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_enforce_script_order - STR_VAR arguments="" -BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET script1=entry list=list END - LPF return_first_entry STR_VAR list RET list=list abovebelow=entry END - PATCH_IF (~%abovebelow%~ STRING_COMPARE_CASE ~above~ && ~%abovebelow%~ STRING_COMPARE_CASE ~below~) BEGIN - LPF warning STR_VAR ~Warning: malformed argument in CRE_enforce_script_order~ END - END - LPF return_first_entry STR_VAR list RET list=list script2=entry END - PATCH_IF (~%abovebelow%~ STRING_EQUAL_CASE above) BEGIN - SPRINT top ~%script1%~ - SPRINT bottom ~%script2%~ - END ELSE BEGIN - SPRINT top ~%script2%~ - SPRINT bottom ~%script1%~ - TO_LOWER top - TO_LOWER bottom - END - SET top_loc=~-1~ - SET bottom_loc=~-1~ - FOR (i=0x248;i<0x268;i+=8) BEGIN - READ_ASCII i script - TO_LOWER script - PATCH_MATCH ~%script%~ WITH - ~%top%~ BEGIN - SET top_loc=i - END - ~%bottom%~ BEGIN - SET bottom_loc=i - END - DEFAULT END - END - PATCH_IF ((top_loc>bottom_loc) && (bottom_loc>0)) BEGIN - WRITE_ASCIIE top_loc ~%bottom%~ (8) - WRITE_ASCIIE bottom_loc ~%top%~ (8) - END - - -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_enforce_script_order") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// slot in this script where you can find space, from bottom up -///////////// if the argument has the form "script1 above script2", insert the script script1 immediately -///////////// above script2. Return the location of the new script. -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_insert_script - STR_VAR - arguments="" - filename="" - RET new_loc -BEGIN SET success=0 - new_loc=~-1~ - // parse the argument - LPF return_first_entry STR_VAR list= ~%arguments%~ RET script_new=entry list=list END - PATCH_IF ~%list%~ STRING_COMPARE_CASE ~~ BEGIN // it's a relative insertion - LPF return_first_entry STR_VAR list RET loc_instruction=entry list=list END - LPF strip_spaces_from_string STR_VAR string= ~%list%~ RET script_old=string END - // find the old script - LPF CRE_locate_script STR_VAR script= ~%script_old%~ RET loc=value END - PATCH_IF loc>=0 BEGIN - LPF CRE_bump_down INT_VAR loc RET value=value END - PATCH_IF value=1 BEGIN - SET high=loc - SET low=loc+8 - SET success=1 - END ELSE BEGIN - LPF CRE_bump_up INT_VAR loc RET value=value END - PATCH_IF value=1 BEGIN - SET high=loc - 8 - SET low=loc - SET success=1 - END - END - PATCH_IF success=1 BEGIN - TO_UPPER ~loc_instruction~ - PATCH_MATCH ~%loc_instruction%~ WITH - above before BEGIN - WRITE_ASCIIE high ~%script_new%~ (8) - WRITE_ASCIIE low ~%script_old%~ (8) - SET new_loc=high - END - below after BEGIN - WRITE_ASCIIE high ~%script_old%~ (8) - WRITE_ASCIIE low ~%script_new%~ (8) - SET new_loc=low - END - DEFAULT - LPF warning STR_VAR warning= ~Unrecognised command %arguments% in insert_script~ END - END - END - END - END ELSE BEGIN // it's straightforward - FOR (i=0x268;i>0x240;i=i - 8) BEGIN - READ_ASCII i ~test~ - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~~ OR ~%test%~ STRING_EQUAL_CASE ~none~ BEGIN - SET success=1 - SET new_loc=i - WRITE_ASCIIE i ~%script_new%~ (8) - SET i=0 - END - END - END - PATCH_IF success=0 BEGIN - LAUNCH_PATCH_FUNCTION warning STR_VAR warning= "Failed to insert script %arguments% in file %filename%" END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_insert_script") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_locate_script // find the location of this script - STR_VAR script="" - RET value -BEGIN - SET value= ~-1~ - FOR (i=0x248;i<0x270;i+=8) BEGIN - READ_ASCII i test - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~%script%~ BEGIN - SET value=i - SET i=0x270 - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_first_gap_below // find the first gap below location loc - INT_VAR loc=0x248 - RET value -BEGIN - SET value= ~-1~ - FOR (i=loc;i<0x270;i+=8) BEGIN - READ_ASCII i test - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~~ OR ~%test%~ STRING_EQUAL_CASE ~none~ BEGIN - SET value=i - SET i=0x270 - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_first_gap_above // find the first gap above location loc - INT_VAR loc=0x248 - RET value -BEGIN - SET value= ~-1~ - FOR (i=loc;i>0x240;i=i - 8) BEGIN - READ_ASCII i test - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~~ OR ~%test%~ STRING_EQUAL_CASE ~none~ BEGIN - SET value=i - SET i=0x240 - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_bump_down // try to create a space below script at loc by bumping scripts down; return 1 if successful - INT_VAR loc=0x248 - RET value -BEGIN - SET value= 0 - LPF CRE_first_gap_below INT_VAR loc RET gap=value END - PATCH_IF gap>=0 BEGIN - FOR (i=gap - 8;i>loc;i=i - 8) BEGIN - READ_ASCII i temp - WRITE_ASCIIE (i+8) ~%temp%~ (8) - END - WRITE_ASCII (loc+8) ~~ (8) - SET value=1 - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_bump_up // try to create a space above script at loc by bumping scripts up; return 1 if successful - INT_VAR loc=0x248 - RET value -BEGIN - SET value= 0 - LPF CRE_first_gap_above INT_VAR loc RET gap=value END - PATCH_IF gap>=0 BEGIN - FOR (i=gap+8;i0x240;i=i - 8) BEGIN - READ_ASCII i ~test~ - SET blank=0 - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~~ OR ~%test%~ STRING_EQUAL_CASE ~none~ BEGIN - SET blank=i - SET i=0 - END - END - PATCH_IF blank=0 BEGIN - LAUNCH_PATCH_FUNCTION warning STR_VAR warning= "Failed to find a space to insert script %arguments% in file %filename%" END - END ELSE BEGIN - FOR (i=blank;i<0x268;i=i+8) BEGIN - READ_ASCII i+8 ~move~ - WRITE_ASCIIE i ~%move%~ (8) - END - WRITE_ASCIIE 0x268 ~%arguments%~ (8) - END -END - -DEFINE_PATCH_FUNCTION CRE_insert_script_high - STR_VAR - arguments="" - filename="" -BEGIN - FOR (i=0x248;i<0x270;i=i + 8) BEGIN - READ_ASCII i ~test~ - SET blank=0 - PATCH_IF ~%test%~ STRING_EQUAL_CASE ~~ OR ~%test%~ STRING_EQUAL_CASE ~none~ BEGIN - SET blank=i - SET i=0x270 - END - END - PATCH_IF blank=0 BEGIN - LAUNCH_PATCH_FUNCTION warning STR_VAR warning= "Failed to find a space to insert script %arguments% in file %filename%" END - END ELSE BEGIN - FOR (i=blank;i>0x248;i=i - 8) BEGIN - READ_ASCII i - 8 ~move~ - WRITE_ASCIIE i ~%move%~ (8) - END - WRITE_ASCIIE 0x248 ~%arguments%~ (8) - END -END - -DEFINE_PATCH_FUNCTION CRE_insert_script_above // legacy syntax - STR_VAR - arguments="" - filename="" -BEGIN - LPF CRE_insert_script_high STR_VAR arguments filename END -END - -DEFINE_PATCH_FUNCTION CRE_insert_script_below // legacy syntax - STR_VAR - arguments="" - filename="" -BEGIN - LPF CRE_insert_script_low STR_VAR arguments filename END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// looks for a script anywhere and returns 1 if true -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_match_script - STR_VAR - arguments="" - RET - value -BEGIN - SET value=0 - FOR (i=0x248;i<0x270;i=i+8) BEGIN - READ_ASCII i ~script~ - PATCH_IF ~%script%~ STRING_EQUAL_CASE ~%arguments%~ BEGIN - SET value=1 - SET i=0x270 - END - END -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~CRE_match_script - -~ END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// add a spell by name alone (if spell has form SPELL(x), add it x times) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ~QUICK_ADD_SPELL~ - INT_VAR as_known=0 - STR_VAR ~spellname~="" -BEGIN - LPF return_function_and_argument STR_VAR input= ~%spellname%~ RET spellname=function number=argument END - - PATCH_IF ~%number%~ STRING_EQUAL_CASE ~~ BEGIN - SET number=1 - END - LPF deabbreviate_spellname STR_VAR input= ~%spellname%~ RET spellname=spellname END - LPF get_spellcode STR_VAR input= ~%spellname%~ RET spell=value END - INNER_PATCH_SAVE spell ~%spell%~ BEGIN - REPLACE_TEXTUALLY ~%percentage%~ ~~ - END - TO_UPPER spell - PATCH_IF VARIABLE_IS_SET ~%spellname%_LEVEL~ BEGIN - SET ~spell_level~= ~%%spellname%_LEVEL%~ - SPRINT ~spell_type~ EVALUATE_BUFFER ~%%spellname%_TYPE%~ - END ELSE - PATCH_IF VARIABLE_IS_SET ~RESREF_%spell%_LEVEL~ BEGIN - SET ~spell_level~= ~%RESREF_%spell%_LEVEL%~ - SPRINT ~spell_type~ EVALUATE_BUFFER ~%RESREF_%spell%_TYPE%~ - END ELSE BEGIN - INNER_ACTION BEGIN - COPY_EXISTING ~%spell%.spl~ ~override~ - LPF SPL_read_spell_type RET spell_type=value END - LPF SPL_read_level RET spell_level=value END - SET spell_level=spell_level - 1 - BUT_ONLY - END - END - PATCH_IF "%spell_type%" STRING_EQUAL_CASE innate BEGIN - SET spell_level=0 - END - PATCH_IF ~%spell_type%~ STRING_EQUAL_CASE hla BEGIN - INNER_ACTION BEGIN - COPY_EXISTING ~%spell%.spl~ ~override~ - PATCH_MATCH SHORT_AT 0x1c WITH - 1 BEGIN - SPRINT spell_type wizard - END - 2 BEGIN - SPRINT spell_type priest - END - DEFAULT - SPRINT spell_type innate - SPRINT spell_level 0 - END - BUT_ONLY - END - END - PATCH_IF as_known BEGIN - SPRINT command "ADD_KNOWN_SPELL" - END ELSE BEGIN - SPRINT command "ADD_MEMORIZED_SPELL" - END - FOR (i=0;i0 BEGIN - // find highest level known - INNER_ACTION BEGIN - COPY_EXISTING "%list%.2da" "%workspace%" - COUNT_2DA_COLS colcount // also gives # spell levels+1 - COUNT_2DA_ROWS colcount rowcount - SET highest=0 - FOR (i=0;ispl_off BEGIN - READ_ASCII spl_off check (4) - READ_ASCII spl_off temp - PATCH_IF ~%check%~ STRING_EQUAL_CASE ~%arguments%~ BEGIN - PATCH_IF skip_hidden BEGIN - TO_LOWER temp - PATCH_IF !VARIABLE_IS_SET $spell_is_hidden("%temp%") BEGIN - SPRINT list "%list% %temp%" - END - END ELSE BEGIN - SPRINT ~list~ ~%list% %temp%~ - END - END - END - END - WHILE ~%list%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list RET spell=entry list=list END - PATCH_IF !known_only BEGIN - REMOVE_MEMORIZED_SPELL ~%spell%~ - END - REMOVE_KNOWN_SPELL ~%spell%~ - END -END - -DEFINE_PATCH_FUNCTION CRE_remove_spell - STR_VAR arguments = "" -BEGIN - LPF get_spellcode STR_VAR input="%arguments%" RET spellcode=value END - REMOVE_MEMORIZED_SPELL ~%spellcode%~ - REMOVE_KNOWN_SPELL ~%spellcode%~ -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to a spell (opcode 206) -///////////// -///////////// if we use "arguments" assume it's a string of entries -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_immunity_to_spell - STR_VAR spellname="" - spellcode="" - arguments="" -BEGIN - PATCH_IF ~%spellname%~ STRING_COMPARE_CASE ~~ BEGIN - LPF deabbreviate_spellname STR_VAR input= ~%spellname%~ RET spellname END - PATCH_IF VARIABLE_IS_SET "%spellname%" BEGIN - SPRINT spellcode EVALUATE_BUFFER ~%%spellname%%~ - END ELSE BEGIN - SPRINT spellcode "%spellname%" - LPF warning STR_VAR warning="Spell %spellname% does not appear to exist" END - END - END - PATCH_IF ~%spellcode%~ STRING_COMPARE_CASE ~~ BEGIN - LPF add_entry_inline STR_VAR arguments =~opcode=>206 timing=>9 resource=>%spellcode%~ type=effect file_ext=CRE END - END - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET spell=entry arguments=list END - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%spell%.spl~ BEGIN - OUTER_SPRINT spellcode ~%spell%~ - OUTER_SPRINT spellname ~~ - END ELSE BEGIN - OUTER_SPRINT spellname ~%spell%~ - OUTER_SPRINT spellcode ~~ - END - END - LPF CRE_immunity_to_spell STR_VAR arguments spellname spellcode END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_immunity_to_spell") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to a string (opcode 267) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_immunity_to_string - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET entry=entry arguments=list END - LPF add_entry_inline STR_VAR arguments =~opcode=>267 timing=>9 parameter1=>%entry%~ type=effect file_ext=CRE END - LPF CRE_immunity_to_string STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_immunity_to_string") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to an opcode (opcode 101) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_immunity_to_opcode - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list=~%arguments%~ RET entry=entry arguments=list END - LPF delete_entry STR_VAR type=effect arguments=~opcode=101 and parameter2=%entry%~ file_ext=CRE END - LPF add_entry_inline STR_VAR arguments =~opcode=>101 timing=>9 parameter2=>%entry%~ type=effect file_ext=CRE END - LPF CRE_immunity_to_opcode STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_immunity_to_opcode") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to an icon (opcode 169) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_immunity_to_icon - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET entry=entry arguments=list END - LPF add_entry_inline STR_VAR arguments =~opcode=>169 timing=>9 parameter2=>%entry%~ type=effect file_ext=CRE END - LPF CRE_immunity_to_icon STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_immunity_to_icon") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// enforce saving throws by class and level -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_enforce_saves - STR_VAR arguments="" -BEGIN - // initialise the enforced values - PATCH_FOR_EACH save IN death wand polymorph breath spell BEGIN - SET ~enforced_%save%~ = 20 - END - // read in class and decompose - LPF CRE_read_class RET classlist=value END - // go through each class, get its saves for the CRE's level, and update the record of the correct saves - SET levelnum=1 - WHILE ~%classlist%~ STRING_COMPARE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%classlist%~ separator ="_" RET classlist=list class=entry END - TO_UPPER class - PATCH_IF !VARIABLE_IS_SET $class_file_save_map( ~%class%~) BEGIN - SPRINT core_type WAR - END ELSE BEGIN - SPRINT core_type $class_file_save_map( ~%class%~) - END - LPF ~CRE_read_level%levelnum%~ RET level=value END - SET level=level<1?1:level - SET level=level>maximum_character_level?maximum_character_level:level - PATCH_FOR_EACH save IN death wand polymorph breath spell BEGIN - SET possible = $saving_throw_value_base(~%core_type%~ ~%level%~ ~%save%~) - SET ~enforced_%save%~ = ~enforced_%save%~ >possible ? possible : ~enforced_%save%~ - END - SET levelnum=levelnum+1 - END - // do the comparison - PATCH_FOR_EACH save IN death wand polymorph breath spell BEGIN - LPF ~CRE_read_save_vs_%save%~ RET currentsave = value END - SET possiblesave = ~enforced_%save%~ - PATCH_MATCH ~%arguments%~ WITH - at_worst - BEGIN - SET newsave=currentsavepossiblesave ? currentsave : possiblesave - END - within_tolerance - BEGIN - LPF check_ini STR_VAR ini=save_tolerance RET tolerance=value END - SET new=(ABS(possible - current)) maximum_character_level ? maximum_character_level : level - READ_2DA_ENTRY_FORMER thac0_table_read rowcount level temp - SET possible = possible < temp ? possible : temp - END - SET rowcount=rowcount+1 - END - PATCH_IF possible=21 BEGIN // didn't find anything - LPF CRE_read_level1 RET level1=value END - SET possible = level1 > 20 ? 0 : (20 - level1) - END - LPF CRE_read_thac0 RET current=value END - PATCH_MATCH ~%arguments%~ WITH - at_worst - BEGIN - SET new=currentpossible ? current : possible - END - only_if_new - BEGIN - SET new=current=100 ? possible : current - END - within_tolerance - BEGIN - LPF check_ini STR_VAR ini=thac0_tolerance RET tolerance=value END - SET new=(ABS(possible - current))possible ? current : possible - END - at_best - BEGIN - SET new=current0xa4 - morale=>0xa8 - happy=>0xac - battle_cry1=>0xc8 - battle_cry2=>0xcc - attack1=>0xdc - attack2=>0xe0 - damage=>0xec - dying=>0xf0 - END - SET loc=$sound_map("%key%") - SET val=RESOLVE_STR_REF ( ( AT "%value%")) - WRITE_LONG loc val - LPF CRE_say_sounds STR_VAR arguments END - END -END - -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_say_sounds") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// steal soundset -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_steal_sounds_from - STR_VAR arguments="" -BEGIN - SET found=0 - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%arguments%.cre~ BEGIN - OUTER_SET found=1 - COPY_EXISTING ~%arguments%.cre~ ~override~ - READ_ASCII 0xa4 sounddata (0x190) - BUT_ONLY - END - END - PATCH_IF found BEGIN - WRITE_ASCIIE 0xa4 ~%sounddata%~ (0x190) - END ELSE BEGIN - LPF warning STR_VAR warning=~Tried to steal soundset from %arguments%.cre, but it doesn't exist~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// add a list of items -///////////// -///////////// syntax is add_items => ~string~ -///////////// string is list in format ITEMNAME or ITEMNAME(arguments) -///////////// arguments is either (arg) or (arg,arg) -///////////// arg is either a slot name (case-insensitive), NOTEQUIP, or xNUM -///////////// NUM is either a number or n.m.o - in the latter case it's the number to go into each item-num slot -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_add_items - INT_VAR replace=0 - STR_VAR arguments="" -BEGIN - SET equip=1 - INNER_ACTION BEGIN - LAUNCH_ACTION_MACRO read_in_item_types - END - WHILE ~%arguments%~ STRING_COMPARE ~~ BEGIN - SPRINT ~slot~ ~NONE~ - SET num1=0 - SET num2=0 - SET num3=0 - SET twohanded=0 - LPF return_first_entry STR_VAR list= ~%arguments%~ RET entry=entry arguments=list END - LPF return_function_and_argument STR_VAR input= ~%entry%~ RET item=function properties=argument END - TO_LOWER ~item~ - WHILE ~%properties%~ STRING_COMPARE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%properties%~ separator = "," RET arg_entry=entry properties=list END - LPF return_first_letter STR_VAR input= ~%arg_entry%~ RET firstletter=firstletter rest=rest END - PATCH_IF ~%firstletter%~ STRING_EQUAL_CASE "X" BEGIN // it's numeric - SET entrynumber=1 - WHILE ~%rest%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%rest%~ separator = "\." RET entry=entry rest=list END - SET ~num%entrynumber%~= ~%entry%~ - SET entrynumber=entrynumber+1 - END - END ELSE BEGIN - PATCH_IF "%arg_entry%" STRING_EQUAL_CASE notequip BEGIN - SET equip=0 - END ELSE BEGIN - // it's a slot - TO_UPPER ~arg_entry~ - SPRINT ~slot~ ~%arg_entry%~ - END - END - END - PATCH_IF ~%slot%~ STRING_EQUAL_CASE ~NONE~ BEGIN - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%item%.itm~ BEGIN - COPY_EXISTING ~%item%.itm~ ~override~ - SPRINT ~ITM_file~ ~%SOURCE_RES%~ - TO_LOWER ~ITM_file~ - READ_SHORT 0x1c item_type_code - PATCH_IF VARIABLE_IS_SET $item_location_map(~%item_type_code%~) BEGIN - SPRINT ~slot~ $item_location_map(~%item_type_code%~) - TO_UPPER ~slot~ - END ELSE BEGIN - SPRINT ~slot~ INV - END - BUT_ONLY - END ELSE BEGIN - LAF warning STR_VAR warning= "Warning: tried to add item %item%, but it doesn't (yet) exist and you haven't told me its slot" END - END - END - END - PATCH_IF ~%slot%~ STRING_COMPARE_CASE ~NONE~ BEGIN - PATCH_IF ~%slot%~ STRING_EQUAL_CASE ~two-handed~ BEGIN - SPRINT ~slot~ ~WEAPON~ - SET twohanded=1 - END - PATCH_IF replace BEGIN - SPRINT string ~REPLACE_CRE_ITEM~ - END ELSE BEGIN - SPRINT string ~ADD_CRE_ITEM~ - END - SPRINT ~string~ ~%string% %item% #%num1% #%num2% #%num3% NONE %slot%~ - PATCH_IF ~%slot%~ STRING_EQUAL_CASE ~WEAPON~ BEGIN - PATCH_IF equip BEGIN - SPRINT ~string~ ~%string% EQUIP~ - END - PATCH_IF twohanded=1 BEGIN - SPRINT ~string~ ~%string% TWOHANDED~ - END - END - LPF patch_reinclude_this STR_VAR input= ~%string%~ END - END - - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_add_items") "" - - -DEFINE_PATCH_FUNCTION CRE_replace_items - STR_VAR arguments="" -BEGIN - LPF CRE_add_items INT_VAR replace=1 STR_VAR arguments END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_replace_items") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// remove items - just a hook for extant code -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_remove_items - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_EQUAL_CASE ~all~ BEGIN - SPRINT ~temp~ ~REMOVE_CRE_ITEMS~ - END ELSE BEGIN - SPRINT ~temp~ ~REMOVE_CRE_ITEM %arguments%~ - END - LPF patch_reinclude_this STR_VAR input= ~%temp%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_remove_items") "" - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// build a basic creature -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_build -BEGIN - ///// basic structure - DELETE_BYTES 0x0 BUFFER_LENGTH - INSERT_BYTES 0x0 0x434 - - // sig - WRITE_ASCII 0x0 ~CRE V1.0~ - // name - WRITE_LONG 0x8 ~-1~ - WRITE_LONG 0xc ~-1~ - // hit points - WRITE_SHORT 0x24 0xff - WRITE_SHORT 0x24 0xff - // animation - WRITE_SHORT 0x28 0xffff - // effect flag - WRITE_BYTE 0x33 1 - // portrait - WRITE_ASCII 0x34 None - WRITE_ASCII 0x3c None - // AC - WRITE_SHORT 0x46 10 - WRITE_SHORT 0x48 10 - // THAC0 - WRITE_BYTE 0x52 100 - // #at - WRITE_BYTE 0x53 1 - // saves - WRITE_BYTE 0x54 100 - WRITE_BYTE 0x55 100 - WRITE_BYTE 0x56 100 - WRITE_BYTE 0x57 100 - WRITE_BYTE 0x58 100 - SET sound_loc=0xa4 - WHILE sound_loc < 0x234 BEGIN - WRITE_LONG sound_loc ~-1~ - SET sound_loc = sound_loc +4 - END - // level - WRITE_BYTE 0x234 1 - WRITE_BYTE 0x235 1 - WRITE_BYTE 0x236 1 - // sex - WRITE_BYTE 0x237 1 - // abilities - WRITE_BYTE 0x238 9 - WRITE_BYTE 0x23a 9 - WRITE_BYTE 0x23b 9 - WRITE_BYTE 0x23c 9 - WRITE_BYTE 0x23d 9 - WRITE_BYTE 0x23e 9 - // morale [NEEDS RESEARCH] - WRITE_BYTE 0x23f 10 - WRITE_BYTE 0x240 5 - WRITE_BYTE 0x242 60 - // racial enemy - WRITE_BYTE 0x241 0xff - // EA - WRITE_BYTE 0x270 128 - // general - WRITE_BYTE 0x271 1 - // race - WRITE_BYTE 0x272 1 - // class - WRITE_BYTE 0x273 0xff - // gender - WRITE_BYTE 0x275 1 - // alignment - WRITE_BYTE 0x27b 34 - // probably needs this value - WRITE_SHORT 0x27c 0xffff - WRITE_SHORT 0x27e 0xffff - //// - //offsets - WRITE_LONG 0x2a0 0x2d4 - WRITE_LONG 0x2a8 0x2d4 - WRITE_LONG 0x2ac 17 - WRITE_LONG 0x2b0 0x3e4 - WRITE_LONG 0x2b8 0x3e4 - WRITE_LONG 0x2bc 0x3e4 - WRITE_LONG 0x2c4 0x3e4 - //memorization data - //priest - FOR(level=0;level<7;level=level+1) BEGIN - WRITE_SHORT level* 0x10 + 0x2d4 ~level~ - END - // wizard - FOR(level=0;level<9;level=level+1) BEGIN - WRITE_SHORT level* 0x10 + 0x344 ~level~ - WRITE_SHORT 0x6 + level* 0x10 + 0x344 1 - END - // innate - WRITE_SHORT 0x3da 2 - // item slot wipe - FOR (i=0x3e4;i<0x430;i=i+2) BEGIN - WRITE_SHORT i ~-1~ - END - -END - -DEFINE_PATCH_FUNCTION CRE_postbuild -BEGIN - LPF CRE_enforce_saves STR_VAR arguments=only_if_new END - LPF CRE_enforce_thac0 STR_VAR arguments=only_if_new END - LPF CRE_enforce_animation STR_VAR arguments=only_if_new END - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find the current value of a proficiency -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_read_proficiency - STR_VAR arguments="" - RET value -BEGIN - SET value=0 - TO_UPPER arguments - SPRINT prof ~PROFICIENCY%arguments%~ - SET prof_int_target=IDS_OF_SYMBOL (~stats~ ~%prof%~) - SPRINT entry_type effect - SPRINT file_ext CRE - LAUNCH_PATCH_MACRO get_offset_array - SET prof=0 - PHP_EACH offset_array AS int =>offset_base BEGIN - LPF CRE_read_opcode INT_VAR offset_base= ~%offset_base%~ RET opcode=value END - PATCH_IF opcode=233 BEGIN - LPF CRE_read_parameter2 INT_VAR offset_base= ~%offset_base%~ RET prof_int=value END - PATCH_IF prof_int=prof_int_target BEGIN - LPF CRE_read_parameter1 INT_VAR offset_base= ~%offset_base%~ RET value=value END - END - END - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// add a proficiency (by name) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_add_proficiencies - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET prof=key add=value arguments=list END - LPF CRE_read_proficiency STR_VAR arguments= ~%prof%~ RET old_value=value END - TO_UPPER prof - SET_BG2_PROFICIENCY ~PROFICIENCY%prof%~ old_value+add - LPF CRE_add_proficiencies STR_VAR arguments= ~%arguments%~ END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_add_proficiencies") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set a proficiency -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_set_proficiencies - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET prof=key set=value arguments=list END - TO_UPPER prof - SET_BG2_PROFICIENCY ~PROFICIENCY%prof%~ set - LPF CRE_set_proficiencies STR_VAR arguments= ~%arguments%~ END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_set_proficiencies") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// wipe existing proficiencies (BG1 and BG2) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_wipe_proficiencies - STR_VAR arguments="" -BEGIN - WRITE_ASCII 0x6e ~~ (8) - LPF CRE_delete_opcodes STR_VAR arguments=233 END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// swap an item -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_swap_items - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET old=key new=value arguments=list END - REPLACE_TEXTUALLY CASE_INSENSITIVE ~%old%~ ~%new%~ (8) - LPF CRE_swap_items STR_VAR arguments= ~%arguments%~ END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_swap_items") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// delete specified effects -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_delete_opcodes - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET entry=entry arguments=list END - LPF delete_entry STR_VAR type=effect arguments="opcode=%entry%" file_ext=CRE END - LPF CRE_delete_opcodes STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_delete_opcodes") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// PC detector (assumes a PC grid already read in) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_PC - STR_VAR filename="" - RET value -BEGIN - LPF CRE_read_dv RET dv=value END - TO_LOWER dv - PATCH_IF VARIABLE_IS_SET $script_name_pdialog( ~%dv%~) BEGIN - SET value=1 - END ELSE BEGIN - PATCH_IF ~%filename%~ STRING_EQUAL_CASE ~charbase~ BEGIN - SET value=1 - END ELSE BEGIN - SET value=0 - END - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// warrior detector -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_warrior - STR_VAR class=UNKNOWN - RET value -BEGIN - PATCH_IF ~%class%~ STRING_EQUAL_CASE UNKNOWN BEGIN - LPF CRE_read_class RET class=value END - END - PATCH_MATCH ~%class%~ WITH - FIGHTER PALADIN RANGER FIGHTER_MAGE FIGHTER_CLERIC FIGHTER_THIEF FIGHTER_DRUID FIGHTER_MAGE_CLERIC FIGHTER_MAGE_THIEF - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// thief detector -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_thief - RET value -BEGIN - LPF CRE_read_class RET class=value END - PATCH_MATCH ~%class%~ WITH - THIEF CLERIC_THIEF MAGE_THIEF FIGHTER_THIEF FIGHTER_MAGE_THIEF - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// innocence detector -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_innocent - RET value -BEGIN - LPF CRE_read_class RET class=value END - PATCH_MATCH ~%class%~ WITH - INNOCENT - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// alignment detectors -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_evil - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - LAWFUL_EVIL CHAOTIC_EVIL NEUTRAL_EVIL - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END - -DEFINE_PATCH_FUNCTION CRE_is_good - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - LAWFUL_GOOD CHAOTIC_GOOD NEUTRAL_GOOD - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END -DEFINE_PATCH_FUNCTION CRE_is_lawful - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - LAWFUL_GOOD LAWFUL_NEUTRAL LAWFUL_EVIL - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END -DEFINE_PATCH_FUNCTION CRE_is_chaotic - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - CHAOTIC_GOOD CHAOTIC_NEUTRAL CHAOTIC_EVIL - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END -DEFINE_PATCH_FUNCTION CRE_is_geneutral - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL LAWFUL_NEUTRAL CHAOTIC_NEUTRAL NONE - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END - -DEFINE_PATCH_FUNCTION CRE_is_lcneutral - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL NEUTRAL_GOOD NEUTRAL_EVIL NONE - BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END -END - - -DEFINE_PATCH_FUNCTION CRE_make_lawful - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL CHAOTIC_NEUTRAL NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_NEUTRAL END - END - NEUTRAL_GOOD CHAOTIC_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_GOOD END - END - NEUTRAL_EVIL CHAOTIC_EVIL - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_EVIL END - END - DEFAULT - END -END - - -DEFINE_PATCH_FUNCTION CRE_make_chaotic - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL LAWFUL_NEUTRAL NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_NEUTRAL END - END - NEUTRAL_GOOD LAWFUL_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_GOOD END - END - NEUTRAL_EVIL LAWFUL_EVIL - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_EVIL END - END - DEFAULT - END -END - -DEFINE_PATCH_FUNCTION CRE_make_lcneutral - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - CHAOTIC_NEUTRAL LAWFUL_NEUTRAL NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL END - END - CHAOTIC_GOOD LAWFUL_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL_GOOD END - END - CHAOTIC_EVIL LAWFUL_EVIL - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL_EVIL END - END - DEFAULT - END -END - -DEFINE_PATCH_FUNCTION CRE_make_good - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL NEUTRAL_EVIL NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL_GOOD END - END - CHAOTIC_NEUTRAL CHAOTIC_EVIL - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_GOOD END - END - LAWFUL_NEUTRAL LAWFUL_EVIL - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_GOOD END - END - DEFAULT - END -END - -DEFINE_PATCH_FUNCTION CRE_make_evil - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL NEUTRAL_GOOD NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL_EVIL END - END - CHAOTIC_NEUTRAL CHAOTIC_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_EVIL END - END - LAWFUL_NEUTRAL LAWFUL_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_EVIL END - END - DEFAULT - END -END -DEFINE_PATCH_FUNCTION CRE_make_geneutral - RET value -BEGIN - LPF CRE_read_alignment RET alignment=value END - PATCH_MATCH ~%alignment%~ WITH - NEUTRAL_EVIL NEUTRAL_GOOD NONE - BEGIN - LPF CRE_alignment STR_VAR arguments=NEUTRAL END - END - CHAOTIC_EVIL CHAOTIC_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=CHAOTIC_NEUTRAL END - END - LAWFUL_EVIL LAWFUL_GOOD - BEGIN - LPF CRE_alignment STR_VAR arguments=LAWFUL_NEUTRAL END - END - DEFAULT - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// return item in a given slot -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_read_item_in_slot - STR_VAR arguments="" - RET value -BEGIN - PATCH_IF !VARIABLE_IS_SET $item_slot_map(0) BEGIN - INNER_ACTION BEGIN - LAUNCH_ACTION_MACRO read_in_item_slots - END - END - TO_UPPER arguments - SET slot_loc=$item_slot_map(~%arguments%~) - SET offset_slot=2*slot_loc+LONG_AT $CREoffset_loc(~item_slots~) - READ_SSHORT offset_slot item_num - PATCH_IF item_num= ~-1~ BEGIN - SPRINT value ~~ - END ELSE BEGIN - SET offset_base=LONG_AT $CREoffset_loc(~item~) + item_num * $CREentry_length(~item~) - LPF CRE_read_item_resource STR_VAR offset_base RET value=value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// check if creature has a given spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_has_spell - STR_VAR arguments="" - RET value -BEGIN - SET value=0 - LPF get_spellcode STR_VAR input= ~%arguments%~ RET spell=value END - SPRINT entry_type memorized_spell - SPRINT file_ext CRE - LAUNCH_PATCH_MACRO get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF CRE_read_memorized_spell STR_VAR offset_base RET spell_here=value END - PATCH_IF ~%spell_here%~ STRING_EQUAL_CASE ~%spell%~ BEGIN - SET value=1 - END - END -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~CRE_has_spell - -~ END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// check if creature is dead -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_is_dead -RET value -BEGIN - LPF CRE_read_state_dead RET value1=value END - LPF CRE_read_state_stone_death RET value2=value END - value= (value1 || value2) -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~CRE_is_dead - -~ END - - -///////////////////////////////////////////////////////////////////////////////////////////// -/// Returns 1 if creature is unintelligent -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_check_if_moron // morons, by definition, are non-zombies, non-golems, and in one of the following categories: (i) general=HUMANOID,GIANTHUMANOID, or UNDEAD; (ii) race=DEMONIC, BEHOLDER or LYCANTHROPE; (iii) class=WOLF_VAMPIRIC, DOPPLEGANGER, or DRAGON - RET value -BEGIN - LPF CRE_read_race RET race=value END - TO_UPPER race - PATCH_MATCH ~%race%~ WITH - ZOMBIE BEGIN - SET value=1 - END - DEMONIC DOPPLEGANGER LYCANTHROPE BEHOLDER BEGIN - SET value=0 - END - DEFAULT - LPF CRE_read_general RET general=value END - TO_UPPER general - PATCH_MATCH ~%general%~ WITH - HUMANOID GIANTHUMANOID BEGIN - PATCH_MATCH ~%class%~ WITH - GOLEM_STONE GOLEM_FLESH GOLEM_CLAY GOLEM_IRON BEGIN - SET value=1 - END - DEFAULT - SET value=0 - END - END - UNDEAD BEGIN - PATCH_IF (~%class%~ STRING_EQUAL SKELETON) BEGIN - SET value=1 - END ELSE BEGIN - SET value=0 - END - END - DEFAULT - LPF CRE_read_class RET class=value END - TO_UPPER class - PATCH_MATCH ~%class%~ WITH - DRAGON DOPPLEGANGER WOLF_VAMPIRIC BEGIN - SET value=0 - END - DEFAULT - SET value=1 - END - END - END -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~CRE_check_if_moron - -~ END - - -///////////////////////////////////////////////////////////////////////////////////////////// -/// logs the name of the creature -///////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION CRE_log_me STR_VAR filename="" arguments="" BEGIN - LPF patch_log_this STR_VAR file= ~%arguments%~ input= ~%filename%~ repeat=no END -END - -//////////////////////////////////////////////////////////////////////////////////////////// -/// find the highest spell level memorised -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_find_highest_spell_level -STR_VAR arguments=mage -RET value -BEGIN - SET value=0 - SPRINT file_ext CRE - SPRINT entry_type memorization_info - LAUNCH_PATCH_MACRO get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - READ_SHORT offset_base level - READ_SHORT offset_base+0xc number - READ_SHORT offset_base+0x6 type - PATCH_IF number>0 BEGIN - SET true_level=level+1 - PATCH_IF true_level>value BEGIN - PATCH_IF ((~%arguments%~ STRING_EQUAL_CASE mage && type=1) || (~%arguments%~ STRING_EQUAL_CASE priest && type=0)) BEGIN - SET value=true_level - END - END - END - END - -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_set_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0xc arguments= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION CRE_set_unidentified_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x8 arguments= ~%arguments%~ END -END -DEFINE_PATCH_FUNCTION CRE_say_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0x8 say= ~%arguments%~ END -END -DEFINE_PATCH_FUNCTION CRE_say_unidentified_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0xc say= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION CRE_set_both_names - STR_VAR arguments="" -BEGIN - LPF CRE_set_name STR_VAR arguments END - LPF CRE_set_unidentified_name STR_VAR arguments END -END - -DEFINE_PATCH_FUNCTION CRE_say_both_names - STR_VAR arguments="" -BEGIN - LPF CRE_say_name STR_VAR arguments END - LPF CRE_say_unidentified_name STR_VAR arguments END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////// -/// make casting innate -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_make_casting_innate -STR_VAR arguments="" -BEGIN - PATCH_MATCH "%arguments%" WITH - null BEGIN - SET value=1 - END - never BEGIN - SET value=0 - END - DEFAULT - LPF check_label STR_VAR label="%arguments%" RET value=value END - END - PATCH_IF value BEGIN - LPF CRE_immunity_to_opcode STR_VAR file_ext=CRE arguments="38 60 80" END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////// -/// make casting instant -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_make_casting_instant -STR_VAR arguments="" -BEGIN - PATCH_MATCH "%arguments%" WITH - null BEGIN - SET value=1 - END - never BEGIN - SET value=0 - END - DEFAULT - LPF check_label STR_VAR label="%arguments%" RET value=value END - END - PATCH_IF value BEGIN - LPF CRE_delete_opcodes STR_VAR file_ext=CRE arguments=189 END - LPF add_entry_inline STR_VAR file_ext=CRE type=effect arguments=~opcode=>189 parameter1=>10~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////// -/// immunity to various elemental effects -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_immunity -STR_VAR arguments="" -BEGIN - PATCH_MATCH ~%arguments%~ WITH - FIRE fire BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%RED_DRAGON_HIT% %WIZARD_METEOR_SWARM% %WIZARD_INCENDIARY_CLOUD% %CLERIC_FIRE_STORM% %WIZARD_FIREBALL% %WIZARD_DELAYED_BLAST_FIREBALL% %DEATHKNIGHT_FIREBALL% %WIZARD_SUN_FIRE%~ END - LPF CRE_resist_fire STR_VAR arguments=100 END - END - COLD cold BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%WIZARD_ICE_STORM% %WIZARD_CONE_OF_COLD% %SILVER_DRAGON_BREATH_COLD%~ END - LPF CRE_resist_cold STR_VAR arguments=100 END - END - ACID acid BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%WIZARD_DEATH_FOG%~ END - LPF CRE_resist_acid STR_VAR arguments=100 END - END - ELECTRICITY LIGHTNING electricity lightning BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%WIZARD_LIGHTNING_BOLT% %WIZARD_CHAIN_LIGHTNING% %SILVER_DRAGON_BREATH_COLD% %CLERIC_CALL_LIGHTNING%~ END - LPF CRE_resist_electricity STR_VAR arguments=100 END - END - INSECTS insects INSECT insect BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%CLERIC_SUMMON_INSECTS% %CLERIC_INSECT_PLAGUE% %CLERIC_CREEPING_DOOM% %BLACK_DRAGON_INSECT%~ END - END - POISON poison BEGIN - LPF CRE_immunity_to_spell STR_VAR arguments=~%CLERIC_POISON% %WIZARD_CLOUDKILL%~ END - LPF CRE_immunity_to_opcode STR_VAR arguments=25 END - LPF add_entry_inline STR_VAR arguments=~opcode=>173 parameter1=>100~ type=effect file_ext=CRE END - END - DEFAULT - LPF warning STR_VAR warning=~Unrecognised immunity type %arguments% IN CRE_immunity~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////// -/// set level to a particular class only (entry format: "mage=>16 cleric=>14" -/// treat sorcerer as a sort of mage, use priest as shorthand for cleric or druid -///////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION CRE_level_by_class - STR_VAR arguments="" -BEGIN - PATCH_IF "%arguments%" STRING_COMPARE_CASE "" BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET target_class=key level=value list END - LPF CRE_read_class RET class=value END - PATCH_MATCH "%target_class%" WITH - mage BEGIN - LPF substitute_string STR_VAR input="%class%" arguments="sorcerer=>mage" RET class=output END - END - priest BEGIN - LPF substitute_string STR_VAR input="%class%" arguments="cleric=>priest druid=>priest" RET class=output END - END - DEFAULT - END - SET slot=0 - WHILE "%class%" STRING_COMPARE_CASE "" BEGIN - SET slot+=1 - LPF return_first_entry STR_VAR list="%class%" separator="_" RET class=list entry END - PATCH_IF "%entry%" STRING_EQUAL_CASE "%target_class%" BEGIN - LPF "CRE_level%slot%" STR_VAR arguments="%level%" END - END - END - LPF CRE_level_by_class STR_VAR arguments="%list%" END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("CRE_level_by_class") "" - - - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////// -/// code to enforce a creature's class features -/// -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_enforce_class - STR_VAR filename="" - arguments="" -BEGIN - // argument parsing - SET even_if_monk=0 - SET joinable=0 - SET enforce_whitelist=0 - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%arguments%" RET entry arguments=list END - SET "%entry%"=1 - END - // sanity check - is this an actual class? (or if not, do we have a kit other than MAGESCHOOL_GENERALIST?) Do we have at least one level? If not, skip. - PATCH_IF (((BYTE_AT 0x273) <21 || ((LONG_AT 0x244) >0 && !(LONG_AT 0x244 = 1073741824))) && (BYTE_AT 0x234)>0 )BEGIN - // work out the various classes - LPF CRE_read_class RET classfull=value END - FOR (i=1;i<=3;i+=1) BEGIN - SPRINT $class("%i%") "null" - END - SET classnum=0 - SPRINT list "%classfull%" - WHILE "%list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list separator="_" RET this_class=entry list END - SET classnum +=1 - PATCH_IF "%this_class%" STRING_EQUAL_CASE monk BEGIN - PATCH_IF !even_if_monk BEGIN - SPRINT this_class null - END - END - SPRINT $class("%classnum%") "%this_class%" - LPF "CRE_read_level%classnum%" RET level=value END - PATCH_IF level=0 BEGIN - LPF "CRE_level%classnum%" STR_VAR arguments=1 END - LPF warning STR_VAR warning="%filename% has a level value of zero; setting to 1" END - END - SET $classlevel("%classnum%")=level - END - // check for an original class (only if creature has more than 1 class) - SPRINT original_class none - PATCH_IF classnum>1 BEGIN - LPF CRE_read_original_class RET original_class=value END - // check if the original class is active - PATCH_IF "%original_class%" STRING_COMPARE_CASE none BEGIN - PATCH_IF $class(1) STRING_EQUAL_CASE "%original_class%" BEGIN - SET original=1 - SET new=2 - END ELSE BEGIN - SET original=2 - SET new=1 - END - SET original_level=$classlevel("%original%") - SET new_level=$classlevel("%new%") - SPRINT new_class $class("%new%") - PATCH_IF (original_level >= new_level && "%new_class%" STRING_COMPARE none) BEGIN // class is inactive; from the point of view of this function, anull it - SPRINT $class("%original%") null - SPRINT original_class none - LPF warning STR_VAR warning="%filename%.cre has an inactive class" END - END - END - END - // sort out memorized spells - PATCH_IF joinable BEGIN - FOR (i=1;i<=classnum;i+=1) BEGIN - SPRINT this_class $class("%i%") - SET this_level=$classlevel("%i%") - PATCH_MATCH "%this_class%" WITH - BARD BEGIN - SPRINT file mxsplbrd - SET type=1 - END - MAGE BEGIN - SPRINT file mxsplwiz - SET type=1 - END - SORCERER SORCEROR BEGIN - LPF CRE_read_kit RET value END - PATCH_IF "%value%" STRING_EQUAL_CASE "dragon_disciple" BEGIN - SPRINT file mxsplsrc - SET type=1 - END ELSE BEGIN - SPRINT file mxspldd - SET type=1 - END - END - CLERIC BEGIN - SPRINT file mxsplprs - SET type=0 - END - DRUID BEGIN - SPRINT file mxspldru - SET type=0 - END - PALADIN BEGIN - SPRINT file mxsplpal - SET type=0 - END - RANGER BEGIN - PATCH_IF "%clasfull%" STRING_COMPARE_CASE "cleric_ranger" BEGIN - SPRINT file mxsplran - SET type=0 - SET ind=0 - END ELSE BEGIN - SPRINT file null - END - END - DEFAULT - SPRINT file null - END - PATCH_IF "%file%" STRING_COMPARE_CASE null BEGIN - INNER_ACTION BEGIN - COPY_EXISTING "%file%.2da" "%workspace%" - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - SET row=this_level>rowcount? rowcount - 1 : this_level - 1 - CLEAR_ARRAY spells_per_level - FOR (j=0;j+1offset BEGIN - READ_SHORT offset+0x6 this_type - PATCH_IF type=this_type BEGIN - READ_SHORT offset lvl - PATCH_IF VARIABLE_IS_SET $spells_per_level("%lvl%") BEGIN - SET temp=$spells_per_level("%lvl%") - WRITE_SHORT (0x2 + offset) temp - END - END - END - END - END - END - // if there is an original class, or if there is only one class, check for a kit - PATCH_IF "%original_class%" STRING_COMPARE_CASE none || classnum=1 BEGIN - LPF CRE_read_kit RET kit=value END - PATCH_MATCH "%kit%" WITH 0 NONE NO_KIT TRUECLASS BEGIN - END - DEFAULT - // find the kit's parent class - PATCH_IF "%original_class%" STRING_COMPARE_CASE none BEGIN - FOR (i=1;i<=3;i+=1) BEGIN - PATCH_IF $class("%i%") STRING_EQUAL_CASE "%original_class%" BEGIN - SPRINT $class("%i%") "%kit%" - SPRINT original_class "%kit%" - END - END - END ELSE BEGIN // not dual classed, so only class=kit - PATCH_IF "%class_1%" STRING_COMPARE null BEGIN - SPRINT $class(1) "%kit%" - END - END - END - END - // some hardcoded kit-based item restrictions - PATCH_MATCH "%kit%" WITH - kensai BEGIN - PATCH_FOR_EACH arguments IN gloves armor BEGIN - LPF CRE_read_item_in_slot STR_VAR arguments RET item=value END - PATCH_IF ~%item%~ STRING_COMPARE_CASE ~~ BEGIN - LPF CRE_remove_items STR_VAR arguments= ~%item%~ END - LPF patch_log_this STR_VAR file=illegal_kensai_gear.txt input= ~%filename% %item%~ END - END - END - END - BARBARIAN BEGIN - LPF CRE_read_item_in_slot STR_VAR arguments=armor RET armor=value END - INNER_PATCH ~%armor%~ BEGIN - READ_ASCII 0x0 platecheck ELSE ~~(4) - END - LPF patch_log_this STR_VAR file=illegal_barbarian_gear.txt input= ~%filename% %armor%~ END - END - STALKER BEGIN - - LPF CRE_read_item_in_slot STR_VAR arguments=armor RET armor=value END - INNER_PATCH ~%armor%~ BEGIN - READ_ASCII 0x0 check ELSE ~~ (4) - END - PATCH_IF (~%check%~ STRING_EQUAL_CASE CHAN || ~%check%~ STRING_EQUAL_CASE PLAT) BEGIN - LPF patch_log_this STR_VAR file=illegal_stalker_gear.txt input= ~%filename% %armor%~ END - END - - END - ARCHER BEGIN - LPF CRE_read_item_in_slot STR_VAR arguments=armor RET armor=value END - INNER_PATCH ~%armor%~ BEGIN - READ_ASCII 0x0 check ELSE ~~ (4) - END - PATCH_IF (~%check%~ STRING_EQUAL_CASE CHAN || ~%check%~ STRING_EQUAL_CASE PLAT) BEGIN - LPF patch_log_this STR_VAR file=illegal_archer_gear.txt input= ~%filename% %armor%~ END - END - END - DEFAULT - END - - - SPRINT deletestring "" - SPRINT addstring "" - SPRINT spells "" - SPRINT spells_known "" - FOR (i=1;i<=classnum;i+=1) BEGIN - PATCH_IF $class("%i%") STRING_COMPARE "null" BEGIN - SPRINT kit $class("%i%") - SET level=$classlevel("%i%") - INNER_ACTION BEGIN - // find the CLAB file - LAF find_clab STR_VAR kit RET clab END - ACTION_IF FILE_EXISTS_IN_GAME "%clab%.2da" BEGIN - COPY_EXISTING "%clab%.2da" "%workspace%" - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - FOR (this_level=1;this_leveloffset_secondary BEGIN - READ_BYTE offset_secondary+0xc timing - PATCH_IF timing=9 BEGIN // we only care about instant/permanent effects - READ_SHORT offset_secondary opcode - READ_LONG offset_secondary+0x4 parameter1 - READ_LONG offset_secondary+0x8 parameter2 - READ_ASCII offset_secondary+0x14 resource - PATCH_IF "%resource%" STRING_COMPARE "" BEGIN - SPRINT resource_drop "%resource_drop% %resource%" - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>%resource% opcode=>%opcode% timing=>9 target=>2~" - END ELSE BEGIN - PATCH_MATCH "%opcode%" WITH - 101 142 169 267 BEGIN - SPRINT temp EVALUATE_BUFFER "%%opcode%_sec%" - SPRINT "%opcode%_sec" "%temp% %parameter2%" - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>null opcode=>%opcode% timing=>9 target=>2~" - END - DEFAULT - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>null opcode=>%opcode% timing=>9 target=>2~" - SPRINT opcode_drop "%opcode_drop% %opcode%" - END - END - END - END - BUT_ONLY - END // end of ACTION_IF - END // end of INNER_ACTION - PATCH_IF "%opcode_drop%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "delete_effect=>~opcode is_in [%opcode_drop%]~" - END - PATCH_FOR_EACH opcode IN 101 142 169 267 BEGIN - SPRINT list EVALUATE_BUFFER "%%opcode%_sec%" - PATCH_IF "%list%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "%tempremove% delete_effect=>~opcode=%opcode% and parameter2 is_in [%list%]~" - END - END - PATCH_IF "%resource_drop%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "%tempremove% delete_effect=>~resource is_in [%resource_drop%]~" - END - SPRINT "RESREF_%spell%_KIT_EFFECTS_ADD" "%tempadd%" - SPRINT "RESREF_%spell%_KIT_EFFECTS_REMOVE" "%tempremove%" - END // end of PATCH_IF - SPRINT tempremove EVALUATE_BUFFER "%RESREF_%spell%_KIT_EFFECTS_REMOVE%" - SPRINT tempadd EVALUATE_BUFFER "%RESREF_%spell%_KIT_EFFECTS_ADD%" - SPRINT addstring "%addstring% %tempadd%" - PATCH_IF !VARIABLE_IS_SET $AP_already("%spell%") BEGIN - PATCH_IF "%tempremove%" STRING_COMPARE "" BEGIN - SPRINT deletestring "%deletestring% %tempremove%" - END - SPRINT $AP_already("%spell%") "" - END - END - END - DEFAULT - END - END - END - BUT_ONLY - END - END - END - END - PATCH_IF "%deletestring%" STRING_COMPARE_CASE "" BEGIN - LPF apply_patches_inline STR_VAR file_ext=CRE arguments="%deletestring%" END - END - LPF apply_patches_inline STR_VAR file_ext=CRE arguments="%addstring%" END - SPRINT spells_to_remove "" - SPRINT spells_to_add "" - SPRINT spells_known "" - PHP_EACH spells_in_clab AS key=>value BEGIN - SPRINT spells_to_remove "%spells_to_remove% %key%" - SPRINT spells_to_add "%spells_to_add% %key%(%value%)" - PATCH_IF joinable BEGIN - PATCH_IF !VARIABLE_IS_SET $is_innate_spell("%spell%") BEGIN - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%spell%.spl" BEGIN - COPY_EXISTING "%spell%.spl" override - READ_SHORT 0x1c type - PATCH_IF type=4 BEGIN - SET $is_innate_spell("%spell%")=1 - END ELSE BEGIN - SET $is_innate_spell("%spell%")=0 - END - BUT_ONLY - END ELSE BEGIN - LAF warning STR_VAR warning="Tried to add kit spell %spell% for kit %kit%, but it doesn't exist" END - OUTER_SET $is_innate_spell("%spell%")=999 - END - END - END - SET temp=$is_innate_spell("%spell%") - PATCH_IF temp=0 BEGIN - SPRINT spells_known "%spells_known% %key%" - END - END - END - LPF CRE_remove_spells STR_VAR arguments="%spells_to_remove%" END - LPF CRE_add_spells STR_VAR arguments="%spells_to_add%" END - PATCH_IF joinable BEGIN - LPF CRE_add_known_spells STR_VAR arguments="%spells_known%" END - END - PATCH_IF joinable BEGIN - LPF CRE_add_all_priest_spells END - END - END // end of sanity check -END diff --git a/iwdification/dw/sfo/filetype/lib_dlg.tpa b/iwdification/dw/sfo/filetype/lib_dlg.tpa deleted file mode 100644 index a6392dc..0000000 --- a/iwdification/dw/sfo/filetype/lib_dlg.tpa +++ /dev/null @@ -1,81 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit without decompiling [ALMOST ALWAYS DON'T USE THIS- USE WEIDU INSTEAD!] -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_compiled_dialog - STR_VAR - dialog="" - edits="" - editstring="" - allow_missing="no" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%dialog%~ - file_ext=~DLG~ - edits editstring allow_missing - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets (beware: adding or subtracting entries won't work) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< dlg_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -state 0xc 4 0x8 4 0x10 -transition 0x14 4 0x10 4 0x20 -state_trigger 0x18 4 0x1c 4 0x8 -trans_trigger 0x20 4 0x24 4 0x8 -action 0x2c 4 0x2c 4 0x8 ->>>>>>>> - -OUTER_SPRINT ~offset_readin_lookup_2da~ ~dlg_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~DLG~ -LAUNCH_ACTION_MACRO read_in_offsets - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// (some) lookup functions -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY dlg_trans_fields BEGIN - response_text => ~0x04,LONG~ - journal_text => ~0x08,LONG~ -END - - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=dlg_trans_fields offset_base=~offset_base~ function_prefix=DLG secondary="yes" END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY dlg_bit_fields BEGIN - associated_text => ~0x00,0~ - associated_trigger => ~0x00,1~ - associated_action => ~0x00,2~ - terminates_dialog => ~0x00,3~ - journal_entry => ~0x00,4~ - add_unsolved_quest => ~0x00,6~ - add_solved_quest => ~0x01,0~ -END -LAF build_flag_data_field_editors STR_VAR offset_base=offset_base lookup_table=dlg_bit_fields function_prefix=DLG secondary="yes" END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Bulk compile -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION compile_all - STR_VAR location="" - locbase="" - locabs="" -BEGIN - LAF list_files STR_VAR location locbase locabs postfix=d RET list END - LAF reinclude_this STR_VAR input = "COMPILE EVALUATE_BUFFER %list%" END -END - diff --git a/iwdification/dw/sfo/filetype/lib_eff.tpa b/iwdification/dw/sfo/filetype/lib_eff.tpa deleted file mode 100644 index 1f0f12a..0000000 --- a/iwdification/dw/sfo/filetype/lib_eff.tpa +++ /dev/null @@ -1,195 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_effect - STR_VAR - effect="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%effect%~ - file_ext=~EFF~ - edits= ~%edits%~ - editstring= ~%editstring%~ - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_effect - STR_VAR - effect="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%effect%~ - file_ext=~EFF~ - edits - editstring - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_effect - STR_VAR - effect="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list= ~%effect%~ - file_ext=~EFF~ - edits= ~%edits%~ - editstring= ~%editstring%~ - build_before= EFF_build - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_effect - STR_VAR - effect="" - edits="" - editstring="" - location="" - locbase="" - locabs="" - BEGIN - LAUNCH_ACTION_FUNCTION install_template - STR_VAR file_list= ~%effect%~ - file_ext=~EFF~ - edits - editstring - location locbase locabs - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_fields BEGIN - opcode => ~0x10,LONG~ - target => ~0x14,LONG~ - power => ~0x18,LONG~ - parameter1=>~0x1c,LONG~ - parameter2=>~0x20,LONG~ - parameter2a=>~0x20,SHORT~ - parameter2b=>~0x22,SHORT~ - timing=>~0x24,SHORT~ - duration=>~0x28,LONG~ - probability1=>~0x2c,SHORT~ - probability2=>~0x2e,SHORT~ - resource=>~0x30,ASCII~ - dicenum=>~0x38,LONG~ - dicesize=>~0x3c,LONG~ - savebonus=>~0x44,LONG~ - resistance=>~0x5c,LONG~ - resist_dispel=>~0x5c,LONG~ - parameter3=>"0x60,LONG" - parameter4=>"0x64,LONG" - vvc=>~0x70,ASCII~ - resource2=>~0x70,ASCII~ - caster_xloc=>"0x80,LONG" - caster_yloc=>"0x84,LONG" - target_xloc=>"0x88,LONG" - target_yloc=>"0x8c,LONG" - - //many others; I'll stop there -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=eff_fields function_prefix=EFF END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_bit_fields BEGIN - save_vs_spell=>~0x40,0~ - save_spells=>~0x40,0~ - save_vs_breath=>~0x40,1~ - save_breath=>~0x40,1~ - save_vs_death=>~0x40,2~ - save_death=>~0x40,2~ - save_vs_wand=>~0x40,3~ - save_wands=>~0x40,3~ - save_vs_polymorph=>~0x40,4~ - save_polymorph=>~0x40,4~ - bypass_mirror_image=>~0x43,0~ - fist_only=>~0x48,2~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=eff_bit_fields function_prefix=EFF END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// build a basic effect -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION EFF_build -BEGIN - ///// basic structure - DELETE_BYTES 0x0 BUFFER_LENGTH - INSERT_BYTES 0x0 0x110 - - // sig - WRITE_ASCII 0x0 ~EFF V2.0~ - WRITE_ASCII 0x8 ~EFF V2.0~ - // start off with probability 100 - WRITE_BYTE 0x2c 100 - // unknown fields, copied blindly from example file - WRITE_LONG 0x80 0xffffffff - WRITE_LONG 0x84 0xffffffff - WRITE_LONG 0x88 0xffffffff - WRITE_LONG 0x8c 0xffffffff - WRITE_LONG 0xa4 0xffffffff -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// make an effect that casts a spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_casting_effect - INT_VAR target=2 - STR_VAR effect="" - spell="" -BEGIN - ACTION_CLEAR_ARRAY patch_data - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - opcode=>146 - target=>~%target%~ - parameter2=>1 - timing=>1 - parameter1=>1 - resource=>~%spell%~ - END - LAF make_effect STR_VAR effect edits=patch_data END - - - -END diff --git a/iwdification/dw/sfo/filetype/lib_genai.tpa b/iwdification/dw/sfo/filetype/lib_genai.tpa deleted file mode 100644 index 3df33db..0000000 --- a/iwdification/dw/sfo/filetype/lib_genai.tpa +++ /dev/null @@ -1,396 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////// -/// Read in item data (the thought is that doing this once and for all may save time) -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO read_in_genai_item_data BEGIN - ACTION_IF !(VARIABLE_IS_SET genai_items_read) BEGIN - OUTER_SET genai_items_read=1 - PRINT ~Reading in initial data about weapons~ - SILENT - ACTION_TRY - COPY_EXISTING_REGEXP GLOB ~%tutu_var%.*\.itm~ ~override~ - SPRINT filename ~%SOURCE_RES%~ - LPF identify_weapon_patch RET twohanded=twohanded type=type proftype=proftype enchantment=enchantment damagetype=damagetype END - TO_UPPER filename - SET $genai_twohanded(~%filename%~)=twohanded - SET $genai_type(~%filename%~)=type - SET $genai_proftype(~%filename%~)=proftype - SET $genai_enchantment(~%filename%~)=enchantment - SPRINT $genai_damagetype(~%filename%~) ~%damagetype%~ - BUT_ONLY - WITH DEFAULT - LAF warning STR_VAR warning="Item file %filename% appears malformed" END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////// -// Full proficiency enforcement -//////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION CRE_enforce_proficiencies -BEGIN - LPF CRE_read_kit RET kit=value END - LPF CRE_read_class RET class=value END - LPF identify_weapon_preferences STR_VAR filename RET has_ranged skip_me onhandprof offhandprof rangedprof style END - PATCH_IF !skip_me BEGIN - LPF allocate_proficiencies INT_VAR onhandprof offhandprof rangedprof style level STR_VAR class kit END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////// -/// Proficiency allocation -/// -/// Here are the priorities: -/// (1) put one star into onhand, offhand, and ranged (if appropriate, in each case) -/// (2) if fighting two-handed, max out two-weapon -/// (3) if using a ranged weapon, max it out -/// (4) if using an on-hand weapon, max it out -/// (5) if using an off-hand weapon, max it out -/// (6) max out any fighting style other than two-handed -/// -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION allocate_proficiencies - INT_VAR onhandprof=0 - offhandprof=0 - rangedprof=0 - style=0 - level=0 - STR_VAR class="" - kit="" -BEGIN - SET rangedprofnum=0 - SET offhandprofnum=0 - SET onhandprofnum=0 - SET stylenum=0 - SET onhandprof = onhandprof=rangedprof? 0 :onhandprof // allow for duplications (e.g. two swords, or battleaxe/throwing axe) - SET offhandprof = offhandprof=rangedprof? 0 : offhandprof - SET offhandprof = offhandprof=onhandprof? 0 : offhandprof - LPF get_num_profs INT_VAR level STR_VAR class RET num_profs=num_profs END - PATCH_FOR_EACH profname IN onhandprof offhandprof rangedprof style BEGIN - SET proficiency= ~%profname%~ - LPF get_max_profs INT_VAR proficiency level STR_VAR class kit RET ~max_%profname%~=max END - END - WHILE num_profs>0 BEGIN - // decrease proficiency counter - SET num_profs=num_profs - 1 - PATCH_IF (rangedprof>0 & rangedprofnum=0) BEGIN // get basically proficient in one's weapons - SET rangedprofnum=1 - END ELSE - PATCH_IF (onhandprof>0 & onhandprofnum=0 & max_onhandprof>0) BEGIN - SET onhandprofnum=1 - END ELSE - PATCH_IF (offhandprof>0 & offhandprofnum=0 & max_offhandprof>0) BEGIN - SET offhandprofnum=1 - END ELSE - PATCH_IF (style=STAT_VALUE_PROFICIENCY2WEAPON & stylenum0 & rangedprofnum0 & onhandprofnum0 & offhandprofnum0 & stylenum0 BEGIN - SET value= ~%profname%num~ - PATCH_IF value>0 BEGIN - LPF add_entry_inline STR_VAR arguments=~opcode=>233 parameter1=>%value% parameter2=>%profcode% target=>0~ type=effect file_ext=CRE END - END - END - END -END - -/////////////////////////////////////////////////////////////////////////////////////////// -/// Work out the number of proficiencies a given character has (NB: this gets dual-classed characters wrong, but it's hard to automate them as they can't allocate their points -/// fully freely) -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_num_profs - INT_VAR level=0 - STR_VAR class="" - RET num_profs -BEGIN - INNER_ACTION BEGIN - LAUNCH_ACTION_MACRO read_in_proficiency_progression - END - TO_UPPER class - PATCH_IF VARIABLE_IS_SET $PROFICIENCY_FIRST_LEVEL( ~%class%~) BEGIN - SET base=$PROFICIENCY_FIRST_LEVEL( ~%class%~) - SET rate=$PROFICIENCY_RATE( ~%class%~) - END ELSE BEGIN - SET base=3 - SET rate=4 - END - SET num_profs=base+level/rate -END - - - -/////////////////////////////////////////////////////////////////////////////////////////// -/// Work out the maximum number of proficiencies in a given proficiency slot -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_max_profs - INT_VAR proficiency=0 - level=0 - STR_VAR class="" - kit="" - RET max -BEGIN - PATCH_IF proficiency=0 BEGIN - SET max=0 - END ELSE BEGIN - INNER_ACTION BEGIN - LAUNCH_ACTION_MACRO read_in_proficiencies - LAUNCH_ACTION_MACRO read_in_proficiency_progression - END - TO_UPPER kit - TO_UPPER class - PATCH_IF VARIABLE_IS_SET $PROFICIENCY(~%proficiency%~ ~%kit%~) BEGIN - SET max=$PROFICIENCY(~%proficiency%~ ~%kit%~) - END ELSE BEGIN - PATCH_IF VARIABLE_IS_SET $PROFICIENCY(~%proficiency%~ ~%class%~) BEGIN - SET max=$PROFICIENCY(~%proficiency%~ ~%class%~) - END ELSE BEGIN - SET max=5 - END - END - PATCH_IF VARIABLE_IS_SET $PROFICIENCY_FIRST_LEVEL_MAX("%class%") BEGIN - SET lev1max=$PROFICIENCY_FIRST_LEVEL_MAX("%class%") - END ELSE BEGIN - SET lev1max=1 // monsters - so monsters, having lev1max=1 and rate=4, get 2 profs at L5, 3 at L9, 4 at L13, 5 at L17 - which sounds ok - END - PATCH_IF VARIABLE_IS_SET $PROFICIENCY_OTHER_LEVEL_MAX("%class%") BEGIN - SET levothermax=$PROFICIENCY_OTHER_LEVEL_MAX("%class%") - END ELSE BEGIN - SET levothermax=5 - END - PATCH_IF VARIABLE_IS_SET $PROFICIENCY_RATE(~%class%~) BEGIN - SET rate=$PROFICIENCY_RATE(~%class%~) - END ELSE BEGIN - SET rate=4 - END - SET levmax = lev1max + (level / rate) - SET levmax = levmax>levothermax? levothermax : levmax - SET max = max>levmax? levmax: max - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// For this item, record its proficiency, whether it's ranged, whether it's two-handed -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION identify_weapon // note that if called on a shield, it returns type 0 - STR_VAR weaponfile="" - RET twohanded - type - proftype - enchantment - damagetype -BEGIN - TO_UPPER weaponfile - PATCH_IF !VARIABLE_IS_SET $genai_twohanded(~%weaponfile%~) BEGIN - SET type=0 - SET proftype=0 - SET twohanded=0 - INNER_ACTION BEGIN - - ACTION_IF FILE_EXISTS_IN_GAME ~%weaponfile%.itm~ BEGIN - COPY_EXISTING ~%weaponfile%.itm~ ~override~ - LPF identify_weapon_patch RET twohanded type proftype enchantment damagetype END - BUT_ONLY - END ELSE BEGIN - LAF warning STR_VAR arguments= ~Tried to identify nonexistent weapon %weaponfile%.itm~ END - END - END - END ELSE BEGIN - SET type=$genai_type(~%weaponfile%~) - SET proftype=$genai_proftype(~%weaponfile%~) - SET twohanded=$genai_twohanded(~%weaponfile%~) - SPRINT damagetype $genai_damagetype(~%weaponfile%~) - SET enchantment=$genai_enchantment(~%weaponfile%~) - END -END - -DEFINE_PATCH_FUNCTION identify_weapon_patch - RET twohanded - type - proftype - enchantment - damagetype -BEGIN - SPRINT damagetype none - SET twohanded=0 - SET type=0 - SET proftype=0 - SET enchantment=0 - LPF ITM_read_twohanded RET twohanded=value END - LPF ITM_read_proficiency_code RET proftype=value END - SPRINT entry_type ability - SPRINT file_ext ITM - LAUNCH_PATCH_MACRO get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF ITM_read_ability_type STR_VAR offset_base RET ab_type=value END - PATCH_IF ab_type=1 && type=0 BEGIN - LPF ITM_read_enchantment RET enchantment=value END - SET type=1 - LPF ITM_read_damage_type STR_VAR offset_base RET damage_code=value END - PATCH_MATCH damage_code WITH - 1 BEGIN - SPRINT damagetype piercing - END - 2 BEGIN - SPRINT damagetype crushing - END - DEFAULT - SPRINT damagetype slashing - END - END - PATCH_IF (ab_type=2 || ab_type=4) && type=0 BEGIN - SET type=2 - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Go through carried weapons and record the proficiency type of the onhand, offhand and ranged weapon, or -//// zero if none is carried; set skip_me to 1 if a non-proficiency weapon is carried; set style to the preferred -//// weapon style; wipe the offhand slot if it's illegal; get the highest enchantment level and the melee damage type(s) -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION identify_weapon_preferences // goes through all carried weapons. Determines if a melee or a ranged weapon is carried, the proficiencies of carried weapons, - STR_VAR filename="" - RET onhandprof - offhandprof - rangedprof - style - skip_me - has_ranged - damagetype - enchantment - no_weapon -BEGIN - SPRINT damagetype unknown - SET enchantment=0 - PATCH_FOR_EACH var IN has_twohanded onhandprof offhandprof rangedprof has_ranged has_melee BEGIN - SET ~%var%~ = 0 - END - SET style=STAT_VALUE_PROFICIENCYSINGLEWEAPON - SET no_weapon=1 - SET skip_me=0 - SPRINT ~to_delete~ ~~ - // get the item assigned to each slot - PATCH_FOR_EACH arguments IN weapon1 weapon2 weapon3 weapon4 BEGIN - LPF CRE_read_item_in_slot STR_VAR arguments RET weaponfile=value END - PATCH_IF ~%weaponfile%~ STRING_COMPARE_CASE ~~ BEGIN - PATCH_IF no_weapon BEGIN - SET no_weapon=0 - SET skip_me=1 - END - LPF identify_weapon STR_VAR weaponfile RET this_twohanded=twohanded type=type proftype=proftype damagetype_here=damagetype ench_here=enchantment END - PATCH_IF !(proftype=0) BEGIN - SET skip_me=0 - END - PATCH_IF type=1 BEGIN - SET onhandprof=proftype - SET has_twohanded= this_twohanded=1? 1 : has_twohanded - PATCH_IF this_twohanded=1 BEGIN - SET style=STAT_VALUE_PROFICIENCY2HANDED - END - SET has_melee=1 - END - PATCH_IF type=2 BEGIN - SET rangedprof=proftype - SET has_ranged=1 - SET has_twohanded= this_twohanded=1? 1 : has_twohanded - END - SET enchantment = enchantment>ench_here? enchantment : ench_here - PATCH_IF ~%damagetype_here%~ STRING_COMPARE none BEGIN - PATCH_IF ~%damagetype%~ STRING_EQUAL unknown BEGIN - SPRINT damagetype ~%damagetype_here%~ - END ELSE - PATCH_IF ~%damagetype%~ STRING_COMPARE ~%damagetype_here%~ BEGIN - SPRINT damagetype mixed - END - END - END - END - LPF CRE_read_item_in_slot STR_VAR arguments=shield RET weaponfile=value END - PATCH_IF ~%weaponfile%~ STRING_COMPARE_CASE ~~ BEGIN - LPF identify_weapon STR_VAR weaponfile RET type=type proftype=proftype ench_here=enchantment damagetype_here=damagetype END - PATCH_IF type=0 BEGIN - SET style=STAT_VALUE_PROFICIENCYSWORDANDSHIELD - END ELSE BEGIN - SET style=STAT_VALUE_PROFICIENCY2WEAPON - SET offhandprof=proftype - END - PATCH_IF has_twohanded=1 BEGIN - SPRINT ~to_delete~ ~%weaponfile%~ - END - SET enchantment = enchantment>ench_here? enchantment : ench_here - PATCH_IF ~%damagetype_here%~ STRING_COMPARE none BEGIN - PATCH_IF ~%damagetype%~ STRING_EQUAL unknown BEGIN - SPRINT damagetype ~%damagetype_here%~ - END ELSE - PATCH_IF ~%damagetype%~ STRING_COMPARE ~%damagetype_here%~ BEGIN - SPRINT damagetype mixed - END - END - END - PATCH_FOR_EACH arguments IN quiver1 quiver2 quiver3 quiver4 BEGIN - LPF CRE_read_item_in_slot STR_VAR arguments RET weaponfile=value END - PATCH_IF ~%weaponfile%~ STRING_COMPARE_CASE ~~ BEGIN - LPF identify_ammo STR_VAR weaponfile RET ench_here=enchantment END - SET enchantment = enchantment>ench_here? enchantment : ench_here - END - END - - PATCH_IF (~%to_delete%~ STRING_COMPARE_CASE ~~) BEGIN - LPF CRE_remove_items STR_VAR arguments= ~%to_delete%~ END - LPF log_resource_name STR_VAR filename arguments=illegal_offhand END - END - PATCH_IF (has_ranged && !has_melee) BEGIN - LPF warning STR_VAR warning="%filename% has ranged but not melee weapon" END - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Get the enchantment level for ammo -////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION identify_ammo - STR_VAR weaponfile="" - RET enchantment -BEGIN - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%weaponfile%.itm~ BEGIN - COPY_EXISTING ~%weaponfile%.itm~ ~override~ - LPF ITM_read_enchantment RET enchantment=value END - BUT_ONLY - END ELSE BEGIN - LAF warning STR_VAR warning=~Tried to identify nonexistent ammo %weaponfile%.itm~ END - END - END -END - - diff --git a/iwdification/dw/sfo/filetype/lib_itm.tpa b/iwdification/dw/sfo/filetype/lib_itm.tpa deleted file mode 100644 index e95a50e..0000000 --- a/iwdification/dw/sfo/filetype/lib_itm.tpa +++ /dev/null @@ -1,999 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_item - INT_VAR allow_missing=0 - STR_VAR - item="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%item%~ - file_ext=~ITM~ - edits - editstring - allow_missing - - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_item - INT_VAR - silent=0 - allow_missing=0 - tv=0 - STR_VAR - item="" - edits="" - editstring="" - location="" - locbase="" - locabs="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%item%~ - file_ext=~ITM~ - edits editstring allow_missing - tv silent location locbase locabs - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_item - INT_VAR allow_missing=0 - tv=0 - STR_VAR - item="" - edits="" - editstring="" - location="" - locbase="" - BEGIN - LAUNCH_ACTION_FUNCTION install_template - STR_VAR file_list= ~%item%~ - file_ext=~ITM~ - edits editstring allow_missing - tv silent location locbase - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching regexp -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_all_items - STR_VAR - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION regexp_template - STR_VAR file_ext=~ITM~ - edits= ~%edits%~ - editstring= ~%editstring%~ - tv=1 - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_item - STR_VAR - item="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list= ~%item%~ - file_ext=~ITM~ - edits= ~%edits%~ - editstring= ~%editstring%~ - build_before= ITM_build - build_after = ITM_postbuild - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< item_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -ability 0x64 4 0x68 2 0x38 -effect 0x6a 4 -1 0 0x30 ->>>>>>>> -OUTER_SPRINT ~offset_readin_lookup_2da~ ~item_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~ITM~ -LAUNCH_ACTION_MACRO read_in_offsets - -OUTER_SPRINT has_secondaries_ITM_ability "" - - -OUTER_SPRINT $ITM_virtual_type_parent(effect) ability -OUTER_SPRINT $ITM_virtual_type_child(effect) effect -OUTER_SET $ITM_virtual_type_index("effect")=0 -OUTER_SET $lookup_ITM_ability_effect_ind_loc(0)=0x20 -OUTER_SET $lookup_ITM_ability_effect_ind_length(0)=2 -OUTER_SET $lookup_ITM_ability_effect_num_loc(0)=0x1e -OUTER_SET $lookup_ITM_ability_effect_num_length(0)=2 - -OUTER_SPRINT $ITM_effect_secondaries_follow(ability) effect_global - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -ACTION_DEFINE_ASSOCIATIVE_ARRAY item_fields BEGIN - name1_string => ~0x8,LONG~ - name2_string => ~0xc,LONG~ - enchantment => ~0x60,LONG~ - category => ~0x1c,SHORT~ - inventory =>~0x22,ASCII2~ - price => ~0x34,LONG~ - max_in_stack =>~0x38,SHORT~ - icon => ~0x3a,ASCII~ - icon_ground =>~0x44,ASCII~ - icon_carried=>~0x58,ASCII~ - lore=> ~0x42,SHORT~ - weight=>~0x4c,LONG~ - description1_string => ~0x50,LONG~ - description2_string => ~0x54,LONG~ - num_abils=> ~0x68,SHORT~ - proficiency_code => ~0x31,BYTE~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=item_fields function_prefix=ITM END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY item_ability_fields BEGIN - ability_type => ~0x0,BYTE~ - ability_icon_loc => ~0x2,BYTE~ - ability_icon => ~0x4,ASCII~ - ability_target=>~0xc,BYTE~ - ability_range=>~0xe,SHORT~ - launcher_required=>~0x10,SHORT~ - speed=> ~0x12,SHORT~ - to_hit => ~0x14,SHORT~ - ability_dicesize=>~0x16,BYTE~ - ability_school=>~0x17,BYTE~ - ability_secondary=>~0x19,BYTE~ - ability_numdice=>~0x18,BYTE~ - damage_bonus=>~0x1a,SHORT~ - damage_type=>~0x1c,SHORT~ - effect_num=>~0x1e,SHORT~ - effect_offset=>~0x20,SHORT~ - number_charges => ~0x22,SHORT~ - when_drained => ~0x24,BYTE~ - strength_bonus=>~0x26,BYTE~ - projectile => ~0x2a,SHORT~ - overhand=>~0x2c,SHORT~ - backhand=>~0x2e,SHORT~ - thrust=>~0x30,SHORT~ - is_arrow=>~0x32,SHORT~ - is_bolt=>~0x34,SHORT~ - is_missile=>~0x36,SHORT~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR offset_base=~offset_base~ lookup_table=item_ability_fields function_prefix=ITM END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_fields BEGIN - opcode=>~0,SHORT~ - target=>~0x2,BYTE~ - power=>~0x3,BYTE~ - parameter1=>~0x4,LONG~ - parameter2=>~0x8,LONG~ - parameter2a=>~0x8,SHORT~ - parameter2b=>~0xa,SHORT~ - timing=>~0xc,BYTE~ - resist_dispel=>~0xd,BYTE~ - dispel=>~0xd,BYTE~ - duration=>~0xe,LONG~ - probability1=>~0x12,BYTE~ - probability2=>~0x13,BYTE~ - resource=>~0x14,ASCII~ - dicenum=> ~0x1c,LONG~ - dicesize=> ~0x20,LONG~ - save_bonus=>~0x28,LONG~ - mode=>~0x2c,LONG~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=eff_fields offset_base=~offset_base~ function_prefix=ITM secondary="yes" END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY itm_bit_fields BEGIN - unsellable => ~0x18,0~ - twohanded => ~0x18,1~ - droppable => ~0x18,2~ - displayable => ~0x18,3~ - cursed => ~0x18,4~ - not_copyable => ~0x18,5~ - magical => ~0x18,6~ - bow => ~0x18,7~ - silver => ~0x19,0~ - cold_iron => ~0x19,1~ - stolen => ~0x19,2~ - conversable => ~0x19,3~ - unusable_chaotic => ~0x1e,0~ - unusable_evil => ~0x1e,1~ - unusable_good => ~0x1e,2~ - unusable_GEneutral => ~0x1e,3~ - unusable_lawful => ~0x1e,4~ - unusable_LCneutral => ~0x1e,5~ - unusable_bard => ~0x1e,6~ - unusable_cleric => ~0x1e,7~ - unusable_cleric_mage => ~0x1f,0~ - unusable_cleric_thief => ~0x1f,1~ - unusable_cleric_ranger => ~0x1f,2~ - unusable_fighter => ~0x1f,3~ - unusable_fighter_druid => ~0x1f,4~ - unusable_fighter_mage => ~0x1f,5~ - unusable_fighter_cleric => ~0x1f,6~ - unusable_fighter_mage_cleric => ~0x1f,7~ - unusable_fighter_mage_thief => ~0x20,0~ - unusable_fighter_thief => ~0x20,1~ - unusable_mage => ~0x20,2~ - unusable_mage_thief => ~0x20,3~ - unusable_paladin => ~0x20,4~ - unusable_ranger => ~0x20,5~ - unusable_thief => ~0x20,6~ - unusable_elf => ~0x20,7~ - unusable_dwarf => ~0x21,0~ - unusable_half_elf => ~0x21,1~ - unusable_halfling => ~0x21,2~ - unusable_human => ~0x21,3~ - unusable_gnome => ~0x21,4~ - unusable_monk => ~0x21,5~ - unusable_druid => ~0x21,6~ - unusable_half_orc => ~0x21,7~ - unusable_cleric_of_talos=>~0x29,0~ - unusable_cleric_of_helm=>~0x29,1~ - unusable_cleric_of_lathander=>~0x29,2~ - unusable_totemic_druid=>~0x29,3~ - unusable_shapeshifter=>~0x29,4~ - unusable_avenger=>~0x29,5~ - unusable_barbarian=>~0x29,6~ - unusable_wild_mage=>~0x29,7~ - unusable_stalker=>~0x2b,0~ - unusable_beastmaster=>~0x2b,1~ - unusable_assassin=>~0x2b,2~ - unusable_bounty_hunter=>~0x2b,3~ - unusable_swashbuckler=>~0x2b,4~ - unusable_blade=>~0x2b,5~ - unusable_jester=>~0x2b,6~ - unusable_skald=>~0x2b,7~ - unusable_diviner=>~0x2d,0~ - unusable_enchanter=>~0x2d,1~ - unusable_illusionist=>~0x2d,2~ - unusable_invoker=>~0x2d,3~ - unusable_necromancer=>~0x2d,4~ - unusable_transmuter=>~0x2d,5~ - unusable_no_kit=>~0x2d,6~ - unusable_archer=>~0x2d,7~ - unusable_berserker=>~0x2f,0~ - unusable_wizard_slayer=>~0x2f,1~ - unusable_kensai=>~0x2f,2~ - unusable_cavalier=>~0x2f,3~ - unusable_inquisitor=>~0x2f,4~ - unusable_undead_hunter=>~0x2f,5~ - unusable_abjurer=>~0x2f,6~ - unusable_conjurer=>~0x2f,7~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=itm_bit_fields function_prefix=ITM END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY abil_bit_fields BEGIN - recharges_on_rest=>~0x27,3~ -END -LAF build_flag_data_field_editors STR_VAR lookup_table=abil_bit_fields offset_base=~offset_base~ function_prefix=ITM END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_bit_fields BEGIN - save_vs_spell => ~0x24,0~ - save_vs_breath => ~0x24,1~ - save_vs_death => ~0x24,2~ - save_vs_poison => ~0x24,2~ - save_vs_wands => ~0x24,3~ - save_vs_petrification => ~0x24,4~ - save_vs_polymorph => ~0x24,4~ - bypass_mirror_image =>~0x27,0~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=eff_bit_fields offset_base=~offset_base~ function_prefix=ITM secondary="yes" END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// data-field edits involving lookup -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY ~itm_ids_fields~ BEGIN - proficiency => ~0x31,BYTE,STATS~ -END - -LAUNCH_ACTION_FUNCTION build_IDS_data_field_editors STR_VAR lookup_table=itm_ids_fields function_prefix=ITM END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// delete opcodes -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ~ITM_delete_opcodes~ - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET arguments=list opcode_to_delete=entry END - PATCH_MATCH ~%opcode_to_delete%~ WITH - all BEGIN - LPF DELETE_ITEM_EFFECT INT_VAR opcode_to_delete=~-1~ END - LPF DELETE_ITEM_EQEFFECT INT_VAR opcode_to_delete=~-1~ END - END - equipped BEGIN - LPF DELETE_ITEM_EQEFFECT INT_VAR opcode_to_delete=~-1~ END - END - ability BEGIN - LPF DELETE_ITEM_EFFECT INT_VAR opcode_to_delete=~-1~ END - END - DEFAULT - LPF DELETE_ITEM_EFFECT INT_VAR opcode_to_delete END - LPF DELETE_ITEM_EQEFFECT INT_VAR opcode_to_delete END - LPF ITM_delete_opcodes STR_VAR arguments END - END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_delete_opcodes") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to opcodes -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_immunity_to_opcode - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list=~%arguments%~ RET entry=entry arguments=list END - LPF delete_entry STR_VAR type=effect_global arguments=~opcode=101 and parameter2=%entry%~ file_ext=ITM END - LPF add_entry_inline STR_VAR arguments =~opcode=>101 parameter2=>%entry%~ type=effect_global file_ext=ITM END - LPF ITM_immunity_to_opcode STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_immunity_to_opcode") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// give immunity to a spell (opcode 206) -///////////// -///////////// if we use "arguments" assume it's a string of entries -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_immunity_to_spell - STR_VAR spellname="" - spellcode="" - arguments="" -BEGIN - PATCH_IF ~%spellname%~ STRING_COMPARE_CASE ~~ BEGIN - LPF deabbreviate_spellname STR_VAR input= ~%spellname%~ RET spellname END - PATCH_IF VARIABLE_IS_SET "%spellname%" BEGIN - SPRINT spellcode EVALUATE_BUFFER ~%%spellname%%~ - END ELSE BEGIN - SPRINT spellcode "%spellname%" - LPF warning STR_VAR warning="Spell %spellname% does not appear to exist" END - END - END - PATCH_IF ~%spellcode%~ STRING_COMPARE_CASE ~~ BEGIN - LPF add_entry_inline STR_VAR arguments =~opcode=>206 resource=>%spellcode%~ type=effect_global file_ext=ITM END - END - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET spell=entry arguments=list END - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%spell%.spl~ BEGIN - OUTER_SPRINT spellcode ~%spell%~ - OUTER_SPRINT spellname ~~ - END ELSE BEGIN - OUTER_SPRINT spellname ~%spell%~ - OUTER_SPRINT spellcode ~~ - END - END - LPF ITM_immunity_to_spell STR_VAR arguments spellname spellcode END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_immunity_to_spell") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// take an item, and transfer all effects of a given ability onto a new spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION copy_item_to_spell - INT_VAR abil_ind=0 - STR_VAR item="" - spell="" -BEGIN - // make a new spell - LAF make_spell STR_VAR spell= ~%spell%~ END - // add the labelled ability of the item, and the effects, to the spell - COPY_EXISTING ~%item%.itm~ ~override~ - READ_ASCII ((LONG_AT 0x64) + 0x38 * abil_ind) ability (0x38) - SET offset=LONG_AT 0x64 - READ_SHORT 0x72 type - INNER_PATCH_SAVE ability ~%ability%~ BEGIN - WRITE_BYTE 0x2 4 // innate slots - WRITE_BYTE 0x1 0 - WRITE_SHORT 0x10 1 // min level - DELETE_BYTES 0x26 0x4 - DELETE_BYTES 0x28 0xc - READ_SHORT 0x1e eff_num - READ_SHORT 0x20 eff_ind - WRITE_SHORT 0x20 0 - READ_SHORT 0x26 proj - PATCH_IF proj>1 BEGIN - WRITE_BYTE 0x0 2 - END ELSE BEGIN - WRITE_BYTE 0x0 1 - END - END - SET eff_length=0x30*eff_num - READ_ASCII ((LONG_AT 0x6a) + 0x30*eff_ind) effects (eff_length) - INNER_ACTION BEGIN - COPY_EXISTING ~%spell%.spl~ ~override~ - INSERT_BYTES (LONG_AT 0x64) 0x28 - WRITE_ASCIIE (LONG_AT 0x64) ~%ability%~ - WRITE_SHORT 0x68 1 - WRITE_LONG 0x6a ((LONG_AT 0x6a) + 0x28) - INSERT_BYTES (LONG_AT 0x6a) ~eff_length~ - WRITE_ASCIIE (LONG_AT 0x6a) ~%effects%~ - BUT_ONLY - END - BUT_ONLY -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// externalise an item's global effects to a spell (so the spell applies, permanently, all the item's effects) leaving the item itself unchanged -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION copy_item_effects_to_spell - STR_VAR item="" - spell="" -BEGIN - // make a new spell - LAF make_spell STR_VAR spell END - COPY_EXISTING "%item%.itm" "%workspace%" - READ_SHORT 0x70 num_eff - READ_ASCII (LONG_AT 0x6a + (SHORT_AT 0x6e)*0x30) eff_array (num_eff*0x30) // read in whole effect block - BUT_ONLY - COPY_EXISTING "%spell%.spl" override - INNER_PATCH_SAVE ability "" BEGIN - INSERT_BYTES 0x0 0x28 - WRITE_SHORT 0x0 1 // type: melee - WRITE_SHORT 0x2 4 // slot:innate - WRITE_ASCII 0x4 "noicon" - WRITE_BYTE 0xc 5 // target:caster - WRITE_SHORT 0xe 1 // range - WRITE_SHORT 0x10 1 // min level - WRITE_SHORT 0x16 6 // dice size - just in case - WRITE_SHORT 0x1c 1 // piercing type - just in case - WRITE_SHORT 0x1e "%num_eff%" - WRITE_SHORT 0x22 1 // num charges - WRITE_SHORT 0x24 1 // unknown - WRITE_SHORT 0x26 1 // projectile NONE - - END - WRITE_SHORT 0x68 1 - INSERT_BYTES 0x72 0x28 - WRITE_ASCII 0x72 "%ability%" - WRITE_LONG 0x6a 0x72+0x28 - INSERT_BYTES (0x72+0x28) (0x30*num_eff) - WRITE_ASCII (0x72+0x28) "%eff_array%" - BUT_ONLY - LAF edit_spell STR_VAR spell editstring="patch_effect_inline=>~timing=>9~" END - -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// externalise an item's ability to a spell (so all the ability does is cast the spell) -///////////// The item has the same name as the spell unless you specify another explicitly -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION externalise_item_ability - INT_VAR abil_ind=0 - STR_VAR item="" - spell="" -BEGIN - // find the name for the spell - ACTION_IF "%spell%" STRING_EQUAL "" BEGIN - ACTION_IF !FILE_EXISTS_IN_GAME "%item%.spl" BEGIN - OUTER_SPRINT spell "%item%" - END ELSE BEGIN - FAIL "No explicit choice of spell for externalised %item%.itm, and %item%.spl is not available" - END - END - // make the spell - LAF copy_item_to_spell INT_VAR abil_ind STR_VAR item spell END - // edit the item - - ACTION_CLEAR_ARRAY patch_data - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - delete_entry_inline=>"type=>effect match=>~ability_index=%abil_ind%~" - add_entry_inline=>"type=>effect match=>~ability_index=%abil_ind%~ opcode=>146 parameter2=>1 resource=>%spell% target=>2 timing=>1" - END - LAF edit_item STR_VAR item edits=patch_data END -END - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// append the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_append_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=append_string_nospace loc=0x54 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_append_description") "" -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// substitute the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_substitute_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=substitute_string loc=0x54 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_substitute_description") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_set_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x54 arguments END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_description") "" - -DEFINE_PATCH_FUNCTION ITM_set_unidentified_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x50 arguments END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_unidentified_description") "" - - -DEFINE_PATCH_FUNCTION ITM_say_description - STR_VAR arguments="" -BEGIN - LPF item_useability_string INT_VAR tra_ref=arguments RET desc END - LPF patch_text_entry STR_VAR function=set_string loc=0x54 arguments="%desc%" END -END - -DEFINE_PATCH_FUNCTION ITM_say_unidentified_description - STR_VAR arguments="" -BEGIN - LPF item_useability_string INT_VAR tra_ref=arguments RET desc END - LPF patch_text_entry STR_VAR function=set_string loc=0x50 arguments="%desc%" END -END - -DEFINE_PATCH_FUNCTION ITM_set_both_descriptions - STR_VAR arguments="" -BEGIN - LPF ITM_set_description STR_VAR arguments END - LPF ITM_set_unidentified_description STR_VAR arguments END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_both_descriptions") "" - -DEFINE_PATCH_FUNCTION ITM_say_both_descriptions - STR_VAR arguments="" -BEGIN - LPF ITM_say_description STR_VAR arguments END - LPF ITM_say_unidentified_description STR_VAR arguments END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get the name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_identified_name - RET value -BEGIN - READ_STRREF 0xc value -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_set_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0xc arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_name") "" - -DEFINE_PATCH_FUNCTION ITM_set_name_evaluate - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0xc arguments= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION ITM_set_unidentified_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x8 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_unidentified_name") "" - -DEFINE_PATCH_FUNCTION ITM_say_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0xc say= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION ITM_say_unidentified_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0x8 say= ~%arguments%~ END -END - - -DEFINE_PATCH_FUNCTION ITM_set_both_names - STR_VAR arguments="" -BEGIN - LPF ITM_set_name STR_VAR arguments END - LPF ITM_set_unidentified_name STR_VAR arguments END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("ITM_set_both_names") "" - -DEFINE_PATCH_FUNCTION ITM_say_both_names - STR_VAR arguments="" -BEGIN - LPF ITM_say_name STR_VAR arguments END - LPF ITM_say_unidentified_name STR_VAR arguments END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// build -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ITM_build -BEGIN - ///// basic structure - DELETE_BYTES 0x0 BUFFER_LENGTH - INSERT_BYTES 0x0 0x72 - // sig - WRITE_ASCII 0x0 ~ITM V1 ~ - // name - WRITE_LONG 0x8 ~-1~ - WRITE_LONG 0xc ~-1~ - // max in stack - WRITE_SHORT 0x38 1 - // description - WRITE_LONG 0x50 ~-1~ - WRITE_LONG 0x54 ~-1~ - //offsets - WRITE_LONG 0x64 0x72 - WRITE_LONG 0x6a 0x72 -END - -DEFINE_PATCH_FUNCTION ITM_postbuild BEGIN - // sort out relevant proficiency - SET prof=0 - SPRINT inv "" - READ_SHORT 0x1c category - PATCH_MATCH category WITH - 25 BEGIN // axes - SPRINT inv AX - END - 28 BEGIN // handheld weapons - SPRINT inv H6 - END - 69 BEGIN // bastard swords - SPRINT inv S1 - SET prof=89 - END - 15 BEGIN // bows - SPRINT inv BW - SET prof=104 - END - 44 BEGIN // clubs - SPRINT inv CL - SET prof=115 - END - 27 BEGIN // crossbows - SPRINT inv CB - SET prof=103 - END - 16 BEGIN // daggers - SPRINT inv DD - SET prof=96 - END - 24 BEGIN // darts - SET prof=106 - END - 23 BEGIN // flails - SPRINT inv FL - SET prof=100 - END - 57 BEGIN // greatswords - SPRINT inv S2 - SET prof=93 - END - 30 BEGIN // halberds - SPRINT inv HB - SET prof=99 - END - 21 BEGIN // hammers - SPRINT inv WH - SET prof=97 - END - 20 BEGIN // longswords - SPRINT inv S1 - SET prof=90 - END - 17 BEGIN // maces - SPRINT inv MC - SET prof=101 - END - 22 BEGIN // morning stars - SPRINT inv MS - SET prof=100 - END - 26 BEGIN // quarterstaffs - SPRINT inv QS - SET prof=102 - END - 12 BEGIN // shields - SPRINT inv D2 - END - 19 BEGIN // shortswords - SPRINT inv SS - SET prof=91 - END - 18 BEGIN // slings - SPRINT inv SL - SET prof=107 - END - 29 BEGIN // spears - SPRINT inv SP - SET prof=98 - END - DEFAULT - END - PATCH_IF (prof>0) BEGIN - LPF ITM_read_proficiency_code RET value=value END - PATCH_IF value=0 BEGIN - LPF ITM_proficiency_code STR_VAR arguments= ~%prof%~ END - END - END - PATCH_IF (~%inv%~ STRING_COMPARE ~~) BEGIN - LPF ITM_read_inventory RET value=value END - PATCH_IF ~%value%~ STRING_EQUAL_CASE ~~ BEGIN - LPF ITM_inventory STR_VAR arguments= ~%inv%~ END - END - END - -END - -///////////////////////////////////////////////////////////////////////////////////////////// -/// logs the name of the item -///////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION ITM_log_me STR_VAR filename="" arguments="" BEGIN - LPF patch_log_this STR_VAR file= ~%arguments%~ input= ~%filename%~ repeat=no END -END - -///////////////////////////////////////////////////////////////////////////////////////////// -/// code to make an item description string according to whether EE is installed -///////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION item_useability_string - INT_VAR tra_ref=0 - RET desc -BEGIN - SPRINT desc ( AT "%tra_ref%") - PATCH_IF enhanced_edition BEGIN - PATCH_IF VARIABLE_IS_SET SFO_unusable_string_tra_ref BEGIN - SPRINT unusable ( AT "%SFO_unusable_string_tra_ref%") - INNER_PATCH "%desc%" BEGIN - SET ind=INDEX_BUFFER (CASE_INSENSITIVE "%unusable%") - PATCH_IF ind>=0 BEGIN - READ_ASCII 0x0 desc (ind) - END - END - END - PATCH_IF VARIABLE_IS_SET SFO_usable_string_tra_ref BEGIN - SPRINT usable ( AT "%SFO_usable_string_tra_ref%") - INNER_PATCH "%desc%" BEGIN - SET ind=INDEX_BUFFER (CASE_INSENSITIVE "%usable%") - PATCH_IF ind>=0 BEGIN - READ_ASCII 0x0 desc (ind) - END - END - END - END -END - - -//////////////////////////////////////////////////////////////////////////////////////// -/// Armor-type-finding function -/// -/// use example: LAF armor_type STR_VAR item=chan01 RET success type END -/// -/// success=1 if we find the armor type, 0 if we don't -/// type is one of: file_does_not_exist, not_armor, robes, leather, studded_leather, hide, chain, splint, plate, full_plate, scale, unknown -/// -/// if we can't work it out, but it is armor, we try to guess (but still set success=0) -//////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION armor_type - STR_VAR item="" - RET type success -BEGIN - OUTER_SET success=0 - ACTION_IF FILE_EXISTS_IN_GAME "%item%.cre" BEGIN - COPY_EXISTING "%item%.itm" override - // start by looking at the category, to confirm it's actually armor - PATCH_IF !((SHORT_AT 0x1c)=2) BEGIN - SET success=1 - SPRINT type not_armor - END - PATCH_IF !success BEGIN - // look at the animation type - READ_SHORT 0x22 anim_type - PATCH_MATCH "%anim_type%" WITH - 2W 3W 4W BEGIN // robes - SET success=1 - SPRINT type robes - END - // end of 2W 3W 4W section - 2A BEGIN // leather armor - could be ordinary,studded,hide - LPF read_armor_bonus_by_type RET slashing piercing crushing missile END - PATCH_IF (piercing="-2" && missile="-2") BEGIN // either leather or hide - PATCH_IF (SHORT_AT 0x26)=6 BEGIN // if you need strength 6 (rather than 4), it's hide - SET success=1 - SPRINT type hide - END ELSE BEGIN - SET success=1 - SPRINT type leather - END - END ELSE - PATCH_IF (slashing=2 && piercing=1 && missile=1) BEGIN // studded leather - SET success=1 - SPRINT type studded_leather - END ELSE BEGIN - SET success=0 - SPRINT type leather // guess leather - END - END - // end of 2A section - 3A BEGIN // chain or splint - LPF read_armor_bonus_by_type RET slashing piercing crushing missile END - PATCH_IF (slashing=2 && crushing="-2") BEGIN // chain mail - SET success=1 - SPRINT type chain - END ELSE - PATCH_IF (piercing=1 && missile=1 && crushing=2) BEGIN - SET success=1 - SPRINT type splint - END ELSE BEGIN - SET success=0 - SPRINT type chain // guess chain - END - END - // end of 3A section - 4A BEGIN // plate or full plate - LPF read_armor_bonus_by_type RET slashing piercing crushing missile END - PATCH_IF (slashing=3 && missile=0 && piercing=0) BEGIN // plate mail - SET success=1 - SPRINT type plate - END ELSE - PATCH_IF (piercing=3 && missile=3 && slashing=4) BEGIN - SET success=1 - SPRINT type full_plate - END ELSE - PATCH_IF (slashing=3 && missile=1 && piercing=1) BEGIN // scale male - just a couple of dragon armors - SET success=1 - SPRINT type scale - END ELSE BEGIN - SET success=0 - SPRINT type plate // guess plate - END - END - // end of 4A section - DEFAULT - SET success=0 - SPRINT type robes // guess robes - END - END - BUT_ONLY - END ELSE BEGIN - OUTER_SET success=0 - OUTER_SPRINT type file_does_not_exist - END -END - -//////////////////////////////////////////////////////////////////////////////////////// -/// Helper function. Returns the vs-type bonuses for armor -//////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION read_armor_bonus_vs_type - RET slashing piercing crushing missile -BEGIN - DEFINE_ASSOCIATIVE_ARRAY type_map BEGIN - 1=>crushing - 2=>missile - 4=>piercing - 8=>slashing - END - PHP_EACH type_map AS discard=>value BEGIN - SET "%value%"=0 - END - GET_OFFSET_ARRAY offsets ITM_V10_GEN_EFFECTS - PHP_EACH offsets AS discard=>offset BEGIN - PATCH_IF (SHORT_AT offset)=0 BEGIN // is an AC modification - READ_LONG (0x8 + offset) type - PHP_EACH type_map AS key=>value BEGIN - PATCH_IF type=key BEGIN - READ_LONG (0x4 + offset) modifier - SET "%value%"=modifier - END - END - END - END -END - - - diff --git a/iwdification/dw/sfo/filetype/lib_kit.tpa b/iwdification/dw/sfo/filetype/lib_kit.tpa deleted file mode 100644 index ab92bcf..0000000 --- a/iwdification/dw/sfo/filetype/lib_kit.tpa +++ /dev/null @@ -1,1485 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// General kit editor -///// "kit" refers to the table entry in kitlist.2da -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_kit - INT_VAR skip_lua=0 - skip_clab=0 - at_top_hla=0 - STR_VAR editstring="" - edits="" - kit="" -BEGIN - // synonyms - LAF standardize_kit STR_VAR arguments="%kit%" RET kit=value END - // get parent class - LAF resolve_parent_class STR_VAR kit RET parent_class true_class multiclassed END - // get kit code - ACTION_IF true_class=0 BEGIN - COPY_EXISTING kitlist.2da "%workspace%" - LPF get_table_row_coordinate INT_VAR lookup_column=1 STR_VAR row="%kit%" RET kit_id=rownum END - BUT_ONLY - END - // process edits - OUTER_SPRINT clab_edits "" - OUTER_SPRINT lua_edits "" - OUTER_WHILE "%editstring%" STRING_COMPARE "" BEGIN - LAF return_first_pair STR_VAR list="%editstring%" RET command=key arguments=value editstring=list END - OUTER_PATCH_SAVE command "%command%" BEGIN - REPLACE_TEXTUALLY "'[0-9]*" "" - REPLACE_TEXTUALLY "'" "" - END - ACTION_MATCH "%command%" WITH - grant_power apply_power remove_power BEGIN - OUTER_SPRINT clab_edits "%clab_edits% %command%=>~%arguments%~" - END - remove_hla grant_hla apply_hla restrict_hla BEGIN - OUTER_SPRINT lua_edits "%lua_edits% %command%=>~%arguments%~" - END - DEFAULT - LAF edit_kit_parser STR_VAR command arguments END - END - END - ACTION_PHP_EACH "%edits%" AS command=>arguments BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - REPLACE_TEXTUALLY "'[0-9]*" "" - REPLACE_TEXTUALLY "'" "" - END - - ACTION_MATCH "%command%" WITH - grant_power apply_power remove_power BEGIN - OUTER_SPRINT clab_edits "%clab_edits% %command%=>~%arguments%~" - END - remove_hla grant_hla apply_hla restrict_hla BEGIN - OUTER_SPRINT lua_edits "%lua_edits% %command%=>~%arguments%~" - END - DEFAULT - LAF edit_kit_parser STR_VAR command arguments END - END - END - // process CLAB editing - ACTION_IF ("%clab_edits%" STRING_COMPARE "" && !skip_clab) BEGIN - LAF edit_clab STR_VAR editstring="%clab_edits%" kit END - END - // process LUA editing - ACTION_IF ("%lua_edits%" STRING_COMPARE "" && !skip_lua) BEGIN - LAF edit_lua INT_VAR at_top="%at_top_hla%" STR_VAR editstring="%lua_edits%" kit END - END -END - - -DEFINE_ACTION_FUNCTION edit_kit_parser - STR_VAR command="" - arguments="" -BEGIN - OUTER_SET found=1 - ACTION_TO_UPPER command - ACTION_TO_UPPER kit - ACTION_MATCH "%command%" WITH - "min_\(str\|dex\|con\|int\|wis\|chr\)" BEGIN - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=ABCLASRQ END - END - "mod_\(str\|dex\|con\|int\|wis\|chr\)" BEGIN - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=ABCLSMOD END - END - "dc_from_min_\(str\|dex\|con\|int\|wis\|chr\)" BEGIN - ACTION_IF multiclassed BEGIN - FAIL "%command% is not valid for multi-classed characters" - END - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 3 - END - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=ABDCSCRQ END - END - "dc_to_min_\(str\|dex\|con\|int\|wis\|chr\)" BEGIN - ACTION_IF !true_class BEGIN - FAIL "%command% is not valid for kitted characters" - END - ACTION_IF multiclassed BEGIN - FAIL "%command% is not valid for multi-classed characters" - END - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 3 - END - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=ABDCDSRQ END - END - "\(lawful\|chaotic\|neutral\)_\(good\|neutral\|evil\)" "neutral" "[lcn]_[gne]" BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - REPLACE_TEXTUALLY lawful l - REPLACE_TEXTUALLY chaotic c - REPLACE_TEXTUALLY good g - REPLACE_TEXTUALLY evil e - REPLACE_TEXTUALLY neutral n - REPLACE_TEXTUALLY "^n$" "n_n" - END - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=ALIGNMNT END - END - small_sword large_sword blunt missile bow spiked axe spear BEGIN - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=CLASWEAP END - END - "dual_to_\(fighter\|cleric\|mage\|thief\|druid\|ranger\)" BEGIN - ACTION_IF multiclassed BEGIN - FAIL "%command% is not valid for multi-classed characters" - END - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 8 - END - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=DUALCLAS END - END - "prof_.*" "proficiency_.*" BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - REPLACE_TEXTUALLY "prof_" "" - REPLACE_TEXTUALLY "proficiency_" "" - END - LAF write_table_entry INT_VAR do_not_insert=1 STR_VAR row="%command%" column="%kit%" file=WEAPPROF arguments END - END - "initial_\(pick_pockets\|open_locks\|find_traps\|move_silently\|hide_in_shadows\|detect_illusion\|set_traps\)" BEGIN - ACTION_IF enhanced_edition BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 8 - END - LAF write_table_entry STR_VAR row="%command%" column="%kit%" arguments file=clasiskl END - END ELSE BEGIN - LAF warning STR_VAR warning="Initial thief skills can only be edited on the Enhanced Edition of the game" END - END - END - gets_prof_apr unarmed_divisor zero_skill_thac0 BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=clswpbon END - END ELSE BEGIN - LAF warning STR_VAR warning="values in 'clswpbon' can only be edited on the Enhanced Edition of the game" END - END - END - hp_table BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=table arguments file=hpclass END - END ELSE BEGIN - LAF warning STR_VAR warning="The hit point table used by a class or kit can only be edited on the Enhanced Edition of the game" END - END - END - weapon_slots BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=slots file=numwslot arguments END - END ELSE BEGIN - LAF warning STR_VAR warning="The number of weapon slots available to a class or kit can only be edited in the Enhanced Edition of the game" END - END - END - "scale_\(stealth\|pick_pockets\|open_locks\|find_traps\|move_silently\|hide_in_shadows\|detect_illusion\|set_traps\)" BEGIN - ACTION_IF enhanced_edition BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 6 - END - LAF write_table_entry STR_VAR row="%command%" column="%kit%" arguments file=thiefscl END - END ELSE BEGIN - LAF warning STR_VAR warning="The scaling of thief skills can only be edited on the Enhanced Edition of the game" END - END - END - thief_start_points thief_level_points BEGIN - ACTION_IF enhanced_edition BEGIN - OUTER_PATCH_SAVE command "%command%" BEGIN - DELETE_BYTES 0x0 6 - END - LAF write_table_entry STR_VAR row="%kit%" column="%command%" arguments file=thiefskl END - END ELSE BEGIN - LAF warning STR_VAR warning="The number of available thief skill points can only be edited on the Enhanced Edition of the game" END - END - END - trap_limit BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=limit arguments file=traplimt END - END ELSE BEGIN - LAF warning STR_VAR warning="The maximum number of settable traps can only be edited on the Enhanced Edition of the game" END - END - END - available_to unavailable_to BEGIN - OUTER_PATCH_SAVE list "%arguments%" BEGIN - REPLACE_TEXTUALLY "\[" "" // we allow either format of entry here - REPLACE_TEXTUALLY "\]" "" - END - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - ACTION_IF !true_class BEGIN - LAF kit_race_notrueclass STR_VAR entry kit END - END ELSE BEGIN - LAF kit_race_trueclass STR_VAR entry kit END - END - END // end of WHILE loop - END // end of available_to section - fallen BEGIN - ACTION_IF !true_class BEGIN // lookup by IDS doesn't look reliable for CLASTEXT - ACTION_MATCH "%kit%" WITH - ABJURER CONJURER DIVINER ENCHANTER ILLUSIONIST INVOKER NECROMANCER TRANSMUTER - BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=fallen arguments file=clastext END - END - WILDMAGE BEGIN - LAF write_table_entry STR_VAR row=WILD_MAGE column=fallen arguments file=clastext END - END - DEFAULT - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%kit_id%" column=fallen arguments file=clastext END - END - END ELSE BEGIN - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%class_id%" column=fallen arguments file=clastext END - END - - END - set_name say_name BEGIN - ACTION_IF "%command%" STRING_EQUAL_CASE "%say_name%" BEGIN - LAF strref_of_tra STR_VAR arguments RET mixed=value END - ACTION_GET_STRREF mixed mixed_string - ACTION_TO_LOWER mixed_string - OUTER_SET lower=RESOLVE_STR_REF ("%mixed_string%") - END ELSE BEGIN - OUTER_SET mixed=RESOLVE_STR_REF ("%arguments%") - ACTION_TO_LOWER arguments - OUTER_SET lower=RESOLVE_STR_REF ("%arguments%") - END - ACTION_IF !true_class BEGIN - LAF write_table_entry INT_VAR lookup_column=1 STR_VAR row="%kit%" column=lower arguments="%lower%" file=kitlist END - LAF write_table_entry INT_VAR lookup_column=1 STR_VAR row="%kit%" column=mixed arguments="%mixed%" file=kitlist END - ACTION_IF enhanced_edition BEGIN // now CLASTEXT, for enhanced - // lookup by IDS doesn't look reliable for CLASTEXT - ACTION_MATCH "%kit%" WITH - ABJURER CONJURER DIVINER ENCHANTER ILLUSIONIST INVOKER NECROMANCER TRANSMUTER - BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=lower arguments="%lower%" file=clastext END - LAF write_table_entry STR_VAR row="%kit%" column=mixed arguments="%mixed%" file=clastext END - END - WILDMAGE BEGIN - LAF write_table_entry STR_VAR row=WILD_MAGE column=lower arguments="%lower%" file=clastext END - LAF write_table_entry STR_VAR row=WILD_MAGE column=mixed arguments="%mixed%" file=clastext END - END - DEFAULT - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%kit_id%" column=lower arguments="%lower%" file=clastext END - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%kit_id%" column=mixed arguments="%mixed%" file=clastext END - END - END - END ELSE BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%class_id%" column=lower arguments="%lower%" file=clastext END - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%class_id%" column=mixed arguments="%mixed%" file=clastext END - END ELSE BEGIN - LAF warning STR_VAR warning="Names of classes can only (readily) be edited on the Enhanced Edition of the game" END - END - END - END - set_biography say_biography biography_strref BEGIN - ACTION_IF !enhanced_edition BEGIN - LAF warning STR_VAR warning="Biographies can only be edited on the Enhanced Edition of the game" END - END ELSE BEGIN - ACTION_MATCH "%command%" WITH - set_biography BEGIN - OUTER_SET strref=RESOLVE_STR_REF ("%arguments%") - END - say_biography BEGIN - LAF strref_of_tra STR_VAR arguments RET strref=value END - END - DEFAULT - OUTER_SET strref=arguments - END - ACTION_IF !true_class BEGIN // lookup by IDS doesn't look reliable for CLASTEXT - ACTION_MATCH "%kit%" WITH - ABJURER CONJURER DIVINER ENCHANTER ILLUSIONIST INVOKER NECROMANCER TRANSMUTER - BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=biography arguments="%strref%" file=clastext END - END - WILDMAGE BEGIN - LAF write_table_entry STR_VAR row=WILD_MAGE column=biography arguments="%strref%" file=clastext END - END - DEFAULT - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%kit_id%" column=biography arguments="%strref%" file=clastext END - END - END ELSE BEGIN - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%class_id%" column=biography arguments="%strref%" file=clastext END - END - END - END - set_description say_description description_strref BEGIN - ACTION_MATCH "%command%" WITH - set_description BEGIN - OUTER_SET strref=RESOLVE_STR_REF ("%arguments%") - END - say_description BEGIN - LAF strref_of_tra STR_VAR arguments RET strref=value END - END - DEFAULT - OUTER_SET strref=arguments - END - ACTION_IF !true_class BEGIN - // first KITLIST - LAF write_table_entry INT_VAR lookup_column=1 STR_VAR row="%kit%" column=help arguments="%strref%" file=kitlist END - // then, on enhanced edition, CLASTEXT - ACTION_IF enhanced_edition BEGIN - // lookup by IDS doesn't look reliable for CLASTEXT - ACTION_MATCH "%kit%" WITH - ABJURER CONJURER DIVINER ENCHANTER ILLUSIONIST INVOKER NECROMANCER TRANSMUTER - BEGIN - LAF write_table_entry STR_VAR row="%kit%" column=descstr arguments="%strref%" file=clastext END - END - WILDMAGE BEGIN - LAF write_table_entry STR_VAR row=WILD_MAGE column=descstr arguments="%strref%" file=clastext END - END - DEFAULT - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%kit_id%" column=descstr arguments="%strref%" file=clastext END - END - END - END ELSE BEGIN - ACTION_IF enhanced_edition BEGIN - LAF write_table_entry INT_VAR lookup_column=2 STR_VAR row="%class_id%" column=descstr arguments="%strref%" file=clastext END - END ELSE BEGIN - LAF warning STR_VAR warning="Class descriptions can only be (readily) edited on the Enhanced version of the game" END - END - END - END - metal minor_cloth main_cloth leather armor BEGIN - LAF write_table_entry STR_VAR row="%command%" column="%kit%" arguments file=clascolr END - END - armor shield helm bag ring1 ring2 cloak boots amulet bracers belt ammo1 ammo2 ammo3 misc1 misc2 misc3 misc4 misc5 weapon1 BEGIN - LAF write_table_entry STR_VAR rol="%command%" column="%kit%" arguments file=25stweap END - END - backstab BEGIN - ACTION_IF enhanced_edition BEGIN - COPY_EXISTING backstab.2da override - COUNT_2DA_COLS colcount - BUT_ONLY - OUTER_FOR (i=0;ih - elf=>e - elven=>e - dwarf=>d - dwarven=>d - halfelf=>he - half-elf=>he - half_elf=>he - half-elven=>he - halfelven=>he - half_elven=>he - halfling=>hl - gnome=>g - halforc=>ho - half-orc=>ho - half_orc=>ho - END - ACTION_DEFINE_ASSOCIATIVE_ARRAY kit_class_codes BEGIN - bard=>b - cleric=>c - priest=>c - druid=>d - fighter=>f - monk=>mn - paladin=>p - ranger=>r - sorceror=>s - sorcerer=>s - thief=>t - END - ACTION_TO_LOWER entry - OUTER_SPRINT racecode $kit_race_codes("%entry%") - ACTION_TO_LOWER parent_class - OUTER_SPRINT classcode $kit_class_codes("%parent_class%") - OUTER_SPRINT filename "K_%classcode%_%racecode%" - ACTION_IF FILE_EXISTS_IN_GAME "%filename%.2da" BEGIN - COPY_EXISTING "%filename%.2da" override - COUNT_2DA_ROWS 2 rowcount - PATCH_IF "%command%" STRING_EQUAL_CASE unavailable_to BEGIN - SET to_delete="-1" - FOR (i=1;i=0 BEGIN - REMOVE_2DA_ROW to_delete 2 - LPF renumber_rows END - END - END ELSE BEGIN - SET is_present=0 - FOR (i=1;i>>>>>>> - COPY ".../stratagems-inline/clab_template.2da" "override/%clab%.2da" EVALUATE_BUFFER PRETTY_PRINT_2DA - END - COPY_EXISTING "%clab%.2da" override - // read in the data - COUNT_2DA_COLS colcount // equals level+1, so col n contains level n - READ_2DA_ENTRIES_NOW clab_data colcount - SET max_level=colcount - 1 - FOR (level=1;level<=max_level;level+=1) BEGIN - SPRINT abil_temp "" - FOR (i=0;i max_level BEGIN - SET max_here = max_level - END - END - END - PATCH_IF rec<=0 BEGIN SET rec=99 END // guard against infinite loops - WHILE level<=max_here BEGIN - LPF CLAB_add_ability INT_VAR level STR_VAR spell type="%command%" RET string=string END - SPRINT $abil("%level%") "%string%" - SET level += rec - END - END - DEFAULT - PATCH_FAIL "%command% is not a valid argument for edit_clab" - END - END - BUT_ONLY - LAF CLAB_write INT_VAR max_level STR_VAR clab END -END - -DEFINE_PATCH_FUNCTION CLAB_remove_ability // return a string which is the resources at given level, minus the spell listed. (Limitations of WEIDU mean we have to stick it in manually) - INT_VAR level=1 - STR_VAR spell="" - RET string -BEGIN - LPF deabbreviate_spellname STR_VAR input="%spell%" RET spell=spellname END - PATCH_IF "%spell%" STRING_EQUAL_CASE "all" BEGIN - SPRINT string "" - END ELSE BEGIN - PATCH_IF VARIABLE_IS_SET "%spell%" BEGIN - SPRINT spell EVALUATE_BUFFER "%%spell%%" - END - SPRINT string $abil("%level%") - INNER_PATCH_SAVE string "%string%" BEGIN - REPLACE_TEXTUALLY CASE_INSENSITIVE "\(GA\|AP\)_%spell%" "" - END - END -END - -DEFINE_PATCH_FUNCTION CLAB_add_ability // return a string which is the resources at given level, plus the specified ability. (Limitations of WEIDU mean we have to stick it in manually) - INT_VAR level=1 - STR_VAR spell="" - type="" - RET string -BEGIN - LPF deabbreviate_spellname STR_VAR input="%spell%" RET spell=spellname END - PATCH_IF VARIABLE_IS_SET "%spell%" BEGIN - SPRINT spell EVALUATE_BUFFER "%%spell%%" - END - SPRINT string $abil("%level%") - PATCH_MATCH "%type%" WITH - apply_power BEGIN - SPRINT string "%string% AP_%spell%" - END - grant_power BEGIN - SPRINT string "%string% GA_%spell%" - END - DEFAULT PATCH_FAIL "shouldn't happen (CLAB)" END -END - -DEFINE_ACTION_FUNCTION find_clab // find the CLAB file for a particular kit - STR_VAR kit="" - RET clab -BEGIN - LAF standardize_kit STR_VAR arguments="%kit%" RET kit=value END - // handle mismatches between class.ids and kitlist.ids - ACTION_MATCH "%kit%" WITH - "GOD.*" BEGIN - OUTER_PATCH_SAVE kit "%kit%" BEGIN - DELETE_BYTES 0x0 3 - END - END - "MAGESCHOOL_GENERALIST" BEGIN - OUTER_SPRINT kit MAGE - END - "MAGESCHOOL_.*" BEGIN - OUTER_PATCH_SAVE kit "%kit%" BEGIN - DELETE_BYTES 0x0 11 - END - END - DEFAULT - END - OUTER_SPRINT clab unknown_clab - COPY_EXISTING kitlist.2da "%workspace%" - READ_2DA_ENTRIES_NOW kitlist_data 6 - FOR (i=0;iFI01 - RANGER=>RN01 - PALADIN=>PA01 - MONK=>MO01 - CLERIC=>PR01 - PRIEST=>PR01 - DRUID=>DR01 - MAGE=> MA01 - SORCEROR=>MA01 - SORCERER=>MA01 - SHAMAN=>SH01 - THIEF=>TH01 - BARD=>BA01 - END - ACTION_IF VARIABLE_IS_SET $class_clab("%kit%") BEGIN - OUTER_SPRINT clab EVALUATE_BUFFER "CLAB%class_clab_%kit%%" - END ELSE BEGIN - LAF warning STR_VAR warning="Cannot find clab file for kit %kit%" END - END - END -END - -DEFINE_ACTION_FUNCTION CLAB_write // create the CLAB file (wipes existing one, all data - hopefully - already imported) - INT_VAR max_level=0 - STR_VAR clab="" -BEGIN -<<<<<<<< .../stratagems-inline/clab_template.2da -2DA V1.0 -**** ->>>>>>>> - COPY ".../stratagems-inline/clab_template.2da" "override/%clab%.2da" - OUTER_SPRINT topline " " - OUTER_FOR (level=1;level<=max_level;level+=1) BEGIN - LAF prettify_clab_entry STR_VAR entry="%level%" RET level_new=entry_new END - OUTER_SPRINT topline "%topline% %level_new%" - END - APPEND "%clab%.2da" "%topline%" - OUTER_SET done=0 - OUTER_SET rowcount=0 - OUTER_WHILE !done BEGIN - OUTER_SET done=1 - OUTER_SET rowcount +=1 - OUTER_SPRINT row "ABILITY%rowcount% " - - OUTER_FOR (level=1;level<=max_level;level+=1) BEGIN - OUTER_SPRINT temp $abil("%level%") - ACTION_IF "%temp%" STRING_MATCHES_REGEXP " *$" BEGIN - OUTER_SET done=0 - LAF return_first_entry STR_VAR list="%temp%" RET entry=entry temp=list END - OUTER_SPRINT $abil("%level%") "%temp%" - LAF prettify_clab_entry STR_VAR entry RET entry=entry_new END - OUTER_SPRINT row "%row% %entry%" - END ELSE BEGIN - OUTER_SPRINT row "%row% **** " - END - ACTION_IF !done BEGIN - - END - END - ACTION_IF !done BEGIN - APPEND "%clab%.2da" "%row%" - END - END -END - - - -DEFINE_ACTION_FUNCTION prettify_clab_entry - STR_VAR entry="" - RET entry_new -BEGIN - OUTER_PATCH_SAVE entry_new " " BEGIN - WRITE_ASCII 0x0 "%entry%" - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// General HLA editor -///// (Intended basically to be called from within edit_kit) -///// -///// Syntax: grant|apply_hla => file list -///// remove_hla => file list -///// restrict_hla => key=> value list -///// -///// where the most general restrict_hla command is -///// hla=>file [required] -///// min_level=>int -///// max_level=>int -///// num_allowed=>int -///// prerequisite|excluded_by=>file [must already be in the lua] -///// alignment_restrict|exclude_alignment => good|evil -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_lua - INT_VAR at_top=0 - STR_VAR - kit="" - lua="" - editstring="" -BEGIN - ACTION_IF "%lua%" STRING_EQUAL "" BEGIN - LAF resolve_lua STR_VAR kit RET lua END - END - // if it doesn't exist, make it - ACTION_IF !FILE_EXISTS_IN_GAME "%lua%.2da" BEGIN -<<<<<<<< .../stratagems-inline/lua_template.2da - 2DA V1.0 -* - ABILITY ICON STRREF MIN_LEV MAX_LEVEL NUM_ALLOWED PREREQUISITE EXCLUDED_BY ALIGNMENT_RESTRICT ->>>>>>>> - COPY ".../stratagems-inline/lua_template.2da" "override/%lua%.2da" - END - COPY_EXISTING "%lua%.2da" override - // parametrise file - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - // read in the list of powers - SET number_of_powers=0 - FOR (i=0;iFI - RANGER=>RN - PALADIN=>PA - MONK=>MO - CLERIC=>PR - DRUID=>DR - MAGE=> MA - SORCEROR=>MA - THIEF=>TH - BARD=>BA - END - ACTION_TO_UPPER parent_class - OUTER_SPRINT file_ext $class_clab("%parent_class%") - ACTION_IF try_next<10 BEGIN - OUTER_SPRINT file_to_try "CLAB%file_ext%0%try_next%" - END ELSE BEGIN - OUTER_SPRINT file_to_try "CLAB%file_ext%%try_next%" - END - - ACTION_IF !FILE_EXISTS_IN_GAME "%file_to_try%.2da" BEGIN - OUTER_SPRINT clab "%file_to_try%" - ACTION_IF clone BEGIN - COPY_EXISTING "CLAB%file_ext%01.2da" "override/%clab%.2da" - END - END ELSE BEGIN - LAF find_next_unused_clab INT_VAR clone try_next=try_next + 1 STR_VAR parent_class RET clab END - END -END - -DEFINE_ACTION_FUNCTION find_next_unused_lua - INT_VAR try_next=1 clone=0 - STR_VAR parent_class="" - RET lua -BEGIN - ACTION_CLEAR_ARRAY class_lua - ACTION_DEFINE_ASSOCIATIVE_ARRAY class_lua BEGIN - FIGHTER=>FI - MAGE=>MA - CLERIC=>CL - THIEF=>TH - BARD=>BA - PALADIN=>PA - DRUID=>DR - RANGER=>RA - MONK=>MO - SORCERER=>SO - SORCEROR=>SO - END - ACTION_TO_UPPER parent_class - OUTER_SPRINT file_ext $class_lua("%parent_class%") - OUTER_SPRINT file_to_try "lu%file_ext%%try_next%" - ACTION_IF !FILE_EXISTS_IN_GAME "%file_to_try%.2da" BEGIN - OUTER_SPRINT lua "%file_to_try%" - ACTION_IF clone BEGIN - COPY_EXISTING "lu%file_ext%1.2da" "override/%lua%.2da" - END - END ELSE BEGIN - LAF find_next_unused_lua INT_VAR clone try_next=try_next+1 STR_VAR parent_class RET lua END - END - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Race editor -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_race - STR_VAR editstring="" - edits="" - race="" -BEGIN - LAF standardize_race STR_VAR arguments="%race%" RET race=value END - // process edits - OUTER_WHILE "%editstring%" STRING_COMPARE "" BEGIN - LAF return_first_pair STR_VAR list="%editstring%" RET command=key arguments=value editstring=list END - LAF edit_race_parser STR_VAR race command arguments END - END - ACTION_PHP_EACH "%edits%" AS command=>arguments BEGIN - LAF edit_race_parser STR_VAR race command arguments END - END -END - -DEFINE_ACTION_FUNCTION edit_race_parser - STR_VAR command="" - arguments="" - race="" -BEGIN - ACTION_MATCH "%command%" WITH - "thac0_.*" BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "racethac.2da" BEGIN - OUTER_PATCH_SAVE prof "%command%" BEGIN - REPLACE_TEXTUALLY "thac0_" "" - END - LAF write_table_entry INT_VAR do_not_insert=1 lookup_column=1 STR_VAR row="%prof%" column="%race%" arguments file="racethac" END - END ELSE BEGIN - LAF warning STR_VAR warning="Racial attack bonuses can only be edited on the Enhanced Edition" END - END - END - hair skin BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "racecolr.2da" BEGIN - LAF write_table_entry STR_VAR column="%race%" row="%command%" arguments file=racecolr END - END ELSE BEGIN - LAF warning STR_VAR warning="Racial starting colours can only be edited on the Enhanced Edition" END - END - END - set_name say_name BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "racetext.2da" BEGIN - ACTION_IF "%command%" STRING_EQUAL_CASE "%say_name%" BEGIN - LAF strref_of_tra STR_VAR arguments RET mixed=value END - ACTION_GET_STRREF mixed mixed_string - ACTION_TO_LOWER mixed_string - OUTER_SET lower=RESOLVE_STR_REF ("%mixed_string%") - END ELSE BEGIN - OUTER_SET mixed=RESOLVE_STR_REF ("%arguments%") - ACTION_TO_LOWER arguments - OUTER_SET lower=RESOLVE_STR_REF ("%arguments%") - END - LAF write_table_entry STR_VAR row="%race%" column=name file=racetext arguments="%lower%" END - LAF write_table_entry STR_VAR row="%race%" column=uppercase file=racetext arguments="%mixed%" END - END ELSE BEGIN - LAF warning STR_VAR warning="Racial names can only be (readily) edited on the Enhanced Edition or on ToBEx" END - END - END - "\(set\|say\)_description" BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "racetext.2da" BEGIN - LAF return_first_entry STR_VAR list="%command%" separator="_" RET setorsay=entry END - ACTION_IF "%setorsay%" STRING_EQUAL_CASE set BEGIN - OUTER_SET strref=RESOLVE_STR_REF ("%arguments%") - END ELSE BEGIN - LAF strref_of_tra STR_VAR arguments RET strref=value END - END - LAF write_table_entry STR_VAR row="%race%" column=descstr file=racetext arguments="%strref%" END - END ELSE BEGIN - LAF warning STR_VAR warning="Racial descriptions only be (readily) edited on the Enhanced Edition or on ToBEx" END - END - END - "\(set\|say\)_biography" BEGIN - ACTION_IF enhanced_edition BEGIN - LAF return_first_entry STR_VAR list="%command%" separator="_" RET setorsay=entry END - ACTION_IF "%setorsay%" STRING_EQUAL_CASE set BEGIN - OUTER_SET strref=RESOLVE_STR_REF ("%arguments%") - END ELSE BEGIN - LAF strref_of_tra STR_VAR arguments RET strref=value END - END - LAF write_table_entry STR_VAR row="%race%" column=biography file=racetext arguments="%strref%" END - END ELSE BEGIN - LAF warning STR_VAR warning="Racial biographies only be edited on the Enhanced Edition" END - END - END - DEFAULT - FAIL "%command% is not a valid command for edit_race" - END -END - -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION get_parent_class - STR_VAR kit="" - RET class_id parent_class true_class -BEGIN - LAF read_table_entry INT_VAR lookup_column=1 dont_complain=1 STR_VAR row="%kit%" column=class file=kitlist RET class_id=value END - ACTION_IF class_id<0 BEGIN - OUTER_SET class_id= IDS_OF_SYMBOL (class "%kit%") - OUTER_SET true_class=1 - END ELSE BEGIN - OUTER_SET true_class=0 - END - OUTER_PATCH "" BEGIN - LOOKUP_IDS_SYMBOL_OF_INT parent_class class "%class_id%" - END -END - -/////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_luas_unique -BEGIN - - // get the data - COPY_EXISTING "luabbr.2da" "%workspace%" - OUTER_SPRINT read_array_location "%workspace%" - OUTER_SPRINT array_to_read "luabbr.2da" - OUTER_SPRINT array_name luabbr - LAM read_in_assoc_array - - // go through as a first pass, to see what's in use - ACTION_PHP_EACH luabbr AS kit=>lua BEGIN - ACTION_IF ("%kit%" STRING_COMPARE_CASE 2da) BEGIN - OUTER_SPRINT $in_luabbr("%lua%") "" - END - END - - // go through - ACTION_PHP_EACH luabbr AS kit=>lua BEGIN - ACTION_IF ("%kit%" STRING_COMPARE_CASE 2da) BEGIN - ACTION_IF VARIABLE_IS_SET $in_use("%lua%") BEGIN - OUTER_PATCH "%lua%" BEGIN - READ_ASCII 0x0 prefix (2) - END - LAF make_luas_unique_helper STR_VAR prefix RET lua_new END - OUTER_SPRINT $luabbr("%kit%") "%lua_new%" - OUTER_SPRINT $in_use("%lua_new%") "" - OUTER_SPRINT $in_luabbr("%lua_new%") "" - COPY_EXISTING "lu%lua%.2da" "override/lu%lua_new%.2da" - END ELSE BEGIN - OUTER_SPRINT $in_use("%lua%") "" - END - END - END - // write out the updated luas - COPY_EXISTING luabbr.2da override - COUNT_2DA_ROWS 2 rowcount - FOR (i=0;i ~0x8, SHORT~ - speed => ~0xa,SHORT~ - travel_wav => ~0x10,ASCII~ - arrive_wav => ~0x18,ASCII~ - travel_wav0 => ~0x10,ASCII~ // this renaming facilitates IWD-in-BG2 - arrive_wav0 => ~0x18,ASCII~ - travel_vvc => ~0x20,ASCII~ - spark_color_num=>~0x28,SHORT~ - travel_anim => ~0x104,ASCII~ - shadow_anim => ~0x10c,ASCII~ - travel_anim0 => ~0x104,ASCII~ - shadow_anim0 => ~0x10c,ASCII~ - pro_seq_num => ~0x114,BYTE~ - shadow_seq_num => ~0x115,BYTE~ - light_intensity => ~0x116,SHORT~ - light_width => ~0x118,SHORT~ - light_height => ~0x11a,SHORT~ - palette => ~0x11c,ASCII~ - color_1 => ~0x124,BYTE~ - color_2 => ~0x125,BYTE~ - color_3 => ~0x126,BYTE~ - color_4 => ~0x127,BYTE~ - color_5 => ~0x128,BYTE~ - color_6 => ~0x129,BYTE~ - color_7 => ~0x12a,BYTE~ - smoke_color_1 => ~0x124,BYTE~ - smoke_color_2 => ~0x125,BYTE~ - smoke_color_3 => ~0x126,BYTE~ - smoke_color_4 => ~0x127,BYTE~ - smoke_color_5 => ~0x128,BYTE~ - smoke_color_6 => ~0x129,BYTE~ - smoke_color_7 => ~0x12a,BYTE~ - facing => ~0x133,BYTE~ - smoke_anim=>~0x134,SHORT~ - trail_anim_1=>~0x136,ASCII~ - trail_anim_2=>~0x13e,ASCII~ - trail_anim_3=>~0x146,ASCII~ - trail_anim_10=>~0x136,ASCII~ - trail_anim_20=>~0x13e,ASCII~ - trail_anim_30=>~0x146,ASCII~ - trail_1_seq_num=>~0x14e,ASCII~ - trail_2_seq_num=>~0x150,ASCII~ - trail_3_seq_num=>~0x152,ASCII~ - trigger_radius=>~0x204,SHORT~ - basic_aoe_radius => ~0x206,SHORT~ - trigger_wav => ~0x208,ASCII~ - trigger_wav0 => ~0x208,ASCII~ - explosion_frequency => ~0x210,SHORT~ - fragment_anim => ~0x212,SHORT~ - secondary_pro => ~0x214,SHORT~ - repetitions=>~0x216,BYTE~ - explosion_anim => ~0x217,BYTE~ - explosion_color=>~0x218,BYTE~ - target_anim=>~0x21a,SHORT~ - explosion_pro=> ~0x21a,SHORT~ - explosion_anim_vvc=>~0x21c,ASCII~ - cone_angle=>~0x224,SHORT~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=pro_fields function_prefix=PRO END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY pro_bit_fields BEGIN - show_sparkle=>~0xc,0~ - sparkle_z_coord=>~0xc,1~ - loop_travel_sound=>~0xc,2~ - loop_arrive_sound=>~0xc,3~ - sparkle_no_direct_target=>~0xc,4~ - draw_below=>~0xc,5~ - use_palette=>~0x100,0~ - enable_smoke=>~0x100,1~ - use_area_lighting=>~0x100,3~ - use_area_height=>~0x100,4~ - enable_shadow=>~0x100,5~ - enable_light_spot=>~0x100,6~ - enable_brighten=>~0x100,7~ - low_brighten=>~0x101,0~ - high_brighten=>~0x101,1~ - keep_pro_visible=>~0x200,0~ - triggered_by_inanimate=>~0x200,1~ - triggered_on_condition=>~0x200,2~ - trigger_in_delay=>~0x200,3~ - use_secondary=>~0x200,4~ - use_fragment=>~0x200,5~ - target_flag_1=>~0x200,6~ - target_flag_2=>~0x200,7~ - num_is_mage_level=>~0x201,0~ - num_is_priest_level=>~0x201,1~ - use_vvc=>~0x201,2~ - is_cone=>~0x201,3~ - go_through_walls=>~0x201,4~ - delay_explosion=>~0x201,6~ - only_one_target=>~0x201,7~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=pro_bit_fields function_prefix=PRO END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// custom edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION PRO_aoe_radius - STR_VAR arguments="" -BEGIN - LPF PRO_trigger_radius STR_VAR arguments END - LPF PRO_basic_aoe_radius STR_VAR arguments END -END - -DEFINE_PATCH_FUNCTION PRO_add_explosion_vvc - STR_VAR arguments="" -BEGIN - LPF PRO_use_vvc STR_VAR arguments=1 END - LPF PRO_explosion_anim_vvc STR_VAR arguments END -END - -DEFINE_PATCH_FUNCTION PRO_is_area BEGIN END // a dummy function used for indicating to the make() program that this is an area-effect projectile -LAF log_this STR_VAR file=auto_function_list.txt input= ~PRO_is_area - -~ END - -DEFINE_PATCH_FUNCTION PRO_target STR_VAR arguments="" BEGIN - TO_LOWER arguments - PATCH_MATCH ~%arguments%~ WITH - ally allies BEGIN - LPF PRO_target_flag_1 STR_VAR arguments=1 END - LPF PRO_target_flag_2 STR_VAR arguments=1 END - END - enemy enemies BEGIN - LPF PRO_target_flag_1 STR_VAR arguments=1 END - LPF PRO_target_flag_2 STR_VAR arguments=0 END - END - all BEGIN - LPF PRO_target_flag_1 STR_VAR arguments=0 END - LPF PRO_target_flag_2 STR_VAR arguments=0 END - END - DEFAULT - LPF warning STR_VAR warning=~"%arguments% is an invalid argument for PRO_target~ END - END -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~PRO_target - -~ END - -DEFINE_PATCH_FUNCTION PRO_spark_color STR_VAR arguments="" BEGIN - DEFINE_ASSOCIATIVE_ARRAY colmap BEGIN - black=>1 - blue=>2 - chromatic=>3 - gold=>4 - green=>5 - purple=>6 - red=>7 - white=>8 - ice=>9 - stone=>10 - magenta=>11 - orange=>12 - END - PATCH_IF VARIABLE_IS_SET ~colmap_%arguments%~ BEGIN - SET num= ~colmap_%arguments%~ - LPF PRO_spark_color_num STR_VAR arguments= ~%num%~ END - END ELSE BEGIN - LPF warning STR_VAR warning=~"%arguments% is an invalid argument for PRO_spark_color~ END - END -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~PRO_spark_color - -~ END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// builder -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION PRO_build_before BEGIN - INSERT_BYTES 0x000 0x200 - WRITE_ASCII 0x000 ~PRO V1.0~ - LPF PRO_speed STR_VAR arguments=60 END - LPF PRO_type STR_VAR arguments=2 END -END - -DEFINE_PATCH_FUNCTION PRO_postbuild BEGIN END - -DEFINE_PATCH_FUNCTION PRO_add_aoe STR_VAR filename="" BEGIN - INSERT_BYTES 0x200 0x100 -END -LAF log_this STR_VAR file=auto_function_list.txt input= ~PRO_add_aoe - -~ END - -DEFINE_PATCH_FUNCTION PRO_build_area BEGIN - LPF PRO_build_before END - LPF PRO_add_aoe END - LPF PRO_type STR_VAR arguments=3 END - LPF PRO_explosion_anim STR_VAR arguments=~-1~ END - LPF PRO_target_anim STR_VAR arguments=79 END - LPF PRO_repetitions STR_VAR arguments=1 END - LPF PRO_explosion_frequency STR_VAR arguments=100 END -END - -DEFINE_PATCH_FUNCTION PRO_build_after BEGIN END - diff --git a/iwdification/dw/sfo/filetype/lib_spl.tpa b/iwdification/dw/sfo/filetype/lib_spl.tpa deleted file mode 100644 index 52f0522..0000000 --- a/iwdification/dw/sfo/filetype/lib_spl.tpa +++ /dev/null @@ -1,1570 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_spell - INT_VAR allow_missing=0 - STR_VAR - spell="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%spell%~ - file_ext=~SPL~ - edits - editstring - allow_missing - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_spell - INT_VAR allow_missing=0 - stop_after_match=0 - STR_VAR - spell="" - edits="" - editstring="" - location="" - locbase="" - locabs="" - RET value - BEGIN - OUTER_SET value=0 - OUTER_SET SFO_RESERVED_object_index=0 - OUTER_WHILE ("%spell%" STRING_COMPARE_CASE "" && !(stop_after_match && value)) BEGIN - - LAF return_first_entry STR_VAR list="%spell%" RET this_spell=entry spell=list END - ACTION_MATCH "%this_spell%" WITH - "literal:.*" - BEGIN - OUTER_PATCH_SAVE this_spell "%this_spell%" BEGIN - REPLACE_TEXTUALLY "literal:" "" - END - END - DEFAULT - LAF get_spellcode STR_VAR input="%this_spell%" RET this_spell=value END - END - LAUNCH_ACTION_FUNCTION edit_template - INT_VAR SFO_RESERVED_object_index - STR_VAR file_list=~%this_spell%~ - file_ext=~SPL~ - edits - editstring - allow_missing - location - locbase - locabs - RET value_here=value - END - OUTER_SET SFO_RESERVED_object_index +=1 - OUTER_SET value=value || value_here - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_spell - INT_VAR allow_missing=0 - STR_VAR - spell="" - edits="" - idsname="" - editstring="" - destination="override" - location="" - locbase="" - locabs="" - RET newname - BEGIN - - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - - - ACTION_IF (!("%spell%" STRING_CONTAINS_REGEXP " ") && "%idsname%" STRING_COMPARE "") BEGIN - FAIL "You cannot use 'idsname' in install_spell unless 'spell' is a single entry, which '%spell%' isn't" - END - ACTION_IF "%idsname%" STRING_COMPARE "" BEGIN - LAF add_spell_to_ids STR_VAR idsname filename="%spell%" file_loc RET newname END - OUTER_SPRINT spell "%spell% => %newname%" - END ELSE BEGIN - OUTER_SPRINT newname "%spell%" - END - LAUNCH_ACTION_FUNCTION install_template - STR_VAR file_list=~%spell%~ - file_ext=~SPL~ - edits - editstring - allow_missing - destination - location - locbase - locabs - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching regexp -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_all_spells - STR_VAR - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION regexp_template - STR_VAR file_ext=~SPL~ - edits= ~%edits%~ - editstring= ~%editstring%~ - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_spell - INT_VAR level=1 - - STR_VAR - type="" - spell="" - idsname="" - edits="" - editstring="" - RET newname - BEGIN - ACTION_IF "%idsname%" STRING_COMPARE "" BEGIN - LAF add_spell_to_ids INT_VAR level STR_VAR idsname type filename="%spell%" file_loc RET newname=newname END - OUTER_SPRINT spell "%newname%" - END ELSE BEGIN - OUTER_SPRINT newname "%spell%" - END - ACTION_IF "%spell%" STRING_EQUAL_CASE "" BEGIN - FAIL ~make_spell needs either an IDS name ("idsname") or a file name ("spell")~ - END - - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list=~%spell%~ - file_ext=~SPL~ - edits - editstring - build_before= SPL_build - build_after = SPL_postbuild - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< spell_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -ability 0x64 4 0x68 2 0x28 -effect 0x6a 4 -1 2 0x30 ->>>>>>>> -OUTER_SPRINT ~offset_readin_lookup_2da~ ~spell_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~SPL~ -LAUNCH_ACTION_MACRO read_in_offsets - -OUTER_SPRINT $SPL_virtual_type_parent(effect) ability -OUTER_SPRINT $SPL_virtual_type_child(effect) effect -OUTER_SET $SPL_virtual_type_index("effect")=0 -OUTER_SET $lookup_SPL_ability_effect_ind_loc(0)=0x20 -OUTER_SET $lookup_SPL_ability_effect_ind_length(0)=2 -OUTER_SET $lookup_SPL_ability_effect_num_loc(0)=0x1e -OUTER_SET $lookup_SPL_ability_effect_num_length(0)=2 - - -OUTER_SPRINT has_secondaries_SPL_ability "" - - -OUTER_SPRINT $SPL_effect_secondaries_follow(ability) effect_global - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -ACTION_DEFINE_ASSOCIATIVE_ARRAY spell_fields BEGIN - name1_string => ~0x8,LONG~ - name2_string => ~0xc,LONG~ - casting_sound => ~0x10,ASCII~ - flags=>~0x18,LONG~ - spell_type_num => ~0x1c,SHORT~ - priest_type => ~0x20,SHORT~ - casting_animation => ~0x22,BYTE~ - primary => ~0x25,SHORT~ - school_code => ~0x25,SHORT~ - secondary => ~0x27,BYTE~ - level => ~0x34,LONG~ - icon => ~0x3a,ASCII~ - description1_string => ~0x50,LONG~ - description2_string => ~0x54,LONG~ - num_abils=> ~0x68,SHORT~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=spell_fields function_prefix=SPL END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY spell_ability_fields BEGIN - ability_type => ~0x0,BYTE~ - ability_icon_loc => ~0x2,SHORT~ - ability_icon => ~0x4,ASCII~ - ability_range => ~0xe,SHORT~ - ability_target => ~0xc,BYTE~ - ability_min_level =>~0x10,SHORT~ - ability_damage_type => ~0x1c,SHORT~ - ability_dicesize => ~0x16,SHORT~ - ability_charges=>~0x22,SHORT~ - ability_unknown_late => ~0x24,SHORT~ - projectile => ~0x26,SHORT~ - effect_number => ~0x1e,SHORT~ - casting_time=>~0x12,SHORT~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR offset_base=~offset_base~ lookup_table=spell_ability_fields function_prefix=SPL END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_fields BEGIN - opcode=>~0,SHORT~ - target=>~0x2,BYTE~ - power=>~0x3,BYTE~ - parameter1=>~0x4,LONG~ - parameter2=>~0x8,LONG~ - parameter2a=>~0x8,SHORT~ - parameter2b=>~0xa,SHORT~ - timing=>~0xc,BYTE~ - resist_dispel=>~0xd,BYTE~ - dispel=>~0xd,BYTE~ - duration=>~0xe,LONG~ - probability1=>~0x12,BYTE~ - probability2=>~0x13,BYTE~ - resource=>~0x14,ASCII~ - dicenum=> ~0x1c,LONG~ - dicesize=> ~0x20,LONG~ - savebonus=> ~0x28,LONG~ - mode=> ~0x2c,LONG~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=eff_fields offset_base=~offset_base~ function_prefix=SPL secondary="yes" END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY spl_bit_fields BEGIN - breaks_invisibility=>~0x19,2~ - no_LOS=>~0x19,3~ - outdoors_only=>~0x19,5~ - not_magical=>~0x19,6~ - contingency=>~0x19,7~ - not_wild_dead=>~0x19,6~ - not_wild_surge=>~0x19,7~ - not_in_combat=>~0x1a,0~ - bypass_II=>~0x1b,0~ - castable_when_silenced=>~0x1b,1~ - unusable_chaotic_priest=>~0x1e,0~ - unusable_evil_priest=>~0x1e,1~ - unusable_good_priest=>~0x1e,2~ - unusable_GEneutral_priest=>~0x1e,3~ - unusable_lawful_priest=>~0x1e,4~ - unusable_LCneutral_priest=>~0x1e,5~ - unusable_abjurer=>~0x1e,6~ - unusable_conjurer=>~0x1e,7~ - unusable_diviner=>~0x1f,0~ - unusable_enchanter=>~0x1f,1~ - unusable_illusionist=>~0x1f,2~ - unusable_invoker=>~0x1f,3~ - unusable_necromancer=>~0x1f,4~ - unusable_transmuter=>~0x1f,5~ - unusable_generalist=>~0x1f,6~ - unusable_cleric=>~0x21,6~ - unusable_druid=>~0x21,7~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=spl_bit_fields function_prefix=SPL END - - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY eff_bit_fields BEGIN - save_vs_spell => ~0x24,0~ - save_vs_spells => ~0x24,0~ - save_vs_breath => ~0x24,1~ - save_vs_death => ~0x24,2~ - save_vs_poison => ~0x24,2~ - save_vs_wands => ~0x24,3~ - save_vs_petrification => ~0x24,4~ - save_vs_polymorph => ~0x24,4~ - bypass_mirror_image => ~0x27,0~ - does_not_wake_sleeper => ~0x2d,2~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=eff_bit_fields offset_base=~offset_base~ function_prefix=SPL secondary="yes" END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get the type in the form "wizard" "innate" "priest" "special" "unknown" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_read_spell_type -RET value -BEGIN - LPF SPL_read_spell_type_num RET num=value END - PATCH_MATCH "%num%" WITH - 1 BEGIN - SPRINT value wizard - END - 2 BEGIN - SPRINT value priest - END - 4 BEGIN - SPRINT value innate - END - 0 BEGIN - SPRINT value special - END - DEFAULT - SPRINT value unknown - END -END - -DEFINE_PATCH_FUNCTION SPL_spell_type -STR_VAR arguments="" -BEGIN - TO_LOWER arguments - PATCH_MATCH "%arguments%" WITH - 1 wizard BEGIN - SET number=1 - END - 2 cleric priest BEGIN - SET number=2 - END - 4 innate BEGIN - SET number=4 - END - 0 special BEGIN - SET number=0 - END - DEFAULT - LPF warning STR_VAR warning="Spell type %arguments% is unrecognised; defaulting to 4 (innate)" END - SET number=4 - END - LPF SPL_spell_type_num STR_VAR arguments="%number%" END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set a spell's schoolname -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -DEFINE_PATCH_FUNCTION SPL_read_school - RET value -BEGIN - LPF SPL_read_school_code RET num=value END - PATCH_MATCH "%num%" WITH - 1 BEGIN - SPRINT value abjuration - END - 8 BEGIN - SPRINT value alteration - END - 2 BEGIN - SPRINT value conjuration - END - 3 BEGIN - SPRINT value divination - END - 4 BEGIN - SPRINT value enchantment - END - 5 BEGIN - SPRINT value illusion - END - 6 BEGIN - SPRINT value invocation - END - 7 BEGIN - SPRINT value necromancy - END - DEFAULT - SPRINT value generalist - END -END - - - -DEFINE_PATCH_FUNCTION SPL_school - STR_VAR arguments="" -BEGIN - TO_LOWER arguments - PATCH_MATCH "%arguments%" WITH - abjuration 1 BEGIN - SET out=1 - END - alteration 8 BEGIN - SET out=8 - END - conjuration 2 BEGIN - SET out=2 - END - divination 3 BEGIN - SET out=3 - END - enchantment 4 BEGIN - SET out=4 - END - illusion 5 BEGIN - SET out=5 - END - invocation evocation 6 BEGIN - SET out=6 - END - necromancy 7 BEGIN - SET out=7 - END - DEFAULT - SET out=9 - END - LPF SPL_school_code STR_VAR arguments="%out%" END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set a spell's school & associated details -///////////// - sets Primary, casting animation -//////////// - for wizard spells, sets exclusion flags -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_enforce_school - STR_VAR arguments="" -BEGIN - INNER_ACTION BEGIN - <<<<<<<< spell_school_data - school_name casting_animation casting_sound exclude - abjuration 12 cas_m02 transmuter - alteration 10 cas_m08 abjurer - conjuration 14 cas_m03 diviner - divination 16 cas_m04 conjurer - enchantment 11 cas_m05 invoker - illusion 13 cas_m01 necromancer - invocation 15 cas_m06 enchanter - necromancy 9 cas_m07 illusionist - >>>>>>>> - COPY - spell_school_data "%workspace%" - COUNT_2DA_COLS colcount - READ_2DA_ENTRIES_NOW spell_school_data colcount - END - FOR (i=1;i>>>>>>> - COPY - spell_school_data "%workspace%" - COUNT_2DA_COLS colcount - READ_2DA_ENTRIES_NOW spell_school_data colcount - END - FOR (i=1;i0 and not an animation -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_duration_if_variable - INT_VAR offset_secondary=0 offset_base=0 - STR_VAR arguments="" file_ext="" filename="" -BEGIN - LPF SPL_read_opcode INT_VAR offset_secondary RET opcode=value END - PATCH_MATCH "%opcode%" WITH - 215 BEGIN - - END - DEFAULT - LPF SPL_read_duration INT_VAR offset_secondary RET value=value END - PATCH_IF value>0 BEGIN - LPF SPL_duration INT_VAR offset_secondary offset_base STR_VAR arguments filename file_ext END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Find the true level at which an ability block is being applied (the first level is usually set to level=1) -///////////// -///////////// Algorithm: if ability_min_level>1, ability_true_level=ability_min_level -///////////// -///////////// Otherwise, get the spell's level and caster type & work out the lowest level at which it's castable -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_read_ability_true_level - INT_VAR offset_secondary=0 offset_base=0 - STR_VAR filename="" - RET value -BEGIN - LPF SPL_read_ability_min_level INT_VAR offset_base RET min_level=value END - PATCH_IF min_level>1 BEGIN - SET value=min_level - END ELSE BEGIN - LPF SPL_read_level RET spell_level=value END - PATCH_IF spell_level<=5 BEGIN - SET value = 2 * spell_level - 1 - END ELSE BEGIN - LPF SPL_read_spell_type RET type=value END - PATCH_IF type=2 BEGIN // priest - SET value= spell_level=6 ? 11 : 2*spell_level - END ELSE BEGIN - SET value= 2*spell_level - END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find a spell's actual name from an abbreviated one (i.e., one without the CLERIC_ or WIZARD_ -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION deabbreviate_spellname - STR_VAR input="" - RET spellname -BEGIN - TO_UPPER input - SPRINT spellname ~%input%~ - PATCH_IF VARIABLE_IS_SET ~%%spellname%%~ BEGIN - END ELSE - PATCH_IF VARIABLE_IS_SET ~%percentage%WIZARD_%spellname%%percentage%~ AND VARIABLE_IS_SET ~%percentage%CLERIC_%spellname%%percentage%~ BEGIN - PATCH_PRINT ~Spell %spellname% is ambiguous between WIZARD_%spellname% and CLERIC_%spellname%; assuming WIZARD~ - SPRINT ~spellname~ ~WIZARD_%spellname%~ - END ELSE - PATCH_IF VARIABLE_IS_SET ~%percentage%WIZARD_%spellname%%percentage%~ BEGIN - SPRINT ~spellname~ ~WIZARD_%spellname%~ - END ELSE - PATCH_IF VARIABLE_IS_SET ~%percentage%CLERIC_%spellname%%percentage%~ BEGIN - SPRINT ~spellname~ ~CLERIC_%spellname%~ - END ELSE BEGIN // assume it's a bare name - //PATCH_PRINT ~Warning: cannot identify spell %spellname%~ - END -END - -DEFINE_ACTION_FUNCTION deabbreviate_spellname - STR_VAR input="" - RET spellname -BEGIN - OUTER_PATCH "" BEGIN - LPF deabbreviate_spellname STR_VAR input RET spellname END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find a spell's code from a possibly-abbreviated name (or return the code if given it) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_spellcode STR_VAR input="" RET value -BEGIN - LPF deabbreviate_spellname STR_VAR input RET spellname=spellname END - PATCH_IF VARIABLE_IS_SET "%spellname%" BEGIN // first, see if the variable is set - SPRINT value EVALUATE_BUFFER ~%%spellname%%~ - END ELSE - PATCH_IF IDS_OF_SYMBOL (spell "%spellname%")>=0 BEGIN // then, try spell.ids - SET idscode=IDS_OF_SYMBOL (spell "%spellname%") - LPF idscode_to_spell INT_VAR idscode RET value=resref END - END ELSE BEGIN // otherwise, just return the input - SPRINT value "%input%" - END -END - -DEFINE_ACTION_FUNCTION get_spellcode STR_VAR input="" RET value -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF get_spellcode STR_VAR input RET value=value END - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find a spell's IDS code (the 4-digit code in the IDS file) from a spell name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION spell_to_idscode - STR_VAR resref="" - RET idscode -BEGIN - OUTER_INNER_PATCH_SAVE idscode "%resref%" BEGIN - REPLACE_TEXTUALLY CASE_INSENSITIVE sppr 1 - REPLACE_TEXTUALLY CASE_INSENSITIVE spwi 2 - REPLACE_TEXTUALLY CASE_INSENSITIVE spin 3 - REPLACE_TEXTUALLY CASE_INSENSITIVE spcl 4 - END -END - -DEFINE_PATCH_FUNCTION spell_to_idscode - STR_VAR resref="" - RET idscode -BEGIN - INNER_ACTION BEGIN - LAF spell_to_idscode STR_VAR resref RET idscode=idscode END - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find a spell's name from its idscode -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION idscode_to_spell - INT_VAR idscode=0 - RET resref -BEGIN - OUTER_INNER_PATCH_SAVE resref "%idscode%" BEGIN - READ_ASCII 0x0 digit (1) - PATCH_MATCH "%digit%" WITH - 1 BEGIN - SPRINT prefix sppr - END - 2 BEGIN - SPRINT prefix spwi - END - 3 BEGIN - SPRINT prefix spin - END - 4 BEGIN - SPRINT prefix spcl - END - DEFAULT - LPF warning STR_VAR warning ="idscode_to_spell called with illegal argument" END - END - - INSERT_BYTES 0x0 3 - WRITE_ASCIIE 0x0 "%prefix%" (4) - END -END - -DEFINE_PATCH_FUNCTION idscode_to_spell - INT_VAR idscode=0 - RET resref -BEGIN - INNER_ACTION BEGIN - LAF idscode_to_spell INT_VAR idscode RET resref=resref END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// make a prebuffed spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION ~build_prebuff_spell~ - INT_VAR conceal=0 - STR_VAR spell_ID="" - RET newcode fullname -BEGIN - ACTION_IF !VARIABLE_IS_SET ~%%spell_ID%_PREBUFF%~ BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF deabbreviate_spellname STR_VAR input = ~%spell_ID%~ RET spell_ID=spellname END - END - OUTER_SPRINT fullname ~%spell_ID%~ - OUTER_SPRINT ~spellcode~ EVALUATE_BUFFER ~%%spell_ID%%~ - OUTER_INNER_PATCH_SAVE ~newcode~ ~%spellcode%~ BEGIN - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPWI~ ~dw#sw~ - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPPR~ ~dw#sp~ - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPIN~ ~dw#si~ - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPCL~ ~dw#sc~ - END - ACTION_IF !FILE_EXISTS_IN_GAME ~%newcode%.spl~ BEGIN - COPY_EXISTING ~%spellcode%.spl~ ~override/%newcode%.spl~ - LPF check_ini STR_VAR ini=Conceal_Prebuff_Spell_Names RET value END - PATCH_IF (value=1 || conceal=1) BEGIN - WRITE_LONG 0x8 ~-1~ - END ELSE BEGIN - LPF check_ini STR_VAR ini=Run_Silent RET value END - PATCH_IF value=0 BEGIN - READ_STRREF 0x8 ~spellname~ - SPRINT ~addon~ @14300 - SPRINT ~newname~ ~%spellname%~^ ~%addon%~ - SAY_EVALUATED 0x8 ~%newname%~ - END - END - PATCH_MATCH "%spell_ID%" WITH - CLERIC_BLADE_BARRIER CLERIC_GLOBE_OF_BLADES CLERIC_AURA_OF_FLAMING_DEATH WIZARD_FIRE_SHIELD_RED WIZARD_FIRE_SHIELD_BLUE NPC_BLADE_BARRIER - BEGIN - LPF delete_entry STR_VAR type=effect arguments="opcode=174" file_ext=SPL END - END - DEFAULT - LPF delete_entry STR_VAR type=effect arguments="opcode is_in [139 174 215 141 50]" file_ext=SPL END - END - // BUT_ONLY - should happen anyway - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// make a zero-casting-time spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION ~build_instant_spell~ - STR_VAR spell_ID="" - RET newcode spellcode fullname -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF deabbreviate_spellname STR_VAR input = ~%spell_ID%~ RET spell_ID=spellname END - END - OUTER_SPRINT fullname ~%spell_ID%~ - OUTER_SPRINT ~spellcode~ EVALUATE_BUFFER ~%%spell_ID%%~ - OUTER_INNER_PATCH_SAVE ~newcode~ ~%spellcode%~ BEGIN - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPWI~ ~dw#0w~ - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPPR~ ~dw#0p~ - REPLACE_TEXTUALLY CASE_INSENSITIVE ~SPIN~ ~dw#0i~ - END - ACTION_IF !FILE_EXISTS_IN_GAME ~%newcode%.spl~ BEGIN - LAF clone_spell STR_VAR spell= ~%spellcode%=>%newcode%~ editstring=~patch_ability_inline=>"casting_time=>0"~ END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// build a basic spell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_build BEGIN - ///// basic structure - DELETE_BYTES 0x0 BUFFER_LENGTH - INSERT_BYTES 0x0 0x72 - - // sig - WRITE_ASCII 0x0 ~SPL V1 ~ - // name - WRITE_LONG 0x8 ~-1~ - WRITE_LONG 0xc ~-1~ - // spell type - WRITE_SHORT 0x1c 2 - // primary - WRITE_SHORT 0x25 9 - // level - WRITE_LONG 0x34 1 - // unknown - WRITE_SHORT 0x38 1 - // description - WRITE_LONG 0x50 ~-1~ - WRITE_LONG 0x54 ~-1~ - //offsets - WRITE_LONG 0x64 0x72 - WRITE_LONG 0x6a 0x72 -END - -DEFINE_PATCH_FUNCTION SPL_postbuild -BEGIN -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// delete a list of opcodes -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION SPL_delete_opcodes - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET entry=entry arguments=list END - LPF delete_entry STR_VAR type=effect arguments="opcode=%entry%" file_ext=SPL END - LPF SPL_delete_opcodes STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("SPL_delete_opcodes") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// append the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_append_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=append_string_nospace loc=0x50 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("SPL_append_description") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// substitute the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_substitute_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=substitute_string loc=0x50 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("SPL_substitute_description") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_set_description - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x50 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("SPL_set_description") "" - - -DEFINE_PATCH_FUNCTION SPL_say_description - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0x50 say= ~%arguments%~ END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get the name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION SPL_name - RET value -BEGIN - READ_STRREF 0x8 value -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get the description -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_description - RET value -BEGIN - READ_STRREF 0x50 value -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_set_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0x8 arguments= ~%arguments%~ END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("SPL_set_name") "" - - -DEFINE_PATCH_FUNCTION SPL_say_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0x8 say= ~%arguments%~ END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// add a basic ability -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION SPL_add_basic_ability - STR_VAR arguments="" -BEGIN - PATCH_MATCH ~%arguments%~ WITH - spell SPELL BEGIN - SET locnum=2 - END - DEFAULT - SET locnum=4 - END - PATCH_CLEAR_ARRAY ability_data - PATCH_DEFINE_ASSOCIATIVE_ARRAY ability_data BEGIN // these are based on the +hp BGT spells - type=>ability - ability_type=> 1 //type:melee - ability_icon_loc=>~%locnum%~ //location:innate - ability_target=>1 // target: living actor - ability_damage_type=> 1// damage type:piercing - ability_dicesize=> 6 // dice size: 6 - ability_charges => 1 - projectile =>1 - END - LPF add_entry STR_VAR arguments=ability_data file_ext=SPL END -END -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Take the first effect block of the spell and remove all subsequent blocks -///////////// Specify a function f:N->N, iter_func (put in "arguments"). Until iter_func returns -1, clone the whole -///////////// effect block, setting the level to iter_func of whatever you set it to previously, or 1 at start -///////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION level_based_blocks // no SPL prefix: "level_based_blocks isn't allowed to evaluate its argument, so it has to be called out specially - STR_VAR arguments="" - filename="" -BEGIN - SPRINT iter_func "%arguments%" // just for readability - // get the first ability as a template - SET ab_off=LONG_AT 0x64 - READ_ASCII ab_off ab_template (0x28) - // find the size of the whole effect block, and get it as a template - SET block_size= SHORT_AT (0x1e + ab_off) - SET eff_ind = SHORT_AT (0x20 + ab_off) - SET eff_off = LONG_AT 0x6a - READ_ASCII (eff_off + 0x30 * eff_ind) eff_template (0x30 * block_size) - // count how many (non-baseline) effects there are - SPRINT entry_type ability - SPRINT file_ext SPL - LPM get_offset_array - SET effcount=0 - PHP_EACH offset_array AS int=>offset BEGIN - SET effcount += SHORT_AT (0x1e + offset) - END - // wipe all extended effects - DELETE_BYTES (eff_off + 0x30 * eff_ind) (0x30 * effcount) - // wipe all abilities - SET ab_num=SHORT_AT 0x68 - DELETE_BYTES ab_off (0x28 * ab_num) - SET ab_num=0 - SET eff_off=0x72 - WRITE_SHORT 0x68 0 // we don't have to do this, but for debugging it's convenient if the file is wellformed at this stage - WRITE_SHORT 0x6a eff_off - // ok, at this point we're initialised, with an ability-free spell and our templates - - SET level=1 - SET sanity_check=0 // guard against poorly designed iter_func - WHILE level>=0 & sanity_check < 100 BEGIN - // add the ability - SET offset_base=ab_off + 0x28 * ab_num - SET ab_num +=1 - INSERT_BYTES offset_base 0x28 - SET eff_off += 0x28 - WRITE_ASCIIE offset_base "%ab_template%" - // set its parameters - WRITE_SHORT (offset_base + 0x10) level - WRITE_SHORT (offset_base + 0x20) eff_ind - // add the effect block - SET offset_base=eff_off + 0x30*eff_ind - INSERT_BYTES offset_base (0x30 * block_size) - WRITE_ASCIIE offset_base "%eff_template%" - SET eff_ind += block_size - SET sanity_check +=1 - LPF evaluate_expression STR_VAR filename file_ext=SPL expression="%iter_func%" arguments="%level%" RET level=value END - END - - // iter_func has terminated, update ab_num and eff_off - - WRITE_SHORT 0x68 ab_num - WRITE_LONG 0x6a eff_off - - // report if the sanity check fired - - PATCH_IF sanity_check=100 BEGIN - LPF warning STR_VAR warning="You called level_based_blocks on an iterator %iter_func% that didn't terminate (spell %filename%)" END - END -END - -////////////////////////////////////////////////////////////////////////// -//// Add spell to ids file (without copying it over), finding it a slot -//// starting (optionally) from at least to_try; return its new name and code, -//// and the next available slot. -//// -//// If it's already there in the right category and level, -//// just return the existing result (and log a warning). -//// -//// If it's there but in the wrong category and/or level, delete it first -////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION add_spell_to_ids - INT_VAR to_try=0 - level="-1" - type=0 - STR_VAR typename="unspecified" - filename="" - idsname="" - file_loc="" - RET newname - newcode - to_try_next - -BEGIN - LAF find_spell_type STR_VAR type typename filename idsname file_loc RET type END - ACTION_IF type<=2 BEGIN - LAF find_spell_level INT_VAR level STR_VAR filename file_loc RET level END - END - OUTER_SET current_num=IDS_OF_SYMBOL (spell "%idsname%") - ACTION_IF current_num<0 BEGIN - LAF find_spell_ids_slot INT_VAR to_try type level STR_VAR idsname RET newcode=slot to_try_next=to_try_next END - LAF idscode_to_spell INT_VAR idscode=newcode RET newname=resref END - APPEND spell.ids "%newcode% %idsname%" - CLEAR_IDS_MAP - END ELSE BEGIN - OUTER_SET current_type = current_num / 1000 - OUTER_SET current_level = (current_num - 1000 * current_type) / 100 - ACTION_IF (type=current_type) && ((level=current_level)||type>2) BEGIN - OUTER_SET to_try_next=current_num - OUTER_SET newcode=current_num - LAF idscode_to_spell STR_VAR idscode="%newcode%" RET newname=resref END - LAF warning STR_VAR warning="No need to add spell %idsname% to spell.ids as it is already there at the right level" END - END ELSE BEGIN - COPY_EXISTING "spell.ids" override - REPLACE_TEXTUALLY "%current_num% +%idsname%" "%current_num% %idsname%_OLD" - BUT_ONLY - LAF warning STR_VAR warning="Deprecating older version of %idsname%" END - CLEAR_IDS_MAP - LAF add_spell_to_ids INT_VAR to_try level STR_VAR typename filename idsname file_loc RET newname newcode to_try_next END - END - END -END - -////////////////////////////////////////////////////////// -//// Find a slot for a new spell in spell.ids -//// -//// Takes as input the desired spell name, the type of -//// spell to add (1=cleric, 2=wizard, 3=innate, 4=class), the level, and -//// optionally the lowest-value code worth trying first. -//// -//// Returns the slot along with the lowest-value code worth trying next -//// for a spell of the same type. (Relevant for multiple insertions, e.g. -//// in IWD-in-BG2.) -//// -//// We read the spell codes into the array $idscode -//// (so that $idscode(IDS_ENTRY) returns the code of that entry) -//// and the set of in-use idscodes into $ids_in_use -//// (so that $ids_in_use(code) is set iff code is already assigned). -//// The macro read_in_spells_in_use will load both automatically; the -//// function calls it if it is not already defined, but it can be -//// loaded in in advance for quicker use -/////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION find_spell_ids_slot - INT_VAR to_try=0 - type=3 - level=0 - STR_VAR idsname="" - RET slot to_try_next -BEGIN - // read in spell data if not already known - ACTION_IF !VARIABLE_IS_SET spells_in_use_read_in BEGIN - LAM read_in_spells_in_use - END - OUTER_SPRINT temp $idscode(WIZARD_MAGIC_MISSILE) - // does it exist already? If so, we're done - ACTION_IF VARIABLE_IS_SET $idscode( "%idsname%") BEGIN - OUTER_SET slot=$idscode("%idsname%") - OUTER_SET to_try_next=to_try - END ELSE BEGIN - // what is the minimum code? - ACTION_MATCH "%type%" WITH - 1 2 BEGIN - OUTER_SET minimum=1000 * type + 100 * level + 1 - END - DEFAULT - OUTER_SET minimum=1000 * type + 101 - END - ACTION_IF minimum>to_try BEGIN // is the current code too low? If so, increase to the minimum and try again - LAF find_spell_ids_slot INT_VAR type level to_try=minimum STR_VAR idsname RET slot=slot to_try_next=to_try_next END - END ELSE BEGIN - // try the current slot. If it's occupied, add one and try again - ACTION_IF VARIABLE_IS_SET $ids_in_use( "%to_try%") BEGIN - LAF find_spell_ids_slot INT_VAR type level to_try=to_try + 1 STR_VAR idsname RET slot=slot to_try_next=to_try_next END - END ELSE BEGIN - // slot appears empty, but make sure there's no undocumented spell (or spell resources) in it! - LAF idscode_to_spell INT_VAR idscode=to_try RET resref END - ACTION_IF (FILE_EXISTS_IN_GAME "%resref%.spl" || FILE_EXISTS_IN_GAME "%resref%B.BAM") BEGIN - LAF find_spell_ids_slot INT_VAR type level to_try=to_try + 1 STR_VAR idsname RET slot=slot to_try_next=to_try_next END - END ELSE BEGIN - // if we get this far, slot is good - OUTER_SET slot=to_try - OUTER_SET to_try_next=slot+1 - END - END - END - END -END - -////////////////////////////////////////////////////////////////////////////// -/// Find the type of a spell (optional arguments are typename, idsname, filename, file_loc) -/// -/// First, check typename, which can be priest (or cleric), wizard, innate, or class -/// Failing that, check spell.ids. -/// Failing that, look at the first part of the idsname. If it's -/// WIZARD, CLERIC, DRUID, AVENGER, PALADIN [etc] we're done, If it's INNATE, likewise. -/// Failing that, look at the spell name. If it's SPPR, SPWI, SPIN or SPCL, we're -/// done. -/// Failing *that*, look inside the spell. -/// Failing *that*, guess "innate"! -////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION find_spell_type - INT_VAR type=0 - STR_VAR idsname="" - filename="" - file_loc="" - typename="unspecified" - RET type -BEGIN - ACTION_IF type=0 BEGIN - ACTION_TO_LOWER typename - ACTION_MATCH "%typename%" WITH - cleric priest BEGIN - OUTER_SET type=1 - END - wizard BEGIN - OUTER_SET type=2 - END - innate BEGIN - OUTER_SET type=3 - END - class BEGIN - OUTER_SET type=4 - END - DEFAULT - OUTER_SET type=0 - END - END - ACTION_IF type=0 & "%idsname%" STRING_COMPARE "" BEGIN - OUTER_SET ids_num=IDS_OF_SYMBOL (spell "%idsname%") - ACTION_IF (ids_num>=0) BEGIN - OUTER_SET type = ids_num / 1000 - END - END - ACTION_IF type=0 & "%idsname%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list="%idsname%" separator="_" RET entry=entry END - ACTION_TO_UPPER entry - ACTION_MATCH "%entry%" WITH - "CLERIC" BEGIN - OUTER_SET type=1 - END - "WIZARD" BEGIN - OUTER_SET type=2 - END - "INNATE" BEGIN - OUTER_SET type=3 - END - "PALADIN" "BARD" "DRUID" "RANGER" "ROGUE" "BEASTMASTER" "ARCHER" "SHAPESHIFTER" "AVENGER" "TOTEMIC_DRUID" - "TALOS" "LATHANDER" "HELM" "INQUIS" "BLACKGUARD" "SUN" "BLADE" "KENSAI" "BERSERKER" "BARBARIAN" BEGIN - OUTER_SET type=4 - END - DEFAULT - OUTER_SET type=0 - END - END - ACTION_IF type=0 & "%filename%" STRING_COMPARE "" BEGIN - OUTER_INNER_PATCH "%filename%___" BEGIN - READ_ASCII 0x0 check (4) - END - ACTION_TO_UPPER check - ACTION_MATCH "%check%" WITH - "SPPR" BEGIN - OUTER_SET type=1 - END - "SPWI" BEGIN - OUTER_SET type=2 - END - "SPIN" BEGIN - OUTER_SET type=3 - END - "SPCL" BEGIN - OUTER_SET type=4 - END - DEFAULT END - END - ACTION_IF type=0 & FILE_EXISTS "%file_loc%/%filename%.spl" BEGIN - COPY - "%file_loc%/%filename%.spl" "%workspace%" - READ_SHORT 0x1c type_in_file - BUT_ONLY - ACTION_MATCH "%type_in_file%" WITH - 1 BEGIN // wizard - OUTER_SET type=2 - END - 2 BEGIN // priest - OUTER_SET type=1 - END - DEFAULT // innate - OUTER_SET type=3 - END - END - ACTION_IF type=0 BEGIN - OUTER_SET type=3 - END -END - -////////////////////////////////////////////////////////////////////////////// -/// Find the level of a spell (optional arguments are level, filename, file_loc) -////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION find_spell_level - INT_VAR level="-1" - STR_VAR filename="" - file_loc="" - RET level -BEGIN - // if we already know the level, just return it - ACTION_IF level<0 BEGIN - ACTION_IF FILE_EXISTS "%file_loc%/%filename%.spl" BEGIN // if the file exists, get it from there - COPY - "%file_loc%/%filename%.spl" "%workspace%" - READ_SHORT 0x34 level - BUT_ONLY - END ELSE BEGIN // otherwise guess "1" - OUTER_SET level=1 - END - END -END - - -////////////////////////////////////////////////////////////////////////////// -/// Return the spell.ids name of spell.spl, or "%spell%" if there isn't one -////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION return_spellname - STR_VAR resref="" - RET spellname -BEGIN - ACTION_IF STRING_LENGTH "%resref%" =7 BEGIN // if not, it's not in standard form - OUTER_PATCH "%resref%" BEGIN - READ_ASCII 0x0 check (4) - PATCH_MATCH "%check%" WITH - SPWI SPCL SPPR SPIN BEGIN - READ_ASCII 0x4 check2 (3) - PATCH_IF IS_AN_INT "%check2%" BEGIN - LPF spell_to_idscode STR_VAR resref RET idscode END - LOOKUP_IDS_SYMBOL_OF_INT spellname spell "%idscode%" - PATCH_IF IS_AN_INT spellname BEGIN - SPRINT spellname "%resref%" - END - END ELSE BEGIN - SPRINT spellname "%resref%" - END - END - DEFAULT - SPRINT spellname "%resref%" - END - END - END ELSE BEGIN - OUTER_SPRINT spellname "%resref%" - END -END - -DEFINE_PATCH_FUNCTION return_spellname - STR_VAR resref="" - RET spellname -BEGIN - INNER_ACTION BEGIN - LAF return_spellname STR_VAR resref RET spellname END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// scroll maker [not fully implemented; doesn't do icon] -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_scroll_of_spell - INT_VAR lowest_number=1 - STR_VAR spell="" - prefix="dw#scr" - scroll_loc="override" - RET scrollname -BEGIN - ACTION_IF !FILE_EXISTS_IN_GAME "%prefix%%lowest_number%.itm" BEGIN - OUTER_SPRINT scrollname "%prefix%%lowest_number%" - // find the spellname - don't assume we've read it in, this spell might well be new - OUTER_SET idscode=IDS_OF_SYMBOL (spell "%spell%") - ACTION_IF idscode>=0 BEGIN - LAF idscode_to_spell STR_VAR idscode RET resref END - END ELSE BEGIN // not in spell.ids, assume a name - OUTER_SPRINT resref "%spell%" - END - // install scroll - COPY_EXISTING "scrl1d.itm" "%scroll_loc%/%scrollname%.itm" // this is Clairvoyance, which is in BG1, BG2, IWD - // get some data from the spell - COPY_EXISTING "%resref%.spl" override - LPF SPL_read_description1_string RET desc=value END - LPF SPL_read_name1_string RET name=value END - READ_LONG 0x64 offset_base - LPF SPL_read_ability_target STR_VAR offset_base RET target=value END - BUT_ONLY - // edit scroll - ACTION_CLEAR_ARRAY patch_data - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - name2_string=>"%name%" - description2_string=>"%desc%" - patch_effect_inline=>"resource=>%resref%" - patch_effect_inline'=>"match=>opcode=146 ability_target=>%target%" - END - LAF edit_item STR_VAR item="%scrollname%" location="%scroll_loc%" edits=patch_data END - ACTION_IF target=4 BEGIN - LAF edit_item STR_VAR item="%scrollname%" location="%scroll_loc%" editstring="patch_effect_inline=>~match=>opcode=146 opcode=>148~" END - END - END ELSE BEGIN - OUTER_SET lowest_number +=1 - LAF make_scroll_of_spell INT_VAR lowest_number STR_VAR spell prefix RET scrollname END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// sort spell.ids into order -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION sort_spell_ids BEGIN - - COPY_EXISTING spell.ids override - COUNT_2DA_ROWS 2 rowcount - FOR (i=0;i=0 BEGIN - PATCH_PRINT "hiding SPWI%i%" - SPRINT $hidden("SPWI%i%") "" - END - END - BUT_ONLY - - - // get spells - - COPY_EXISTING_REGEXP GLOB "SPWI[1-9][0-9]+.spl" override - SPRINT filename "%SOURCE_RES%" - TO_UPPER filename - PATCH_IF !VARIABLE_IS_SET $hidden("%filename%") BEGIN - LPF SPL_read_school RET school=value END - READ_LONG 0x34 level - PATCH_IF VARIABLE_IS_SET $spell_list("%level%" "%school%") BEGIN - SPRINT temp $spell_list("%level%" "%school%" ) - SPRINT $spell_list("%level%" "%school%" ) "%temp% %filename%" - END ELSE BEGIN - SPRINT $spell_list("%level%" "%school%" ) "%filename%" - END - READ_STRREF 0x8 name - INNER_ACTION BEGIN - LAF return_spellname STR_VAR resref="%filename%" RET idsname=spellname END - END - SPRINT $spell_details("%filename%") "%name% (%idsname%)" - END - BUT_ONLY - - // format and output list - OUTER_SPRINT file "wizard_spells_by_level.txt" - LAF log_this STR_VAR file input="WIZARD SPELLS BY SCHOOL AND LEVEL" END - OUTER_FOR (level=1;level<10;level+=1) BEGIN - LAF log_this STR_VAR file input="Level %level%" END - ACTION_FOR_EACH school IN abjuration alteration conjuration divination enchantment illusion invocation necromancy generalist BEGIN - LAF log_this STR_VAR file input="%school%" END - ACTION_IF VARIABLE_IS_SET $spell_list("%level%" "%school%") BEGIN - OUTER_SPRINT list $spell_list("%level%" "%school%") - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - OUTER_SPRINT input $spell_details("%entry%") - LAF log_this STR_VAR file input END - END - END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// collect spell icons -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION collect_spell_icons - STR_VAR location="" - locbase="" - locabs="" - spell="" - resref="" -BEGIN - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - CLEAR_IDS_MAP - LAF get_spellcode STR_VAR input="%spell%" RET spell_resref=value END - ACTION_FOR_EACH letter IN a b c BEGIN - ACTION_IF FILE_EXISTS "%file_loc%/%resref%%letter%.bam" BEGIN - COPY "%file_loc%/%resref%%letter%.bam" "override/%spell_resref%%letter%.bam" - END - END - ACTION_CLEAR_ARRAY patch_data - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - icon=>"%spell_resref%c" - patch_ability_inline=>"ability_icon=>%spell_resref%b" - END - LAF edit_spell STR_VAR spell="%spell_resref%" edits=patch_data END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// make a repeating innate spell -///////////// input is either old=>new list (if overwrite=0) or spell list (if overwrite=1) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_innate_repeating_spell - INT_VAR cooldown=0 - overwrite=0 - allow_missing=0 - STR_VAR arguments="" -BEGIN - ACTION_IF "%arguments%" STRING_COMPARE "" BEGIN - ACTION_IF overwrite BEGIN - LAF return_first_entry STR_VAR list="%arguments%" RET template=entry arguments=list END - END ELSE BEGIN - LAF return_first_pair STR_VAR list="%arguments%" RET template=key idsname=value arguments=list END - END - LAF get_spellcode STR_VAR input="%template%" RET oldname=value END - ACTION_IF (FILE_EXISTS_IN_GAME "%oldname%.spl" || !allow_missing) BEGIN - ACTION_IF overwrite BEGIN - OUTER_SPRINT newname "%oldname%" - END ELSE BEGIN - LAF add_spell_to_ids INT_VAR level=1 type=3 STR_VAR idsname RET newname END - END - ACTION_CLEAR_ARRAY patch_data - OUTER_SET timing = cooldown >0 ? 4 : 1 - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - level=>1 - spell_type=>innate - patch_ability_inline=>"ability_icon_loc=>4" - add_effect_inline'=>"opcode=>171 target=>1 timing=>%timing% duration=>%cooldown% resource=>%newname%" - add_effect_inline=>"opcode=>172 target=>1 timing=>1 resource=>%newname%" - END - ACTION_IF overwrite BEGIN - LAF edit_spell STR_VAR spell="%newname%" edits=patch_data END - END ELSE BEGIN - LAF clone_spell STR_VAR spell="%oldname%=>%newname%" edits=patch_data END - END - END - LAF make_innate_repeating_spell INT_VAR cooldown overwrite allow_missing STR_VAR arguments END - - END - -END - - diff --git a/iwdification/dw/sfo/filetype/lib_sto.tpa b/iwdification/dw/sfo/filetype/lib_sto.tpa deleted file mode 100644 index 4ac37b9..0000000 --- a/iwdification/dw/sfo/filetype/lib_sto.tpa +++ /dev/null @@ -1,421 +0,0 @@ - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_store - INT_VAR allow_missing=0 - tv=0 - STR_VAR - store="" - edits="" - editstring="" - allow_missing="no" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list=~%store%~ - file_ext=~STO~ - edits - editstring - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_store - INT_VAR allow_missing=0 - tv=0 - STR_VAR - store="" - edits="" - editstring="" - allow_missing=0 - external_file="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list=~%store%~ - file_ext=~STO~ - edits editstring allow_missing tv external_file - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_store - STR_VAR - store="" - edits="" - editstring="" - external_file="" - location="" - locbase="" - BEGIN - LAUNCH_ACTION_FUNCTION install_template - STR_VAR file_list= ~%store%~ - file_ext=~STO~ - edits editstring allow_missing tv external_file location locbase - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching regexp -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_all_stores - STR_VAR - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION regexp_template - STR_VAR file_ext=~STO~ - edits= ~%edits%~ - editstring= ~%editstring%~ - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< sto_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -item_purchased 0x2c 4 0x30 4 0x4 -item 0x34 4 0x38 4 0x1c -drink 0x4c 4 0x50 4 0x14 -cure 0x70 4 0x74 4 0xc ->>>>>>>> - -OUTER_SPRINT ~offset_readin_lookup_2da~ ~sto_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~STO~ -LAUNCH_ACTION_MACRO read_in_offsets - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY sto_fields_absolute BEGIN - store_type_code=>"0x8,LONG" - name_string=>"0xc,LONG" - sell_markup=>"0x14,LONG" - buy_markup=>"0x18,LONG" - depreciation_rate=>"0x1c,BYTE" - will_depreciate=>"0x1d,BYTE" - stealing_failure_rate=>"0x20,SHORT" - space=>"0x22,SHORT" - lore=>"0x3c,LONG" - identify_cost=>"0x40,LONG" - rumors=>~0x44,ASCII~ - rumors_donation=>"0x54,ASCII" - price_peasant=>"0x60,LONG" - price_merchant=>"0x64,LONG" - price_noble=>"0x68,LONG" - price_royal=>"0x6c,LONG" -END - -LAF build_simple_data_field_editors STR_VAR lookup_table=sto_fields_absolute function_prefix=STO END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY sto_fields BEGIN - item_resource => ~0x0,ASCII~ - item_charges_1 => ~0xa,SHORT~ - item_charges_2 => ~0xc,SHORT~ - item_charges_3 => ~0xe,SHORT~ - item_num_in_stock => ~0x14,LONG~ - items_infinite => ~0x18,LONG~ - cure_resource => ~0x0,ASCII~ - item_bought=>"0x0,LONG" - cure=>"0x0,ASCII" - cure_price=>"0x8,LONG" - drinkname_string=>"0x4,LONG" - special_rumor=>"0x0,ASCII" - drink_price=>"0xc,LONG" - intoxication=>"0x10,LONG" -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=sto_fields offset_base=~offset_base~ function_prefix=STO END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY sto_bit_fields_absolute BEGIN - room_peasant=>"0x5c,0" - room_merchant=>"0x5c,1" - room_noble=>"0x5c,2" - room_royal=>"0x5c,3" - can_buy=>"0x10,0" - can_sell=>"0x10,1" - can_identify=>"0x10,2" - can_steal=>"0x10,3" - can_buy_cures=>"0x10,4" - can_donate=>"0x10,5" - can_buy_drinks=>"0x10,6" - quality_bit_0=>"0x10,1" - quality_bit_1=>"0x10,2" - fence=>"0x11,4" -END - -LAF build_flag_data_field_editors STR_VAR offset_base=offset_base lookup_table=sto_bit_fields_absolute function_prefix=STO END - - -ACTION_DEFINE_ASSOCIATIVE_ARRAY sto_bit_fields BEGIN - state_identified => ~0x10,0~ - state_unstealable => ~0x10,1~ - state_stolen => ~0x10,2~ -END - -LAF build_flag_data_field_editors STR_VAR offset_base=offset_base lookup_table=sto_bit_fields function_prefix=STO END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// More memorable type names -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION STO_store_type - INT_VAR arguments=0 -BEGIN - TO_LOWER arguments - PATCH_MATCH "%arguments%" WITH - 2 inn BEGIN - SET num=2 - END - 1 tavern BEGIN - SET num=1 - END - 3 temple BEGIN - SET num=3 - END - 4 container_iwd BEGIN - SET num=4 - END - 5 container BEGIN - SET num=5 - END - DEFAULT - SET num=0 - END - LPF STO_store_type_code INT_VAR arguments=num END -END - - -DEFINE_PATCH_FUNCTION STO_read_store_type - RET value -BEGIN - LPF STO_read_store_type_code RET num=value END - PATCH_MATCH "%num%" WITH - 2 BEGIN - SPRINT value inn - END - 1 BEGIN - SPRINT value tavern - END - 3 BEGIN - SPRINT value temple - END - 4 BEGIN - SPRINT value container_iwd - END - 5 BEGIN - SPRINT value container - END - 0 BEGIN - SPRINT value store - END - DEFAULT - SPRINT value unknown - END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Item-removal hook -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION STO_remove_items - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE "" BEGIN - LPF return_first_entry STR_VAR list= ~%arguments%~ RET arguments=list item=entry END - REMOVE_STORE_ITEM ~%item%~ - LPF STO_remove_items STR_VAR arguments END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("STO_remove_items") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// General adder syntax: list of item or item(n) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION add_items_to_store - STR_VAR store="" - items="" - item="" - location="" - tv="no" -BEGIN - ACTION_IF "%store%" STRING_EQUAL "" BEGIN - LAF warning STR_VAR warning="Store unspecified in add_items_to_store" END - END - LAF join STR_VAR list1="%items%" list2="%item%" RET items=list END - ACTION_IF "%items%" STRING_EQUAL "" BEGIN - LAF warning STR_VAR warning="Tried to add empty list of items to store(s) %store%" END - END - LAF return_first_entry STR_VAR list= ~%store%~ RET this_store=entry store=list END - ACTION_IF (~%tv%~ STRING_EQUAL_CASE ~yes~ || ~%tv%~ STRING_EQUAL_CASE 1) BEGIN - OUTER_SPRINT ~this_store~ ~%tutu_var%%this_store%~ - END - COPY_EXISTING ~%this_store%.sto~ ~override~ - SPRINT ~items_here~ ~%items%~ - WHILE ~%items_here%~ STRING_COMPARE_CASE "" BEGIN - SPRINT item_num 1 - LPF return_first_entry STR_VAR list= ~%items_here%~ RET items_here=list entry=entry END - LPF return_function_and_argument STR_VAR input= ~%entry%~ RET to_add=function item_data=argument END - PATCH_IF ~%item_data%~ STRING_COMPARE_CASE ~~ BEGIN - SPRINT item_num ~%item_data%~ - END - SPRINT input ~ADD_STORE_ITEM %to_add% %location% #1 #0 #0 "IDENTIFIED" #%item_num%~ - LPF patch_reinclude_this STR_VAR input END - END - BUT_ONLY - ACTION_IF "%store%" STRING_COMPARE "" BEGIN - LAF add_items_to_store STR_VAR store items location tv END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the names -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION STO_set_name - STR_VAR arguments="" -BEGIN - LPF patch_text_entry STR_VAR function=set_string loc=0xc arguments= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION STO_say_name - STR_VAR arguments="" -BEGIN - LPF say_this_here INT_VAR offset=0xc say= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION STO_set_drink - STR_VAR arguments="" - offset_base="0" -BEGIN - LPF patch_text_entry INT_VAR loc=0x4+offset_base STR_VAR function=set_string arguments= ~%arguments%~ END -END - -DEFINE_PATCH_FUNCTION STO_say_drink - STR_VAR arguments="" - offset_base="0" -BEGIN - LPF say_this_here INT_VAR offset=0x4+offset_base say= ~%arguments%~ END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the type -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION STO_store_type - STR_VAR arguments="" -BEGIN - TO_LOWER arguments - PATCH_MATCH "%arguments%" WITH - store BEGIN - SET num=0 - END - tavern BEGIN - SET num=1 - END - inn BEGIN - SET num=2 - END - temple BEGIN - SET num=3 - END - container BEGIN - SET num=5 - END - DEFAULT - LPF warning STR_VAR warning="Store type %arguments% is unrecognised; defaulting to 0" END - SET num=0 - END - LPF STO_type_code STR_VAR arguments="%num%" END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set buy and sell -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION STO_will_buy - STR_VAR arguments="" -BEGIN - PATCH_MATCH "%arguments%" WITH - all "ALL" any "ANY" BEGIN - SPRINT arguments "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" - END - DEFAULT - END - // record the items to add - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%arguments%" RET entry=entry arguments=list END - SET $items_bought("%entry%")=1 - END - // collect the existing items - SPRINT entry_type item_purchased - SPRINT file_ext STO - LPM get_offset_array - PHP_EACH offset_array AS int=>offset BEGIN - READ_LONG offset item - SET $items_bought("%item%")=0 - END - // add the items - PHP_EACH items_bought AS item=>val BEGIN - PATCH_IF val BEGIN - LPF apply_patches STR_VAR file_ext=STO editstring="add_entry_inline=>~type=>item_purchased item_bought=>%item%~" END - END - END -END - -DEFINE_PATCH_FUNCTION STO_will_not_buy - STR_VAR arguments="" -BEGIN - PATCH_MATCH "%arguments%" WITH - all "ALL" any "ANY" BEGIN - LPF apply_patches STR_VAR file_ext=STO editstring="delete_entries_inline=>~type=>item_purchased~" END - END - DEFAULT - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%arguments%" RET entry=entry arguments=list END - LPF apply_patches STR_VAR file_ext=STO editstring="delete_entries_inline=>~type=>item_purchased match=>item_bought check=>%entry%~" END - END - END -END diff --git a/iwdification/dw/sfo/filetype/lib_vef.tpa b/iwdification/dw/sfo/filetype/lib_vef.tpa deleted file mode 100644 index 1e035d5..0000000 --- a/iwdification/dw/sfo/filetype/lib_vef.tpa +++ /dev/null @@ -1,145 +0,0 @@ - ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_vef - STR_VAR - vef="" - edits="" - editstring="" - allow_missing="no" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%vef%~ - file_ext=~VEF~ - edits - editstring - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_vef - STR_VAR - vef="" - edits="" - editstring="" - allow_missing="no" - external_file="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%vef%~ - file_ext=~STO~ - edits editstring allow_missing external_file - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install_vef - STR_VAR - vef="" - edits="" - editstring="" - allow_missing="no" - external_file="" - location="" - locbase="" - BEGIN - LAUNCH_ACTION_FUNCTION install_template - STR_VAR file_list= ~%vef%~ - file_ext=~VEF~ - edits editstring allow_missing external_file location locbase - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_vef - - STR_VAR - type="" - vef="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list=~%vef%~ - file_ext=~VEF~ - edits - editstring - build_before= VEF_build - build_after = VEF_postbuild - END -END - - - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< vef_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -component 0x8 0x4 0xc 0x4 0xe0 -component2 0x10 0x4 0x14 0x4 0xe0 ->>>>>>>> - -OUTER_SPRINT ~offset_readin_lookup_2da~ ~vef_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~VEF~ -LAUNCH_ACTION_MACRO read_in_offsets - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY vef_fields BEGIN - ticks_until_start=>~0x0,LONG~ - ticks_until_loop=>~0x8,LONG~ - resource_type=>~0xc,LONG~ - resource=>~0x10,ASCII~ - continuous=>~0x18,LONG~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=vef_fields offset_base=~offset_base~ function_prefix=VEF END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Builders -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION VEF_build -BEGIN - DELETE_BYTES 0x0 BUFFER_LENGTH - INSERT_BYTES 0x0 0x18 - WRITE_ASCII 0x0 "VEF V1.0" - WRITE_LONG 0x8 0x18 - WRITE_LONG 0x10 0x18 -END - -DEFINE_PATCH_FUNCTION VEF_postbuild -BEGIN -END diff --git a/iwdification/dw/sfo/filetype/lib_vvc.tpa b/iwdification/dw/sfo/filetype/lib_vvc.tpa deleted file mode 100644 index 9484d86..0000000 --- a/iwdification/dw/sfo/filetype/lib_vvc.tpa +++ /dev/null @@ -1,162 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_vvc - STR_VAR - vvc="" - edits="" - editstring="" - allow_missing=0 - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%vvc%~ - file_ext=~VVC~ - edits - editstring - allow_missing - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_vvc - STR_VAR - vvc="" - edits="" - editstring="" - allow_missing=0 - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%vvc%~ - file_ext=~VVC~ - edits - editstring - allow_missing - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_vvc - STR_VAR - vvc="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list= ~%vvc%~ - file_ext=~VVC~ - edits= ~%edits%~ - editstring= ~%editstring%~ - build_before= VVC_build - build_after = VVC_postbuild - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets [none] -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -ACTION_DEFINE_ASSOCIATIVE_ARRAY vvc_fields BEGIN - anim=>~0x8,ASCII~ - anim0=>~0x8,ASCII~ - x_pos=>~0x28,LONG~ - y_pos=>~0x2c,LONG~ - orientation=>~0x30,LONG~ - frame_rate=>~0x34,LONG~ - num_orient=>~0x38,LONG~ - palette=>~0x44,ASCII~ - z_pos=>~0x4c,LONG~ - ctr_x=>~0x50,LONG~ - ctr_y=>~0x54,LONG~ - brightness=>~0x58,LONG~ - num_frames=>~0x5c,LONG~ - seq_start=>~0x68,LONG~ - seq_middle=>~0x6c,LONG~ - seq_current=>~0x70,LONG~ - continuous=>~0x74,LONG~ - wav_start=>~0x78,ASCII~ - wav_middle=>~0x80,ASCII~ - wav_start0=>~0x78,ASCII~ - wav_middle0=>~0x80,ASCII~ - alpha=>~0x88,ASCII~ - seq_end=>~0x90,LONG~ - wav_end=>~0x94,ASCII~ - wav_end0=>~0x94,ASCII~ -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=vvc_fields function_prefix=VVC END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY vvc_bit_fields BEGIN - transparent=>~0x18,0~ - translucent=>~0x18,1~ - translucent_shadow=>~0x18,2~ - blended=>~0x18,3~ - mirror_x=>~0x18,4~ - mirror_y=>~0x18,5~ - clip=>~0x18,6~ - copy_from_back=>~0x18,7~ - clear_fill=>~0x19,0~ - 3d_blend=>~0x19,1~ - ignore_wall=>~0x19,2~ - ignore_timestop=>~0x19,3~ - ignore_dream=>~0x19,4~ - 2d_blend=>~0x19,5~ - not_light_source=>~0x1a,0~ - light_source=>~0x1a,1~ - internal_brightness=>~0x1a,2~ - timestopped=>~0x1a,3~ - sepia=>~0x1b,2~ - looping=>~0x20,0~ - special_lighting=>~0x20,1~ - modify_for_height=>~0x20,2~ - draw_animation=>~0x20,3~ - custom_palette=>~0x20,4~ - purgeable=>~0x20,5~ - ignore_wallgroups=>~0x20,6~ - mid_level_brighten=>~0x20,7~ - high_level_brighten=>~0x21,0~ - orbit_target=>~0x40,0~ - relative_to_target=>~0x40,1~ - ignore_orientation=>~0x40,3~ -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=vvc_bit_fields function_prefix=VVC END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// builders -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION VVC_build -BEGIN - INSERT_BYTES 0x0 0x1ec - WRITE_ASCII 0x000 ~VVC V1.0~ - LPF VVC_draw_animation STR_VAR arguments=1 END - LPF VVC_frame_rate STR_VAR arguments=15 END - LPF VVC_num_orient STR_VAR arguments=1 END - LPF VVC_num_frames STR_VAR arguments=~-1~ END -END -DEFINE_PATCH_FUNCTION VVC_postbuild BEGIN END diff --git a/iwdification/dw/sfo/filetype/lib_wmp.tpa b/iwdification/dw/sfo/filetype/lib_wmp.tpa deleted file mode 100644 index 5d612d4..0000000 --- a/iwdification/dw/sfo/filetype/lib_wmp.tpa +++ /dev/null @@ -1,668 +0,0 @@ -// this all assumes ONE ENTRY - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_worldmap - STR_VAR - worldmap="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION clone_template - STR_VAR file_list= ~%worldmap%~ - file_ext=~WMP~ - edits - editstring - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_worldmap - STR_VAR - worldmap="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION edit_template - STR_VAR file_list= ~%worldmap%~ - file_ext=~WMP~ - edits - editstring - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// overarching make -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_worldmap - STR_VAR - worldmap="" - edits="" - editstring="" - BEGIN - LAUNCH_ACTION_FUNCTION make_template - STR_VAR file_list= ~%worldmap%~ - file_ext=~WMP~ - edits - editstring - build_before=WMP_build - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -<<<<<<<< area_offsets.2da -TYPE offset_loc offset_length entrynum_loc entrynum_length entry_length -area 0x34 4 0x30 4 0xf0 -link 0x38 4 0x3c 4 0xd8 ->>>>>>>> -OUTER_SPRINT ~offset_readin_lookup_2da~ ~area_offsets~ -OUTER_SPRINT ~offset_readin_file_ext~ ~WMP~ -LAUNCH_ACTION_MACRO read_in_offsets - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// simple data-field edits -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_DEFINE_ASSOCIATIVE_ARRAY wmp_fields_absolute BEGIN - width=>"0x18,LONG" - height=>"0x1c,LONG" - icons=>"0x40,ASCII" - global_name_string=>"0x24,LONG" - map=>"0x10,ASCII" -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=wmp_fields_absolute function_prefix=WMP END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY wmp_fields BEGIN - short_name=>"0x0,ASCII" - resource=>"0x8,ASCII" - long_name=>"0x10,ASCII20" - sequence=>"0x34,LONG" - x=>"0x38,LONG" - y=>"0x3c,LONG" - name_string=>"0x40,LONG" - tooltip_string=>"0x44,LONG" - loadscreen=>"0x48,ASCII" - area_link_ind_north=>"0x50,LONG" - area_link_ind_west=>"0x58,LONG" - area_link_ind_south=>"0x60,LONG" - area_link_ind_east=>"0x68,LONG" - area_link_num_north=>"0x54,LONG" - area_link_num_west=>"0x5c,LONG" - area_link_num_south=>"0x64,LONG" - area_link_num_east=>"0x6c,LONG" - link_dest_ind=>"0x0,LONG" - entrance=>"0x4,ASCII20" - link_travtime_div_four=>"0x24,LONG" - random_area_1=>"0x2c,ASCII" - random_area_2=>"0x34,ASCII" - random_area_3=>"0x3c,ASCII" - random_area_4=>"0x44,ASCII" - random_area_5=>"0x4c,ASCII" - random_prob=>"0x54,LONG" - link_entryloc_code=>"0x28,LONG" -END - -LAUNCH_ACTION_FUNCTION build_simple_data_field_editors STR_VAR lookup_table=wmp_fields offset_base=~offset_base~ function_prefix=WMP END - -ACTION_DEFINE_ASSOCIATIVE_ARRAY wmp_bit_fields BEGIN - visible=>"0x30,0" - visible_from_adjacent=>"0x30,1" - reachable=>"0x30,2" - visited=>"0x30,3" -END - -LAF build_flag_data_field_editors STR_VAR lookup_table=wmp_bit_fields offset_base=~offset_base~ function_prefix=WMP END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set both name and tooltip to a strref -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_both_labels - STR_VAR arguments="" - offset_base="" -BEGIN - LPF WMP_name_string STR_VAR offset_base arguments END - LPF WMP_tooltip_string STR_VAR offset_base arguments END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set both names and resource to string -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_quick_resource - STR_VAR arguments="" - offset_base="" -BEGIN - LPF WMP_short_name STR_VAR offset_base arguments END - LPF WMP_long_name STR_VAR offset_base arguments END - LPF WMP_resource STR_VAR offset_base arguments END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the travel time -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_travel_time - STR_VAR arguments="" - offset_base="" -BEGIN - SET arguments = arguments / 4 - LPF WMP_link_travtime_div_four STR_VAR arguments offset_base END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set the default arrival direction -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_to_dir - STR_VAR arguments="" - offset_base="" -BEGIN - TO_UPPER arguments - PATCH_MATCH "%arguments%" WITH - N NORTH BEGIN SET dir_code=1 END - S SOUTH BEGIN SET dir_code=4 END - E EAST BEGIN SET dir_code=2 END - W WEST BEGIN SET dir_code=8 END - DEFAULT SET dir_code=0 END - LPF WMP_link_entryloc_code STR_VAR arguments="%dir_code%" offset_base END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find name of an area by number -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_name_of_area - INT_VAR arguments=0 - RET value -BEGIN - GET_OFFSET_ARRAY area_arr 0x34 4 0x30 4 0 0 0xf0 - SET arr_off = $area_arr("%arguments%") - READ_ASCII arr_off value -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find number of an area by name -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_index_of_area - INT_VAR arguments="" - RET value -BEGIN - SET value="-1" - GET_OFFSET_ARRAY area_arr 0x34 4 0x30 4 0 0 0xf0 - PHP_EACH area_arr AS int=>offset_base BEGIN - LPF WMP_read_short_name STR_VAR offset_base RET name=value END - PATCH_IF "%name%" STRING_EQUAL_CASE "%arguments%" BEGIN - SET value=int - END - END - PATCH_IF value < 0 BEGIN // maybe we need to look at the longname instead - PHP_EACH area_arr AS int=>offset_base BEGIN - LPF WMP_read_long_name STR_VAR offset_base RET name=value END - PATCH_IF "%name%" STRING_EQUAL_CASE "%arguments%" BEGIN - SET value=int - END - END - END - PATCH_IF value < 0 BEGIN // maybe we need to look at the longname instead - LPF warning STR_VAR warning="Cannot find area index for area name %arguments%" END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// update link indices for areas on the assumption that the link "deleted" has been deleted -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_update_for_link_deletion - INT_VAR deleted=0 -BEGIN - GET_OFFSET_ARRAY area_arr 0x34 4 0x30 4 0 0 0xf0 - PHP_EACH area_arr AS int=>offset_base BEGIN - PATCH_FOR_EACH dir IN north south east west BEGIN - LPF "WMP_read_area_link_ind_%dir%" STR_VAR offset_base RET ind=value END - LPF "WMP_read_area_link_num_%dir%" STR_VAR offset_base RET num=value END - LPF WMP_link_deletion_update_helper INT_VAR ind num deleted RET ind=ind num=num END - LPF "WMP_area_link_ind_%dir%" STR_VAR offset_base arguments="%ind%" END - LPF "WMP_area_link_num_%dir%" STR_VAR offset_base arguments="%num%" END - END - END -END - -DEFINE_PATCH_FUNCTION WMP_link_deletion_update_helper - INT_VAR ind=0 - num=0 - deleted=0 - RET ind num -BEGIN - PATCH_IF (ind <= deleted && deleted < ind+num) BEGIN - SET num = num - 1 - END - PATCH_IF (deleted < ind) BEGIN - SET ind = ind - 1 - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Create space for a link in the list at index new_ind -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_space_for_new_link - INT_VAR new_ind=0 - area_ind=0 - STR_VAR area_dir="" -BEGIN - GET_OFFSET_ARRAY area_arr 0x34 4 0x30 4 0 0 0xf0 - PHP_EACH area_arr AS int=>offset_base BEGIN - PATCH_FOR_EACH dir IN north south east west BEGIN - LPF "WMP_read_area_link_ind_%dir%" STR_VAR offset_base RET ind=value END - PATCH_IF new_indind BEGIN // if it's strictly greater, leave it alone - END ELSE BEGIN - // if it's the exit group we're actually adding this to, leave it alone - PATCH_IF !("%dir%" STRING_EQUAL_CASE "%area_dir%" & int=area_ind) BEGIN - // if it's of zero size, leave it where it is; otherwise, increment it - LPF "WMP_read_area_link_num_%dir%" STR_VAR offset_base RET num=value END - PATCH_IF num>0 BEGIN - SET ind += 1 - END - END - END - LPF "WMP_area_link_ind_%dir%" STR_VAR offset_base arguments="%ind%" END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Delete a list of links -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_delete_link - STR_VAR arguments="" -BEGIN - PATCH_IF "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%arguments%" RET deleted=entry arguments=list END - // physically delete the bytes - SPRINT entry_type link - LPM get_offset_array - PHP_EACH offset_array AS ind=>offset BEGIN - PATCH_IF ind=deleted BEGIN - SET delete_at=offset - END - END - DELETE_BYTES delete_at 0xd8 - // update the number of links - WRITE_LONG 0x3c ((LONG_AT 0x3c) - 1) - // update the area data - LPF WMP_update_for_link_deletion INT_VAR deleted END - // update remaining deletions - LPF WMP_deletion_helper INT_VAR deleted STR_VAR to_delete="%arguments%" already_deleted=deleted RET arguments=to_delete END - // recurse - LPF WMP_delete_link STR_VAR arguments END - END -END - -DEFINE_PATCH_FUNCTION WMP_deletion_helper // updates deletion index to allow for deletions already carried out - INT_VAR deleted=0 - STR_VAR to_delete="" - RET to_delete -BEGIN - SPRINT list "%to_delete%" - SPRINT to_delete "" - WHILE "%list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list RET entry=entry list=list END - PATCH_IF entry>deleted BEGIN - SET entry = entry - 1 - END - SPRINT to_delete "%to_delete% %entry%" - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Delete all links -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_delete_all_links -BEGIN - READ_LONG 0x3c linknum - WHILE linknum>0 BEGIN - LPF WMP_delete_link INT_VAR arguments=0 END - SET linknum=linknum - 1 - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Get a list of links between 2 areas (identified by name) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_find_link_between - STR_VAR arguments="" - RET value -BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET from=key to=value END - LPF WMP_index_of_area STR_VAR arguments="%from%" RET from_code=value END - LPF WMP_index_of_area STR_VAR arguments="%to%" RET to_code=value END - LPF WMP_find_links_from INT_VAR arguments=from_code RET link_list=value END - SPRINT file_ext WMP - SPRINT value "" - SPRINT entry_type link - LPM get_offset_array - WHILE "%link_list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%link_list%" RET link_list=list link=entry END - READ_SHORT $offset_array("%link%") dest - PATCH_IF dest=to_code BEGIN - LPF push STR_VAR head="%link%" tail="%value%" RET value=list END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Delete the link(s) between 2 areas (identified by name) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_delete_link_between - STR_VAR arguments="" -BEGIN - LPF WMP_find_link_between STR_VAR arguments RET value=value END - LPF delete_link STR_VAR arguments="%value%" END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Edit the link(s) between 2 areas (identified by name) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_edit_link_between - STR_VAR arguments="" - filename="" - RET value -BEGIN - SPRINT patch "" - SPRINT from "" - SPRINT to "" - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET key=key value=value arguments=list END - PATCH_MATCH "%key%" WITH - from BEGIN - SPRINT from "%value%" - END - to BEGIN - SPRINT to "%value%" - END - DEFAULT - SPRINT patch "%key% => %value% %patch%" - END - END - PATCH_IF "%from%" STRING_COMPARE "" && "%to%" STRING_COMPARE "" BEGIN - LPF WMP_find_link_between STR_VAR arguments="%from%=>%to%" RET linklist=value END - SPRINT entry_type link - SPRINT file_ext WMP - LPM get_offset_array - WHILE "%linklist%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%linklist%" RET link=entry linklist=list END - SET offset_base=$offset_array("%link%") - LPF apply_patches_inline STR_VAR offset_base filename file_ext=WMP arguments="%patch%" END - END - END ELSE BEGIN - LPF warning STR_VAR warning="Could not find from and to commands to edit link" END - END - SET value=1 - -END -OUTER_SPRINT $SFO_do_not_parse_arguments("WMP_edit_link_between") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Find all links to the area with the given index -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_find_links_to - INT_VAR arguments=0 - RET value -BEGIN - SPRINT value "" - SPRINT entry_type link - SPRINT file_ext WMP - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF WMP_read_link_dest_ind STR_VAR offset_base RET this_ind=value END - PATCH_IF this_ind=arguments BEGIN - SPRINT value "%value% %int%" - END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Find all links from the area with the given index -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_find_links_from - INT_VAR arguments=0 - RET value -BEGIN - SPRINT entry_type area - SPRINT file_ext WMP - LPM get_offset_array - SET offset_base=$offset_array("%arguments%") - SPRINT value "" - PATCH_FOR_EACH dir IN north south east west BEGIN - LPF "WMP_read_area_link_ind_%dir%" STR_VAR offset_base RET ind=value END - LPF "WMP_read_area_link_num_%dir%" STR_VAR offset_base RET num=value END - FOR (i=0;i %value%" - END - END - PATCH_IF (!VARIABLE_IS_SET from_code | !VARIABLE_IS_SET to_code | !VARIABLE_IS_SET dir_from) BEGIN - LPF warning STR_VAR warning="Cannot insert area link: source or destination or direction of travel unspecified" END - END ELSE BEGIN - // insert link - LPF WMP_insert_link_by_codes INT_VAR area_ind=from_code STR_VAR area_dir="%dir_from%" RET offset_base=insert_offset END - // write destination - LPF WMP_link_dest_ind STR_VAR offset_base arguments="%to_code%" END - // patch - LPF apply_patches_inline STR_VAR filename file_ext=WMP editstring offset_base END - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("WMP_insert_link") "" - - -DEFINE_PATCH_FUNCTION WMP_insert_link_by_codes - INT_VAR area_ind=0 - STR_VAR area_dir="" - RET insert_offset -BEGIN - // find link data - SPRINT entry_type area - SPRINT file_ext WMP - LPM get_offset_array - SET offset_base = $offset_array("%area_ind%") - LPF "WMP_read_area_link_ind_%area_dir%" STR_VAR offset_base RET ind=value END - LPF "WMP_read_area_link_num_%area_dir%" STR_VAR offset_base RET num=value END - // update offsets - SET new_num=num + 1 - LPF "WMP_area_link_num_%area_dir%" STR_VAR offset_base arguments="%new_num%" END - LPF WMP_space_for_new_link INT_VAR new_ind=ind area_ind STR_VAR area_dir END - - // physically insert space - READ_LONG 0x38 offset_base - SET link_num=ind+num - SET insert_offset=offset_base + 0xd8 * link_num - INSERT_BYTES insert_offset 0xd8 - WRITE_LONG 0x3c ((LONG_AT 0x3c) + 1) -END -OUTER_SPRINT $SFO_do_not_parse_arguments("WMP_insert_link_by_codes") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Delete an area (identified via short name) or list of areas -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_delete_area - STR_VAR arguments="" -BEGIN - PATCH_IF "%arguments%" STRING_COMPARE "" BEGIN - SPRINT area_name "%arguments%" - LPF return_first_entry STR_VAR list="%arguments%" RET area_name=entry arguments=list END - // find area code - LPF WMP_index_of_area STR_VAR arguments="%area_name%" RET area_code=value END - // delete links to and from the area - LPF WMP_find_links_from INT_VAR arguments="%area_code%" RET exits_from=value END - LPF WMP_delete_link STR_VAR arguments="%exits_from%" END - LPF WMP_find_links_to INT_VAR arguments="%area_code%" RET exits_to=value END - LPF WMP_delete_link STR_VAR arguments="%exits_to%" END - // update remaining links - SPRINT entry_type link - SPRINT file_ext WMP - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF WMP_read_link_dest_ind STR_VAR offset_base RET dest=value END - PATCH_IF (dest>area_code) BEGIN - SET dest = dest - 1 - LPF WMP_link_dest_ind STR_VAR offset_base arguments="%dest%" END - END - END - // physically delete the area - - SPRINT entry_type area - LPM get_offset_array - SET delete_at=$offset_array("%area_code%") - DELETE_BYTES delete_at 0xf0 - - // update offsets - - WRITE_LONG 0x30 ((LONG_AT 0x30) - 1) - - WRITE_LONG 0x38 ((LONG_AT 0x38) - 0xf0) - LPF WMP_delete_area STR_VAR arguments END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Area adder (wrapper for add_entry) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION insert_area - STR_VAR filename="" - arguments="" -BEGIN - LPF add_entry_inline INT_VAR at_end=1 STR_VAR arguments="apply_patches=>%arguments% type=>area" filename file_ext=WMP END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Builder (for completeness, really) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION WMP_build BEGIN - INSERT_BYTES 0x0 0xc8 - WRITE_ASCII 0x0 "WMP V1.0" - WRITE_LONG 0x8 1 - WRITE_LONG 0xc 0x10 - WRITE_LONG 0x34 0xc8 - WRITE_LONG 0x38 0xc8 -END - diff --git a/iwdification/dw/sfo/general/lib_evaluate.tpa b/iwdification/dw/sfo/general/lib_evaluate.tpa deleted file mode 100644 index ffc72e1..0000000 --- a/iwdification/dw/sfo/general/lib_evaluate.tpa +++ /dev/null @@ -1,805 +0,0 @@ -/////////////////////////////////////////////////////////////////////// -/// Functions needed for evaluating SFO expressions -//////////////////////////////////////////////////////////////////////// - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// wrapper to handle the FP_func nomenclature -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION apply_standard_function - INT_VAR offset_secondary=0 - entry_index=0 - STR_VAR offset_base="" - func="" - arguments="" - filename="" - file_ext="" -BEGIN - TO_UPPER file_ext - PATCH_TRY - PATCH_SILENT - LPF ~%file_ext%_%func%~ INT_VAR offset_secondary entry_index STR_VAR offset_base arguments filename file_ext END - PATCH_VERBOSE - WITH - ~Failure("Unknown function: %file_ext%_%func%")~ - BEGIN - LPF ~%func%~ INT_VAR offset_secondary entry_index STR_VAR offset_base arguments filename file_ext END - END - DEFAULT - PATCH_PRINT "ERROR: %ERROR_MESSAGE% in apply_standard_function: inputs were func=%func%, arguments=%arguments%" - PATCH_RERAISE - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// wrapper to handle the FP_func nomenclature -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION check_standard_function - INT_VAR offset_secondary=0 - func_or_string=0 - entry_index=0 - STR_VAR offset_base="" - func="" - arguments="" - parameter="" - filename="" - file_ext="" - RET value -BEGIN - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT "check_standard_function called with offset_secondary=%offset_secondary%, offset_base=%offset_base%, file prefix=%file_ext%, func=%func%, args=%arguments%" - END - TO_UPPER file_ext - PATCH_TRY - PATCH_SILENT - LPF ~%file_ext%_read_%func%~ INT_VAR offset_secondary entry_index STR_VAR offset_base arguments parameter filename file_ext RET value=value END - PATCH_VERBOSE - WITH - ~Failure("Unknown function: %file_ext%_read_%func%")~ - BEGIN - PATCH_TRY - PATCH_SILENT - LPF ~%file_ext%_%func%~ INT_VAR offset_secondary entry_index STR_VAR offset_base arguments parameter filename file_ext RET value=value END - PATCH_VERBOSE - WITH - ~Failure("Unknown function: %file_ext%_%func%")~ - BEGIN - PATCH_TRY - PATCH_SILENT - LPF ~%func%~ INT_VAR offset_secondary entry_index STR_VAR offset_base arguments filename file_ext parameter RET value=value END - PATCH_VERBOSE - WITH - ~Failure("Unknown function: %func%")~ - BEGIN - PATCH_IF func_or_string BEGIN - PATCH_IF "%func%" STRING_EQUAL_CASE "null" BEGIN - SPRINT value "" - END ELSE - PATCH_IF VARIABLE_IS_SET "SFO_RESERVED_var_%func%" BEGIN - SPRINT value EVALUATE_BUFFER "%SFO_RESERVED_var_%func%%" - END ELSE - PATCH_IF "%func%" STRING_EQUAL "no_change" BEGIN - SPRINT value no_change - END ELSE - PATCH_IF VARIABLE_IS_SET "SFO_RESERVED_%func%" BEGIN - SPRINT value EVALUATE_BUFFER "%SFO_RESERVED_%func%%" - END ELSE - PATCH_IF VARIABLE_IS_SET "%func%" BEGIN - SPRINT value EVALUATE_BUFFER "%%func%%" - END ELSE BEGIN - SPRINT value "%func%" - END - END ELSE BEGIN - PATCH_PRINT "%ERROR_MESSAGE%" - PATCH_RERAISE - END - END - DEFAULT - LPF warning STR_VAR warning= ~Failure %ERROR_MESSAGE% in check_standard_function: inputs were func=%func%, arguments=%arguments%~ END - PATCH_RERAISE - END - - END - DEFAULT - LPF warning STR_VAR warning= ~Failure %ERROR_MESSAGE% in check_standard_function: inputs were func=%func%, arguments=%arguments%~ END - PATCH_RERAISE - END - END - DEFAULT - LPF warning STR_VAR warning= ~Failure %ERROR_MESSAGE% in check_standard_function: inputs were func=%func%, arguments=%arguments%~ END - PATCH_RERAISE - END - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT "Returning value %value%" - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Parse the argument of an expression -//// -//// Here we build a parser in WEIDU, itself being parsed by an OCAML parser! -//// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION evaluate_expression - INT_VAR offset_base=0 - offset_secondary=0 - entry_index=0 - integer=0 - boolean=0 - list_type=0 - subterm=0 - STR_VAR arguments="" - expression="" - filename="" - file_ext="" - RET value -BEGIN - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT "Attempting to evaluate %expression%..." - END - LPF strip_spaces_from_string STR_VAR string="%expression%" RET expression=string END - PATCH_IF IS_AN_INT expression BEGIN // if it's just a number, don't waste time parsing - SET value=expression - END ELSE - PATCH_IF "%expression%" STRING_EQUAL_CASE "null" BEGIN - SPRINT value "null" - END ELSE - PATCH_IF "%expression%" STRING_EQUAL_CASE "this" BEGIN - SPRINT value "%arguments%" - END ELSE - PATCH_IF !("%expression%" STRING_MATCHES_REGEXP "[A-Za-z0-9#!_]*$") BEGIN // if it's an ordinary string, don't waste time parsing - LPF check_standard_function INT_VAR offset_secondary entry_index func_or_string=1 STR_VAR arguments offset_base func="%expression%" filename file_ext RET value=value END - END ELSE BEGIN - INNER_PATCH_SAVE expression "%expression%" BEGIN // make sure we can use list-management techniques - REPLACE_TEXTUALLY " *( *" " ( " - REPLACE_TEXTUALLY " *) *" " ) " - REPLACE_TEXTUALLY " *{ *" " { " - REPLACE_TEXTUALLY " *} *" " } " - REPLACE_TEXTUALLY " *!= *" " = " - REPLACE_TEXTUALLY " *>= *" " >= " - REPLACE_TEXTUALLY " *<= *" " <= " - END - SET in_is_major=0 - // function application takes a little care - "in" needs to be evaluated before brackets (consider " 7 in (this+1)*2" ) but only if it has major scope - PATCH_IF !"%expression%" STRING_CONTAINS_REGEXP " in " BEGIN - LPF has_major_scope STR_VAR list="%expression%" operator="in" RET in_is_major=value left=left right=right END - END - PATCH_IF in_is_major BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%left%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments="%val1%" expression="%right%" filename file_ext RET value=value END - END ELSE BEGIN - PATCH_MATCH "%expression%" WITH - - // check if it's literal - - " *{ *literal:[^}]*} *" " *literal:.*" BEGIN - SPRINT value "%expression%" - END - - // after that, brackets have widest scope - - ".*(.*" BEGIN - LPF extract_bounded_part STR_VAR left_bound="(" right_bound=")" string="%expression%" RET left=left middle=middle right=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%middle%" filename file_ext RET middle_val=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%left% %middle_val% %right%" filename file_ext RET value=value END - END - - - // control flow - - "if.* then .*else .*" BEGIN - LPF extract_bounded_part STR_VAR left_bound="if" right_bound="then" string="%expression%" RET condition=middle rest=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%condition%" filename file_ext RET condition_val=value END - LPF extract_bounded_part STR_VAR left_bound="then" right_bound="else" string="then %rest%" RET if_true=middle if_false=right END - PATCH_IF condition_val BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%if_true%" filename file_ext RET value=value END - END ELSE BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%if_false%" filename file_ext RET value=value END - END - END - - "\[.*->.*\]" BEGIN - INNER_PATCH_SAVE list "%expression%" BEGIN - DELETE_BYTES 0x0 1 - REPLACE_TEXTUALLY "\]$" "" - END - SET done=0 - WHILE "%list%" STRING_COMPARE "" && !done BEGIN - LPF return_first_pair STR_VAR list arrow="->" RET cond=key result=value list=list END - PATCH_IF !"%cond%" STRING_MATCHES_REGEXP " *default *$" BEGIN - SET done=1 - END ELSE BEGIN - // if it doesn't contain "this", it should be compared to the argument (i.e., gain a tacit, 'this='/'this is' out front) - PATCH_IF "%cond%" STRING_CONTAINS_REGEXP "this" BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%cond%" filename file_ext RET val1=value END - PATCH_IF "%val1%" STRING_EQUAL_CASE "%arguments%" BEGIN - SET done=1 - END - END ELSE BEGIN // if it does, it should be compared to 1 - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%cond%" filename file_ext RET val1=value END - PATCH_IF val1=1 BEGIN - SET done=1 - END - END - END - PATCH_IF done BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%result%" filename file_ext RET value=value END - END - END - PATCH_IF !done BEGIN - PATCH_FAIL "No condition matched in function %expression%" - END - END - - // lists - are returned unchanged - - "\[[^]]*\]" BEGIN - SPRINT value "%expression%" - END - - // propositional logic - - ".* and .*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="and" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=val1 AND val2 - END - ".* or .*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="or" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=val1 OR val2 - END - ".*not .*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="not" RET arg=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index boolean=1 subterm=1 STR_VAR arguments expression="%arg%" filename file_ext RET val1=value END - SET value=NOT val1 - END - - // string comparison - - ".* is .*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="is" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - - PATCH_IF !("%val1%" STRING_CONTAINS_REGEXP "literal:") BEGIN - INNER_PATCH_SAVE val1 "%val1%" BEGIN - REPLACE_TEXTUALLY "" "" - END - END - PATCH_IF !("%val2%" STRING_CONTAINS_REGEXP "literal:") BEGIN - INNER_PATCH_SAVE val2 "%val2%" BEGIN - REPLACE_TEXTUALLY "" "" - END - END - - SET value= ("%val2%" STRING_EQUAL_CASE "%val1%") - - - END - - // string concatendation - - ".* join_with .*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="join_with" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SPRINT value "%val1%%val2%" - END - - // arithmetic comparison: =, !=, >, >=, <, <= - // given the number of errors I keep making, we'll let "=" accept strings too. So much for strong typing. - - // quick sanity check - - ".*=>.*" BEGIN - PATCH_FAIL "'%expression%' contains =>, which is never legal in an SFO expression" - END - - ".*=.*" BEGIN - LPF return_first_entry STR_VAR list="%expression%" separator="=" RET arg1=entry arg2=list END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - PATCH_IF (IS_AN_INT val1) && (IS_AN_INT val2) BEGIN - SET value=(val1 = val2) - END ELSE BEGIN - SET value=("%val1%" STRING_EQUAL_CASE "%val2%") - END - - END - ".*!=.*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter="!=" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=(val1 != val2) // if this reminds you of the proof of the Soundness Theorem, go to the head of the class - END - ".*>.*" BEGIN - LPF return_first_entry STR_VAR list="%expression%" separator=">" RET arg1=entry arg2=list END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=(val1>val2) - END - ".*>=.*" BEGIN - LPF split_from_left STR_VAR string="%expression%" splitter=">=" RET arg1=left arg2=right END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=(val1>=val2) - END - ".*<.*" BEGIN - LPF return_first_entry STR_VAR list="%expression%" separator="<" RET arg1=entry arg2=list END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg1%" filename file_ext RET val1=value END - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index integer=1 subterm=1 STR_VAR arguments expression="%arg2%" filename file_ext RET val2=value END - SET value=(val1val2?val1:val2 - END - min BEGIN - SET value=val10 BEGIN // if it isn't, we're done. - PATCH_IF "%right%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%right%" RET entry=entry right=list END - SPRINT left "%left% %entry%" - PATCH_MATCH "%entry%" WITH - sum plus prod times max min div BEGIN - SET depth +=1 - END - neg iter BEGIN - END - DEFAULT - SET depth = depth - 1 - END - LPF polish_parser INT_VAR depth STR_VAR left right RET left=left right=right END - END ELSE BEGIN - PATCH_FAIL ~"%left% %right%" is not a correctly formed argument pair (i.e., you've messed up the syntax of something containing this string)~ - END - END -END - -DEFINE_ACTION_FUNCTION polish_parser - INT_VAR depth=1 - STR_VAR left="" right="" to_parse="" - RET left right -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF polish_parser INT_VAR depth STR_VAR left right to_parse RET left=left right=right END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// See if "operator" in a space-separated list "list" has major scope, i.e. appears outside parentheses. If so, return the two parts -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION has_major_scope - STR_VAR list="" - operator="" - RET value left right -BEGIN - SET depth=0 - SET value=0 - SPRINT left "" - SPRINT right "%list%" - WHILE "%right%" STRING_COMPARE "" && value=0 BEGIN - LPF return_first_entry STR_VAR list="%right%" RET entry=entry right=list END - PATCH_MATCH "%entry%" WITH - "(" "{" BEGIN - SET depth+=1 - SPRINT left "%left% %entry%" - END - ")" "}" BEGIN - SET depth = depth - 1 - SPRINT left "%left% %entry%" - END - "%operator%" BEGIN - PATCH_IF depth=0 BEGIN - SET value=1 - END ELSE BEGIN - SPRINT left "%left% %operator%" - END - END - DEFAULT - SPRINT left "%left% %entry%" - END - END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Take a space-separated list containing a left-bounder (e.g. "("), find the index of the associated right-bounder, and return the expression -///// as three strings -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION extract_bounded_part - STR_VAR left_bound="" - right_bound="" - string="" - RET left middle right -BEGIN - TO_LOWER left_bound - TO_LOWER right_bound - SPRINT left "" - SPRINT middle "" - SPRINT right "" - SPRINT list "%string%" - // find first left_bound - SET found_left=0 - WHILE !found_left BEGIN - LPF return_first_entry STR_VAR list RET entry=entry list=list END - PATCH_IF "%entry%" STRING_EQUAL_CASE "%left_bound%" BEGIN - SET found_left=1 - END ELSE BEGIN - SPRINT left "%left% %entry%" - END - END - SET depth=1 - SET found_right=0 - WHILE !found_right BEGIN - PATCH_IF "%list%" STRING_EQUAL "" BEGIN - PATCH_FAIL "'%left_bound%' in %string% lacks matching '%right_bound%'" - END - LPF return_first_entry STR_VAR list RET entry=entry list=list END - PATCH_MATCH "%entry%" WITH - "%left_bound%" BEGIN - SPRINT middle "%middle% %entry%" - SET depth +=1 - END - "%right_bound%" BEGIN - PATCH_IF depth=1 BEGIN - SET found_right=1 - END ELSE BEGIN - SPRINT middle "%middle% %entry%" - SET depth = depth - 1 - END - END - DEFAULT - SPRINT middle "%middle% %entry%" - END - END - SPRINT right "%list%" - PATCH_IF "%middle%" STRING_EQUAL_CASE "" BEGIN - SPRINT middle null - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Is expression Boolean (1 or 0)? If not, fail -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION fail_unless_boolean - STR_VAR expression="" value="" -BEGIN - SET failed=0 - PATCH_IF !(IS_AN_INT value) BEGIN - PATCH_IF "%value%" STRING_COMPARE no_change BEGIN SET failed=1 END - END - PATCH_IF !(value=1 || value=0) BEGIN - PATCH_IF "%value%" STRING_COMPARE no_change BEGIN SET failed=1 END - END - PATCH_IF failed BEGIN - PATCH_IF "%expression%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "%value% is not a Boolean (0 or 1), but one was expected" - END ELSE BEGIN - PATCH_FAIL "%expression% evaluates to %value%, which is not an Boolean (0 or 1), but one is expected." - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Is expression an integer? If not, fail -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION fail_unless_int - STR_VAR expression="" value="" -BEGIN - PATCH_IF !(IS_AN_INT value) BEGIN - PATCH_IF "%value%" STRING_COMPARE no_change BEGIN - PATCH_IF "%expression%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "%value% is not an integer, but one was expected" - END ELSE BEGIN - PATCH_FAIL "%expression% evaluates to %value%, which is not an integer, but one is expected." - END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Is expression a list (i.e., bounded by []). If not, fail -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION fail_unless_list - STR_VAR expression="" value="" -BEGIN - PATCH_IF "%value%" STRING_MATCHES_REGEXP "\[.*\]$" BEGIN - PATCH_FAIL "%expression% evaluates to %value%, which is not a list, but one is expected." - END -END - diff --git a/iwdification/dw/sfo/general/lib_general.tpa b/iwdification/dw/sfo/general/lib_general.tpa deleted file mode 100644 index e08d03f..0000000 --- a/iwdification/dw/sfo/general/lib_general.tpa +++ /dev/null @@ -1,1164 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// compile SSL -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION ~compile_ssl_to_bcs_core~ INT_VAR skip_bcs=0 STR_VAR script="" variables="" booleans="" location="" locbase="" locabs="" rename_to="" inline="" BEGIN - ACTION_IF !FILE_EXISTS "%workspace%/autolib.slb" BEGIN - COPY ~.../stratagems-inline/blank~ ~%workspace%\autolib.slb~ - END - - LAF action_check_ini STR_VAR ini=disable_ssl RET disable_ssl=value END - ACTION_IF ~%script%~ STRING_EQUAL_CASE ~~ BEGIN - LAF warning STR_VAR warning="Warning: SSL compilation called with no script" END - END - ACTION_TO_LOWER script - ACTION_TO_LOWER rename_to - ACTION_IF disable_ssl=0 BEGIN - ACTION_IF !VARIABLE_IS_SET ~sslvariables~ BEGIN - OUTER_SPRINT ~sslvariables~ ~~ - END - ACTION_IF ~%variables%~ STRING_COMPARE_CASE ~~ BEGIN - ACTION_IF ~%sslvariables%~ STRING_COMPARE_CASE ~~ BEGIN - OUTER_SPRINT ~sslvariables~ ~%sslvariables%&%variables%~ - END ELSE BEGIN - OUTER_SPRINT sslvariables ~%variables%~ - END - END - ACTION_IF "%booleans%" STRING_COMPARE_CASE "" BEGIN - OUTER_SPRINT booleanstring "-b %booleans%" - END ELSE BEGIN - OUTER_SPRINT booleanstring "" - END - ACTION_IF ~%inline%~ STRING_EQUAL yes BEGIN - COPY ~.../stratagems-inline/%script%.ssl~ ~%workspace%~ - OUTER_SPRINT full_loc ~%workspace%~ - END ELSE BEGIN - - ACTION_IF ~%sslvariables%~ STRING_COMPARE_CASE ~~ BEGIN - OUTER_SPRINT ~sslvariables~ ~%sslvariables%&ssl_loc=%scsroot%\%location%~ - END ELSE BEGIN - OUTER_SPRINT sslvariables ~%percentage%ssl_loc%percentage%=%scsroot%\%location%~ - END - - // sanity check - ACTION_IF FILE_EXISTS ~%scsroot%\%location%\%script%.ssl~ BEGIN - OUTER_SPRINT full_loc ~%scsroot%\%location%~ - END ELSE BEGIN - LAF get_directory STR_VAR location locabs locbase RET full_loc=directory END - ACTION_IF !FILE_EXISTS ~%full_loc%\%script%.ssl~ BEGIN - FAIL ~SCS install error: the SSL file %script%.ssl cannot be found at %full_loc%~ - END - END - - END - ACTION_IF debug_variable=2 BEGIN - LAF warning STR_VAR warning= ~SSL call with variables %sslvariables%, library %ssllibrary%, booleans %booleanstring%~ END - END - - ACTION_IF ~%WEIDU_OS%~ STRING_COMPARE_CASE ~WIN32~ THEN BEGIN - AT_NOW ~chmod 755 %scsroot%/%ssl_loc%/ssl.pl~ - AT_NOW ~/usr/bin/perl %scsroot%/%ssl_loc%/ssl.pl "%full_loc%\%script% %sslvariables% -o %workspace%/ssl_out -l %ssllibrary% %workspace%/autolib %booleanstring%"~ EXACT - END ELSE BEGIN - AT_NOW ~%scsroot%\%ssl_loc%\ssl.exe "%full_loc%\%script% %sslvariables% -o %workspace%/ssl_out -l %ssllibrary% %workspace%\autolib %booleanstring%"~ - END - COPY ~%workspace%\ssl_out\%script%.baf~ ~%workspace%\ssl_out~ - REPLACE_TEXTUALLY ssl_null_entry "" - PATCH_IF !enhanced_edition BEGIN - LPF ssl_ee_to_vanilla END - END - BUT_ONLY - ACTION_IF skip_bcs=0 BEGIN - ACTION_IF ~%rename_to%~ STRING_COMPARE_CASE ~~ BEGIN - COPY ~%workspace%\ssl_out\%script%.baf~ ~%workspace%\ssl_out\%rename_to%.baf~ - COMPILE EVALUATE_BUFFER ~%workspace%\ssl_out\%rename_to%.baf~ - END ELSE BEGIN - COMPILE EVALUATE_BUFFER ~%workspace%\ssl_out\%script%.baf~ - END - END - END ELSE BEGIN - LAF warning STR_VAR warning="Warning: SSL compilation disabled" END - END -END - -DEFINE_ACTION_FUNCTION ~ssl_to_bcs~ - STR_VAR script="" location="" locbase="" locabs="" variables="" booleans="" rename_to="" inline="" -BEGIN - // "location" should in normal circumstances be relativised to local_loc, but SSL permits - // it to be relative to scsroot (for legacy reasons) - - ACTION_IF ~%script%~ STRING_EQUAL ~~ BEGIN - LAF warning STR_VAR warning="Warning: SSL compiler called with empty argument" END - END - OUTER_WHILE ~%script%~ STRING_COMPARE ~~ BEGIN - LAF action_return_first_entry STR_VAR list=~%script%~ RET script=list script_to_call=entry END - LAF compile_ssl_to_bcs_core STR_VAR script=~%script_to_call%~ location locbase locabs variables booleans rename_to inline END - END - -END - -DEFINE_ACTION_FUNCTION ~ssl_to_baf~ - STR_VAR script="" location="" locbase="" locabs="" variables="" inline="" booleans="" -BEGIN - ACTION_IF ~%script%~ STRING_EQUAL ~~ BEGIN - LAF warning STR_VAR warning="Warning: SSL compiler called with empty argument" END - END - OUTER_WHILE ~%script%~ STRING_COMPARE ~~ BEGIN - LAF action_return_first_entry STR_VAR list= ~%script%~ RET script=list script_to_call=entry END - LAF compile_ssl_to_bcs_core INT_VAR skip_bcs=1 STR_VAR script= ~%script_to_call%~ location locbase locabs variables booleans inline END - END - -END - - -DEFINE_ACTION_FUNCTION ~COMPILE_SSL_TO_BCS~ STR_VAR script="" location="" variables="" rename_to="" inline="" booleans="" BEGIN // legacy name - LAF ssl_to_bcs STR_VAR script location variables rename_to inline booleans END -END - - - - - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// install all the listed files -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION install - INT_VAR overwrite=1 - STR_VAR file="" - files="" - location="" - locbase="" - inline="no" - postfix="" -BEGIN - ACTION_IF ~%file%~ STRING_EQUAL_CASE ~~ BEGIN - ACTION_IF ~%files%~ STRING_EQUAL_CASE ~~ BEGIN - PRINT ~Warning: you've called an install with no argument~ - END ELSE BEGIN - OUTER_SPRINT file ~%files%~ - END - END - PRINT ~Installing file(s) %file%~ - ACTION_IF ~%inline%~ STRING_EQUAL_CASE yes BEGIN - OUTER_SPRINT file_loc ~.../stratagems-inline~ - END ELSE BEGIN - LAF action_get_directory STR_VAR location locbase RET file_loc=directory END - END - OUTER_WHILE ~%file%~ STRING_COMPARE ~~ BEGIN - LAF return_first_entry STR_VAR list= ~%file%~ RET entry file=list END - ACTION_IF "%entry%" STRING_EQUAL_CASE all BEGIN - ACTION_IF "%postfix%" STRING_EQUAL "" BEGIN - ACTION_BASH_FOR "%file_loc%" ".*" BEGIN - OUTER_SPRINT file "%file% %BASH_FOR_FILE%" - END - END ELSE BEGIN - ACTION_BASH_FOR "%file_loc%" ".*\.%postfix%" BEGIN - OUTER_SPRINT file "%file% %BASH_FOR_RES%" - END - END - END ELSE BEGIN - ACTION_IF "%postfix%" STRING_EQUAL "" BEGIN - OUTER_PATCH_SAVE entry ~%entry%~ BEGIN - SET postfix_start = INDEX_BUFFER (~\.~) +1 - SET postfix_length = BUFFER_LENGTH - postfix_start - READ_ASCII postfix_start postfix_here (~postfix_length~) - DELETE_BYTES (postfix_start - 1) (postfix_length + 1) - END - OUTER_SPRINT entry_full "%entry%.%postfix_here%" - END ELSE BEGIN - OUTER_SPRINT entry_full "%entry%.%postfix%" - OUTER_SPRINT postfix_here "%postfix%" - END - ACTION_IF !overwrite BEGIN - ACTION_MATCH "%postfix_here%" WITH - baf ssl BEGIN - OUTER_SPRINT to_check "%entry%.bcs" - END - d BEGIN - OUTER_SPRINT to_check "%entry%.dlg" - END - DEFAULT - OUTER_SPRINT to_check "%entry_full%" - END - END - ACTION_IF (overwrite OR !FILE_EXISTS_IN_GAME "%to_check%") BEGIN - ACTION_MATCH "%postfix_here%" WITH - baf d BEGIN - COMPILE ~%file_loc%/%entry_full%~ EVALUATE_BUFFER - END - ssl BEGIN - LAF ssl_to_bcs STR_VAR script="%entry%" location END - END - cre BEGIN - COPY ~%file_loc%/%entry_full%~ ~override~ - LPF FJ_CRE_EFF_V2 END - END - DEFAULT - COPY ~%file_loc%/%entry_full%~ ~override~ - END - END ELSE BEGIN - PRINT "Not installing %entry_full% as it is already present" - END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Extend a script -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION extend - INT_VAR tv=0 - STR_VAR file="" - files="" - script="" - top="" - bottom="" - location="" - locbase="" - locabs="" - inline="no" - ssl="no" - variables="" -BEGIN - ACTION_IF ~%file%%files%%script%~ STRING_EQUAL_CASE ~~ BEGIN - PRINT ~Warning: you've called an extend with no main file~ - END ELSE BEGIN - OUTER_SPRINT file ~%file%%files%%script%~ - END - ACTION_IF ~%ssl%~ STRING_EQUAL_CASE yes BEGIN - ACTION_FOR_EACH script IN ~%top%~ ~%bottom%~ BEGIN - ACTION_IF ~%script%~ STRING_COMPARE_CASE ~~ BEGIN - LAF ssl_to_baf STR_VAR script location variables inline END - END - END - OUTER_SPRINT file_loc ~%workspace%\ssl_out~ - END ELSE BEGIN - ACTION_IF ~%inline%~ STRING_EQUAL_CASE yes BEGIN - OUTER_SPRINT file_loc ~.../stratagems-inline~ - END ELSE BEGIN - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - END - END - OUTER_WHILE ~%file%~ STRING_COMPARE ~~ BEGIN - LAF return_first_entry STR_VAR list= ~%file%~ RET entry file=list END - ACTION_IF tv BEGIN - OUTER_SPRINT entry ~%tutu_var%%entry%~ - END - ACTION_IF ~%top%~ STRING_COMPARE_CASE ~~ BEGIN - EXTEND_TOP ~%entry%.bcs~ ~%file_loc%/%top%.baf~ EVALUATE_BUFFER - END - ACTION_IF ~%bottom%~ STRING_COMPARE_CASE ~~ BEGIN - EXTEND_BOTTOM ~%entry%.bcs~ ~%file_loc%/%bottom%.baf~ EVALUATE_BUFFER - END - END - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Compile a script under a different name (syntax is oldname=>newname) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION compile_rename -STR_VAR file="" - files="" - location="" - locbase="" -BEGIN - ACTION_IF ~%file%~ STRING_EQUAL_CASE ~~ BEGIN - ACTION_IF ~%files%~ STRING_EQUAL_CASE ~~ BEGIN - PRINT ~Warning: you've called a compile_rename with no main file~ - END ELSE BEGIN - OUTER_SPRINT file ~%files%~ - END - END - LAF action_get_directory STR_VAR location locbase RET file_loc=directory END - OUTER_WHILE ~%file%~ STRING_COMPARE ~~ BEGIN - LAF action_return_first_pair STR_VAR list= ~%file%~ RET oldscript=key newscript=value file=list END - COPY ~%file_loc%\%oldscript%.baf~ ~%workspace%\%newscript%.baf~ - COMPILE EVALUATE_BUFFER ~%workspace%\%newscript%.baf~ - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Clone a script A=>B and then extend it with another script also called B -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_extend - STR_VAR arguments="" - top="yes" - location="" - locbase="" - inline="no" -BEGIN - ACTION_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LAF action_return_first_pair STR_VAR list= ~%arguments%~ RET source=key script=value arguments=list END - COPY_EXISTING ~%source%.bcs~ ~override/%script%.bcs~ - ACTION_IF ~%top%~ STRING_EQUAL_CASE ~no~ BEGIN - LAF extend STR_VAR files= ~%script%~ location locbase inline bottom= ~%script%~ END - END ELSE BEGIN - LAF extend STR_VAR files= ~%script%~ location locbase inline top= ~%script%~ END - END - LAF clone_extend STR_VAR arguments top location inline END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// make a textual substitution -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - -DEFINE_PATCH_FUNCTION swap_text_core - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET arguments=list old=key new=value END - PATCH_IF ~%new%~ STRING_EQUAL_CASE ~NULL~ BEGIN - SPRINT ~new~ ~~ - END - REPLACE_TEXTUALLY CASE_INSENSITIVE ~%old%~ ~%new%~ - LPF swap_text_core STR_VAR arguments= ~%arguments%~ END - END -END - -DEFINE_PATCH_FUNCTION swap_text_core2 - STR_VAR arguments="" -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET arguments=list old=key new=value END - PATCH_IF ~%new%~ STRING_EQUAL_CASE ~NULL~ BEGIN - SPRINT ~new~ ~~ - END - SET len1=STRING_LENGTH ~%old%~ - SET len2=STRING_LENGTH ~%new%~ - SET len = len1>len2?len1:len2 - REPLACE_TEXTUALLY CASE_INSENSITIVE ~%old%~ ~%new%~ (len) - LPF swap_text_core2 STR_VAR arguments= ~%arguments%~ END - END -END - -DEFINE_ACTION_FUNCTION swap_text - INT_VAR tv=0 - allow_missing=0 - STR_VAR files="" - file="" - swaps="" - postfix="" -BEGIN - OUTER_SPRINT files "%files%%file%" - OUTER_WHILE ~%files%~ STRING_COMPARE_CASE ~~ BEGIN - LAF action_return_first_entry STR_VAR list= ~%files%~ RET files=list entry=entry END - ACTION_IF tv BEGIN - OUTER_SPRINT ~entry~ ~%tutu_var%%entry%~ - END - ACTION_IF (~%postfix%~ STRING_COMPARE_CASE ~~) BEGIN - OUTER_SPRINT ~entry~ ~%entry%.%postfix%~ - END - ACTION_IF (!allow_missing || FILE_EXISTS_IN_GAME ~%entry%~) BEGIN - OUTER_PATCH ~%entry%~ BEGIN - SET postfix_start = INDEX_BUFFER (~\.~) +1 - SET postfix_length = BUFFER_LENGTH - postfix_start - READ_ASCII postfix_start pf (~postfix_length~) - END - ACTION_TO_LOWER pf - ACTION_MATCH "%pf%" WITH - bcs dlg BEGIN - COPY_EXISTING ~%entry%~ ~override~ - DECOMPILE_AND_PATCH BEGIN - LPF swap_text_core STR_VAR arguments = ~%swaps%~ END - END - BUT_ONLY - END - 2da ids BEGIN - COPY_EXISTING ~%entry%~ ~override~ - LPF swap_text_core STR_VAR arguments = ~%swaps%~ END - BUT_ONLY - END - DEFAULT - COPY_EXISTING ~%entry%~ ~override~ - LPF swap_text_core2 STR_VAR arguments = ~%swaps%~ END - BUT_ONLY - END - END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// output the name of the file -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION log_resource_name STR_VAR arguments="SFOlog" filename="" file_ext="" BEGIN - - - TO_LOWER file_ext - PATCH_MATCH ~%file_ext%~ WITH itm BEGIN - READ_STRREF 0xc name - SPRINT output ~%filename% %name%~ - END - cre spl BEGIN - READ_STRREF 0x8 name - SPRINT output ~%filename% %name%~ - END - DEFAULT - SPRINT output ~%filename%~ - END - - INNER_ACTION BEGIN - <<<<<<<< log.txt - >>>>>>>> - - - ACTION_IF !FILE_EXISTS ~%workspace%/%arguments%.txt~ BEGIN - COPY log.txt ~%workspace%/%arguments%.txt~ - END - APPEND_OUTER ~%workspace%/%arguments%.txt~ ~%output%~ - END - -END -OUTER_SPRINT $SFO_do_not_parse_arguments("log_resource_name") "" - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Say something at an offset -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION say_this_here - INT_VAR offset=0 - say=0 -BEGIN - SPRINT input ~SAY %offset% %atsymbol%%say%~ // why? for more specific error messages - PATCH_TRY - LPF patch_reinclude_this STR_VAR input END - WITH DEFAULT - PATCH_PRINT "Failed to SAY %atsymbol%%say% at offset %offset%, most likely because the string does not exist in the TRA file" - PATCH_RERAISE - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Get a strref for a tra entry by number -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION strref_of_tra - INT_VAR arguments=0 - RET value -BEGIN - SPRINT input ~SET value=RESOLVE_STR_REF (%atsymbol%%arguments%)~ // why? for more specific error messages - PATCH_TRY - LPF patch_reinclude_this STR_VAR input END - WITH DEFAULT - PATCH_PRINT "Failed to RESOLVE_STR_REF for %atsymbol%%arguments%, most likely because the string does not exist in the TRA file" - PATCH_RERAISE - END -END - -DEFINE_ACTION_FUNCTION strref_of_tra - INT_VAR arguments=0 - RET value -BEGIN - OUTER_PATCH "" BEGIN - LPF strref_of_tra STR_VAR arguments RET value END - END -END - -/* -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Return a string from the TRA file -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION return_tra_string - STR_VAR arguments="" - RET value -BEGIN - OUTER_SPRINT input ~OUTER_SPRINT value %atsymbol%%arguments%~ - ACTION_TRY - PRINT "%input%" - OUTER_SPRINT value @1 - PRINT "%value%" - INCLUDE "OUTER_SPRINT value %atsymbol%%arguments%" - LAF reinclude_this STR_VAR input END - PRINT "%value%" - WITH DEFAULT - PRINT "Failed to retrieve the string (supposedly at) %atsymbol%%arguments% in the TRA file" - ACTION_RERAISE - END -END - -*/ - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Return the offset of a given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_offset - INT_VAR offset_num=0 - STR_VAR file_ext="" - entry_type="" - RET value offset_loc -BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the file extension for return_offset" - END - PATCH_IF "%entry_type%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the entry type for return_offset" - END - SET offset_loc=$ ~%file_ext%offset_loc~(~%entry_type%~) - SET offset_length=$ ~%file_ext%offset_length~(~%entry_type%~) - PATCH_MATCH offset_length WITH - 2 BEGIN - READ_SHORT offset_loc offset_base - END - 4 BEGIN - READ_LONG offset_loc offset_base - END - DEFAULT - LPF warning STR_VAR warning="warning: unknown length of offset" END - END - SET entry_length=$ ~%file_ext%entry_length~(~%entry_type%~) - SET value=offset_base + offset_num * entry_length -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Increment the offset of a given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION increment_offset - INT_VAR arguments=0 - STR_VAR file_ext="" - entry_type="" - -BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the file extension for increment_offset" - END - PATCH_IF "%entry_type%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the entry type for increment_offset" - END - SET offset_loc=$ ~%file_ext%offset_loc~(~%entry_type%~) - SET offset_length=$ ~%file_ext%offset_length~(~%entry_type%~) - PATCH_MATCH offset_length WITH - 2 BEGIN - WRITE_SHORT offset_loc ((SHORT_AT offset_loc) + arguments) - END - 4 BEGIN - WRITE_LONG offset_loc ((LONG_AT offset_loc) + arguments) - END - DEFAULT - LPF warning STR_VAR warning="warning: unknown length of offset" END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Return the number of a given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_number_entries - STR_VAR file_ext="" - entry_type="" - RET value -BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the file extension for return_number_entries" - END - PATCH_IF "%entry_type%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the entry type for return_number_entries" - END - SET loc=$ ~%file_ext%entrynum_loc~(~%entry_type%~) - SET length=$ ~%file_ext%entrynum_length~(~%entry_type%~) - PATCH_IF loc="-1" BEGIN - SET value="-1" - END ELSE BEGIN - PATCH_MATCH length WITH - 2 BEGIN - READ_SHORT loc value - END - 4 BEGIN - READ_LONG loc value - END - 0 BEGIN - SET value="-1" - END - DEFAULT - LPF warning STR_VAR warning="warning: unknown length of offset" END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Increment the number of a given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION increment_number_entries - INT_VAR arguments=0 - STR_VAR file_ext="" - entry_type="" - -BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the file extension for increment_number_entries" - END - PATCH_IF "%entry_type%" STRING_EQUAL_CASE "" BEGIN - PATCH_FAIL "You need to specify the entry type for increment_number_entries" - END - SET loc=$ ~%file_ext%entrynum_loc~(~%entry_type%~) - SET length=$ ~%file_ext%entrynum_length~(~%entry_type%~) - PATCH_IF loc="-1" BEGIN - - END ELSE BEGIN - PATCH_MATCH length WITH - 2 BEGIN - WRITE_SHORT loc ((SHORT_AT loc) + arguments) - END - 4 BEGIN - WRITE_LONG loc ((LONG_AT loc) + arguments) - END - 0 BEGIN - END - DEFAULT - LPF warning STR_VAR warning="warning: unknown length of offset" END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// count the files of a given type -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION count_files - STR_VAR file_ext="" - tv="no" - RET value -BEGIN - ACTION_IF ~%tv%~ STRING_EQUAL_CASE yes BEGIN - OUTER_SPRINT base ~%tutu_var%~ - END ELSE BEGIN - OUTER_SPRINT base ~~ - END - OUTER_SET value=0 - COPY_EXISTING_REGEXP GLOB ~%base%.*\.%file_ext%~ ~override~ - SET value+=1 - BUT_ONLY -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// clone a list of scripts -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - -DEFINE_ACTION_FUNCTION clone_script - STR_VAR script="" -BEGIN - ACTION_IF ~%script%~ STRING_COMPARE_CASE ~~ BEGIN - LAF action_return_first_pair STR_VAR list= ~%script%~ RET script=list old=key new=value END - COPY_EXISTING ~%old%.bcs~ ~override/%new%.bcs~ - LAF clone_script STR_VAR script END - END -END - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////// Apply the function "arguments", which in turn takes arguments offset, (NOT offset_base) -//////////// filename, file_ext, to the offset of every strref in the file. -//////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION apply_to_strrefs - STR_VAR arguments="" - filename="" - file_ext="" -BEGIN - TO_LOWER file_ext - PATCH_MATCH "%file_ext%" WITH - are BEGIN - SPRINT fixed_loc "" - SPRINT ext_loc "trigger=>0x64 trigger=>0xb8 container=>0x84 door=>0x98 door=>0xb4 mapnote=>0x4" - // special case: the interruption explanation text - READ_LONG 0xc0 offset_base - FOR (i=0;i<10;i+=1) BEGIN - SET offset=offset_base + i * 0x4 + 0x20 - SPRINT fixed_loc "%fixed_loc% %offset%" - END - END - cre BEGIN - SPRINT fixed_loc "0x8 0xc" - SPRINT ext_loc "" - // special case: soundset - FOR (i=0;i<100;i+=1) BEGIN - SET offset=0xa4 + 0x4 * i - SPRINT fixed_loc "%fixed_loc% %offset%" - END - END - dlg BEGIN - SPRINT fixed_loc "" - SPRINT ext_loc "state=>0x0 transition=>0x4 transition=>0x8" - END - itm spl BEGIN - SPRINT fixed_loc "0x8 0xc 0x50 0x54" - SPRINT ext_loc "" - LPF apply_to_strrefs_opcode_helper STR_VAR file_ext RET opcode_loc=opcode_loc END - SPRINT fixed_loc "%fixed_loc% %opcode_loc%" - END - sto BEGIN - SPRINT fixed_loc "0xc" - SPRINT ext_loc "drink=>0x8" - END - wmp BEGIN - SPRINT fixed_loc "0x24" - SPRINT ext_loc "area=>0x40 area=>0x44" - END - wav bam vvc pro baf bcs 2da BEGIN - SPRINT fixed_loc "" - SPRINT ext_loc "" - END - eff BEGIN - SPRINT fixed_loc "" - SPRINT ext_loc "" - LPF warning STR_VAR warning="apply_to_strref has skipped %filename%.eff, which might be a problem in the vanishingly unlikely event it's got a strref in it" END - END - DEFAULT - SPRINT fixed_loc "" - SPRINT ext_loc "" - LPF warning STR_VAR warning="apply_to_strref can't patch file %filename%.%file_ext%: filetype not recognised" END - END - WHILE "%fixed_loc%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%fixed_loc%" RET offset=entry fixed_loc=list END - LPF "%arguments%" INT_VAR offset STR_VAR filename file_ext END - END - WHILE "%ext_loc%" STRING_COMPARE "" BEGIN - LPF return_first_pair STR_VAR list="%ext_loc%" RET entry_type=key offset_ext=value ext_loc=list END - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF "%arguments%" INT_VAR offset=offset_base+offset_ext STR_VAR filename file_ext END - END - END -END - -DEFINE_PATCH_FUNCTION apply_to_strrefs_opcode_helper - STR_VAR file_ext="" - RET opcode_loc -BEGIN - SPRINT opcode_loc "" - // common - PATCH_FOR_EACH opcode IN 103 139 180 181 BEGIN - SPRINT $opcode_has_strref("%opcode%") "" - END - // game-specific - PATCH_IF GAME_IS "iwd how totlm iwd2" BEGIN - SPRINT $opcode_has_strref("183") "" - END ELSE - PATCH_IF GAME_IS "pst" BEGIN - END ELSE BEGIN // assume it's BG2 - PATCH_FOR_EACH opcode IN 206 253 254 267 290 BEGIN - SPRINT $opcode_has_strref("%opcode%") "" - END - END - PATCH_IF "%file_ext%" STRING_EQUAL_CASE itm BEGIN - SET length=0x38 - END ELSE BEGIN - SET length=0x28 - END - GET_OFFSET_ARRAY eq_eff ITM_V10_GEN_EFFECTS - PHP_EACH eq_eff AS int=>offset BEGIN - READ_SHORT offset opcode - PATCH_IF VARIABLE_IS_SET $opcode_has_strref("%opcode%") BEGIN - SET loc_here=offset + 0x4 - SPRINT opcode_loc "%opcode_loc% %loc_here%" - END - END - GET_OFFSET_ARRAY ab_arr 0x64 4 0x68 2 0 0 length - PHP_EACH ab_arr AS int=>ab_off BEGIN - GET_OFFSET_ARRAY2 eff_arr ab_off ITM_V10_HEAD_EFFECTS - PHP_EACH eff_arr AS int=>offset BEGIN - READ_SHORT offset opcode - PATCH_IF VARIABLE_IS_SET $opcode_has_strref("%opcode%") BEGIN - SET loc_here=offset + 0x4 - SPRINT opcode_loc "%opcode_loc% %loc_here%" - END - END - END -END - -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////// Apply the function "arguments" to each strref in the file, treated as a plain text -//////////// file containing BAF script. The function takes argument "strref" and must return "strref_new", which is treated as -//////////// the new value of the strref (return the old value if you just want to log it or something) -//////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION apply_to_strrefs_script - STR_VAR arguments="" - filename="" -BEGIN - REPLACE_EVALUATE "DisplayString\([A-Za-z]*\)(\([^,]+\),\([0-9]+\))" BEGIN - LPF "%arguments%" STR_VAR strref="%MATCH3%" filename RET strref_new=strref_new END - END - "DisplayString%MATCH1%(%MATCH2%,%strref_new%)" - REPLACE_EVALUATE "AddJournalEntry(\([0-9]+\)" BEGIN - LPF "%arguments%" STR_VAR strref="%MATCH1%" filename RET strref_new=strref_new END - END - "AddJournalEntry(%strref_new%" -END - -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////// Apply the function "arguments" to each strref in the file, treated as a 2da -//////////// file. The function takes argument "strref" and must return "strref_new", which is treated as -//////////// the new value of the strref (return the old value if you just want to log it or something) -//////////// -//////////// Note that detection of which numbers in a 2da file are strrefs is of necessity a bit -//////////// heuristic. We assume that -//////////// - no integer lower than 160 is a strref (the actual values from 1-100 in BG2 are -//////////// dialog strings not referenced in 2das) -//////////// - no integer larger than 299999 is a strref (this is way bigger than any actual dlg) -//////////// - no integer in the following 2das is a strref: -//////////// banttimg clearair extanim extspeed happy pplane raisdead randcolr repmodst splashs2 splashsc startare startbp startpos strmod strmodex xpbonus xpcap xplevel xplist -//////////// -//////////// - no integer <10000 in the following is a strref: -//////////// end15fps endmve1 endmve2 endmve3 intro intro15f melissan xnewarea -/////////// - no integer in columns 0-2 of clastext is a strref -//////////// - nothing in hex notation is a strref -//////////// - all other integers are strrefs -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION apply_to_strrefs_2da - STR_VAR arguments="" -BEGIN - SPRINT filename "%SOURCE_RES%" - TO_LOWER filename - PATCH_MATCH "%filename%" WITH - banttimg clascolr clearair extanim extspeed happy pplane raisdead randcolr repmodst splashs2 splashsc startare startbp startpos strmod strmodex xpbonus xpcap xplevel xplist - BEGIN - SET min=0 - SET max=0 - SET col=0 - END - end15fps endmve1 endmve2 endmve3 intro intro15f melissan xnewarea - BEGIN - SET min=10000 - SET max=299999 - SET col=0 - END - clastext - BEGIN - SET min=160 - SET max=299999 - SET col=3 - END - statdesc - BEGIN - SET min=256 - SET max=299999 - SET col=0 - END - DEFAULT - SET min=160 - SET max=299999 - SET col=0 - END - PATCH_IF max>0 BEGIN - COUNT_2DA_ROWS 0 rowcount - FOR (row=0;row= rowcount BEGIN - READ_2DA_ENTRY (rowcount - 1) 0 3 last_entry - SET stat_num=last_entry + 1 - SET row=rowcount - INSERT_2DA_ROW rowcount 3 "%stat_num% -1 ****" - END ELSE BEGIN - READ_2DA_ENTRY start_row 1 3 entry - PATCH_IF entry<=0 BEGIN - READ_2DA_ENTRY start_row 0 3 stat_num - SET row=start_row - END ELSE BEGIN - SET start_row +=1 - LPF add_to_statdesc_helper INT_VAR start_row rowcount RET stat_num row END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Find what level a character would be at a given XP level -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION level_at_xp - INT_VAR xp=0 - num_classes=1 - STR_VAR class="" - RET level -BEGIN - // safety check - ACTION_IF num_classes<1 BEGIN - OUTER_SET num_classes=1 - LAF warning STR_VAR warning="num_classes variable in the 'level_at_xp' function set to 0 or negative value. Resetting to 1." END - END - // adjust the XP for multiclassing - OUTER_SET xp=xp / num_classes - // check the table - COPY_EXISTING xplevel.2da override - COUNT_2DA_COLS colcount - LPF get_table_row_coordinate STR_VAR row="%class%" RET rownum END - PATCH_IF rownum<0 BEGIN - LPF warning STR_VAR warning="level_at_xp can't determine the level for class %class% as it isn't in xplevel.2da" END - END ELSE BEGIN - LPF level_at_xp_core INT_VAR xp rownum colcount RET level END - END - BUT_ONLY -END - - - -DEFINE_PATCH_FUNCTION level_at_xp_core - INT_VAR min_level=1 - xp=0 - rownum=0 - colcount=40 - RET level -BEGIN - PATCH_IF min_level >= colcount BEGIN - SET level=min_level - END ELSE BEGIN - READ_2DA_ENTRY rownum (min_level+1) colcount xp_here - PATCH_IF xp_here > xp BEGIN - SET level=min_level - END ELSE BEGIN - SET min_level +=1 - LPF level_at_xp_core INT_VAR min_level xp rownum colcount RET level END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Find what level a character would be at the level cap -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION level_at_xp_cap - STR_VAR class="" - parent_class="" - RET level -BEGIN - ACTION_IF "%parent_class%" STRING_EQUAL "" BEGIN - OUTER_SPRINT parent_class "%class%" - END - // count the number of classes - OUTER_PATCH_SAVE list "%parent_class%" BEGIN - REPLACE_TEXTUALLY "_" " " - END - LAF length_of_list STR_VAR list RET num_classes=value END - // get the XP cap - LAF read_table_entry STR_VAR file=xpcap row="%parent_class%" colnum=1 RET xp=value END - LAF level_at_xp INT_VAR xp num_classes STR_VAR class RET level END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Sort out a SPLPROT entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION resolve_splprot_entry - INT_VAR stat=0 - value=0 - relation_number=0 - STR_VAR relation="" - RET value -BEGIN - ACTION_MATCH "%relation%" WITH - equals equal BEGIN - OUTER_SET relation_number=1 - END - greater greater_than BEGIN - OUTER_SET relation_number=3 - END - less less_than BEGIN - OUTER_SET relation_number=2 - END - greater_equal greater_equals BEGIN - OUTER_SET relation_number= 4 - END - less_than_equal less_equal less_than_equals less_than_equals BEGIN - OUTER_SET relation_number=0 - END - not_equal BEGIN - OUTER_SET relation_number=5 - END - "" BEGIN END - DEFAULT - LAF warning STR_VAR warning="unrecognised relation %relation% in resolve_splprot_entry; defaulting to 0" END - OUTER_SET relation_number=0 - END - COPY_EXISTING "splprot.2da" override - READ_2DA_ENTRIES_NOW splprot_array 4 - SET value="-1" - FOR (i=0;i arglist BEGIN - LAUNCH_ACTION_FUNCTION decompose_CSV STR_VAR input= ~%arglist%~ RET offset=argument_0 type=argument_1 END - ACTION_MATCH ~%offset_base%~ - WITH - ~~ - BEGIN - OUTER_SPRINT ~offset_formula~ ~%offset%~ - END - DEFAULT - ACTION_IF "%secondary%" STRING_EQUAL_CASE yes BEGIN - OUTER_SPRINT ~offset_formula~ ~(%offset% + offset_secondary)~ - END ELSE BEGIN - OUTER_SPRINT ~offset_formula~ ~(%offset% + offset_base)~ - END - END - - OUTER_SPRINT arg_string ~INT_VAR offset_secondary=0 offset_base=0 STR_VAR arguments="" RET value~ - OUTER_SPRINT simple_arg_string "INT_VAR offset_secondary=0 offset_base=0 RET value" - OUTER_SPRINT parse_string "" - OUTER_SPRINT parse_string_int ~LPF fail_unless_int STR_VAR value="%arguments%" expression="" END~ - - - ACTION_MATCH ~%type%~ - WITH ~ASCII~ - BEGIN - OUTER_SPRINT ~definition~ - ~DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN %parse_string% PATCH_MATCH "%arguments%" WITH no_change BEGIN END null BEGIN WRITE_ASCII %offset_formula% "" (8) END DEFAULT WRITE_ASCIIE %offset_formula% "%percentage%arguments%percentage%" (8) END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN READ_ASCII %offset_formula% value END~ - END - ~ASCII20~ - BEGIN - OUTER_SPRINT ~definition~ - ~DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN %parse_string% PATCH_MATCH "%arguments%" WITH no_change BEGIN END null BEGIN WRITE_ASCII %offset_formula% "" (0x20) END DEFAULT WRITE_ASCIIE %offset_formula% "%percentage%arguments%percentage%" (0x20) END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN READ_ASCII %offset_formula% value (0x20) NULL END~ - END - ~ASCII2~ - BEGIN - OUTER_SPRINT ~definition~ - ~DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN %parse_string% WRITE_ASCIIE %offset_formula% "%percentage%arguments%percentage%" (0x2) SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN READ_ASCII %offset_formula% value (0x2) NULL END~ - END - SSHORT SLONG SBYTE BEGIN - OUTER_PATCH_SAVE type_write "%type%" BEGIN - DELETE_BYTES 0x0 1 - END - OUTER_SPRINT ~definition~ ~ - DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN %parse_string_int% PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type_write% %offset_formula% arguments END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_%function%GT %arg_string% BEGIN %parse_string_int% PATCH_IF %type%_AT %offset_formula% < arguments BEGIN PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type_write% %offset_formula% arguments END END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_%function%LT %arg_string% BEGIN %parse_string_int% PATCH_IF %type%_AT %offset_formula% > arguments BEGIN PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type_write% %offset_formula% arguments END END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN READ_%type% %offset_formula% value END~ - END - DEFAULT - OUTER_SPRINT ~definition~ ~ - DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN %parse_string_int% PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type% %offset_formula% arguments END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_%function%GT %arg_string% BEGIN %parse_string_int% PATCH_IF %type%_AT %offset_formula% < arguments BEGIN PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type% %offset_formula% arguments END END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_%function%LT %arg_string% BEGIN %parse_string_int% PATCH_IF %type%_AT %offset_formula% > arguments BEGIN PATCH_IF "%arguments%" STRING_COMPARE no_change BEGIN WRITE_%type% %offset_formula% arguments END END SET value=1 END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN READ_%type% %offset_formula% value END~ - END - - LAUNCH_ACTION_FUNCTION action_reinclude_this STR_VAR input= ~%definition%~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// define a set of simple data-field-editing functions using IDS lookup from a table -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION build_IDS_data_field_editors - STR_VAR lookup_table="" - function_prefix="" - offset_base="" - secondary="no" - -BEGIN - - - OUTER_SPRINT arg_string ~INT_VAR offset_secondary=0 offset_base=0 STR_VAR arguments="" RET value~ - OUTER_SPRINT simple_arg_string "INT_VAR offset_secondary=0 offset_base=0 RET value" - OUTER_SPRINT parse_string "" - - - - ACTION_PHP_EACH ~%lookup_table%~ AS function => arglist BEGIN - LAF decompose_CSV STR_VAR input= ~%arglist%~ RET offset=argument_0 type=argument_1 idsfile=argument_2 END - ACTION_MATCH ~%offset_base%~ - WITH - ~~ - BEGIN - OUTER_SPRINT ~offset~ ~%offset%~ - END - DEFAULT - OUTER_SPRINT ~offset~ ~(%offset% + %offset_base%)~ - END - ACTION_IF ~%type%~ STRING_EQUAL_CASE ~LONG_REVERSED~ THEN BEGIN - OUTER_SPRINT definition ~ - DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN - %parse_string% - PATCH_IF "%arguments%" STRING_COMPARE_CASE "no_change" BEGIN - SET ids_value = IDS_OF_SYMBOL (%idsfile% "%arguments%") - PATCH_IF ids_value>0 BEGIN - LPF reverse_long INT_VAR input=ids_value RET ids_value=output END - WRITE_LONG %offset% ids_value - END ELSE BEGIN - PATCH_FAIL "Tried to set nonexistent %idsfile% entry %arguments%" - END - SET value=1 - END - END - - - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN - READ_LONG %offset% value_ids - LPF reverse_long INT_VAR input=value_ids RET value_ids=output END - LOOKUP_IDS_SYMBOL_OF_INT value %idsfile% value_ids - END - ~ - END ELSE BEGIN - OUTER_SPRINT ~definition~ ~ - DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN - %parse_string% - PATCH_IF "%arguments%" STRING_COMPARE_CASE "no_change" BEGIN - SET ids_value = IDS_OF_SYMBOL (%idsfile% "%arguments%") - PATCH_IF ids_value>0 BEGIN - WRITE_%type% %offset% ids_value - END ELSE BEGIN - PATCH_FAIL "Tried to set nonexistent %idsfile% entry %arguments%" - END - SET value=1 - END - END - - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN - READ_%type% %offset% value_ids - LOOKUP_IDS_SYMBOL_OF_INT value %idsfile% value_ids - END - ~ - END - ACTION_IF ~%secondary%~ STRING_EQUAL_CASE ~yes~ BEGIN - OUTER_PATCH_SAVE ~definition~ ~%definition%~ BEGIN - REPLACE_TEXTUALLY ~offset_base~ ~offset_secondary~ - END - END - LAF action_reinclude_this STR_VAR input= ~%definition%~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// define a set of simple data-field-editing functions using flags -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION build_flag_data_field_editors - STR_VAR lookup_table="" - function_prefix="" - offset_base="" - secondary="" - -BEGIN - - OUTER_SPRINT arg_string ~INT_VAR offset_secondary=0 offset_base=0 STR_VAR arguments="" RET value~ - OUTER_SPRINT simple_arg_string "INT_VAR offset_secondary=0 offset_base=0 RET value" - OUTER_SPRINT parse_string_boolean ~LPF fail_unless_boolean STR_VAR value="%arguments%" expression="" END~ - - - - ACTION_PHP_EACH ~%lookup_table%~ AS function => arglist BEGIN - LAF decompose_CSV STR_VAR input= ~%arglist%~ RET offset=argument_0 bit=argument_1 END - ACTION_MATCH ~%offset_base%~ - WITH - ~~ - BEGIN - OUTER_SPRINT ~offset~ ~%offset%~ - END - DEFAULT - OUTER_SPRINT ~offset~ ~(%offset% + %offset_base%)~ - END - // input is in NI conventions counting 0-7, so bit N is 2^N - OUTER_SET one_code=2**bit - OUTER_SET zero_code=0xff - one_code - OUTER_SPRINT ~definition~ ~ - DEFINE_PATCH_FUNCTION %function_prefix%_%function% %arg_string% BEGIN - %parse_string_boolean% - PATCH_IF arguments=0 BEGIN - WRITE_BYTE %offset% (BYTE_AT %offset% BAND %zero_code%) - END ELSE BEGIN - WRITE_BYTE %offset% (BYTE_AT %offset% BOR %one_code%) - END - SET value=1 - - END - DEFINE_PATCH_FUNCTION %function_prefix%_read_%function% %simple_arg_string% BEGIN - PATCH_IF (BYTE_AT %offset% BAND %one_code%) = 0 BEGIN - SET value=0 - END ELSE BEGIN - SET value=1 - END - END - ~ - ACTION_IF ~%secondary%~ STRING_EQUAL_CASE ~yes~ BEGIN - OUTER_PATCH_SAVE ~definition~ ~%definition%~ BEGIN - REPLACE_TEXTUALLY ~offset_base~ ~offset_secondary~ - END - END - LAF action_reinclude_this STR_VAR input= ~%definition%~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// template for general clone -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION clone_template - INT_VAR - allow_missing=0 - STR_VAR - file_list="" - file_ext="" - edits="" - editstring="" -BEGIN - LAF edit_sanity_check STR_VAR edits editstring task="cloning %file_list%" END - ACTION_IF !"%file_list%" STRING_MATCHES_REGEXP " *$" BEGIN - FAIL "Clone_%file_ext% cannot have an empty argument" - END - PRINT ~SFO: Cloning %file_ext% file(s) %file_list% and applying patch(es)...~ - SILENT - OUTER_SET SFO_RESERVED_object_index = 0 - OUTER_WHILE !(~%file_list%~ STRING_EQUAL ~~) BEGIN - LAF action_return_first_pair - STR_VAR list= ~%file_list%~ - RET filename_old=key - filename_new=value - file_list=list - END - - ACTION_IF allow_missing BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%filename_old%.%file_ext%~ BEGIN - OUTER_SET proceed=1 - END ELSE BEGIN - OUTER_SET proceed=0 - PRINT "File %filename_old%.%file_ext% does not exist, so clone aborted" - END - END ELSE BEGIN - OUTER_SET proceed=1 - END - ACTION_IF proceed=1 BEGIN - COPY_EXISTING ~%filename_old%.%file_ext%~ ~override/%filename_new%.%file_ext%~ - PATCH_IF "%file_ext%" STRING_EQUAL_CASE CRE BEGIN - LPF FJ_CRE_EFF_V2 END - END - PATCH_IF debug_variable=2 BEGIN - LPF warning STR_VAR warning= ~Patching %SOURCE_RES%~ END - PATCH_SILENT - END - LPF apply_patches - INT_VAR really_no_default=1 - STR_VAR edits - filename= ~%filename_old%~ - file_ext - END - LPF apply_patches_inline - INT_VAR really_no_default=1 - STR_VAR editstring - filename= ~%filename_old%~ - file_ext - END - // BUT_ONLY // no BUT_ONLY here - we want a clone regardless - END - OUTER_SET SFO_RESERVED_object_index +=1 - END - VERBOSE - PRINT ~...done~ -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// template for general edit -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - - -DEFINE_ACTION_FUNCTION edit_template - INT_VAR - silent=0 - SFO_RESERVED_object_index=0 - allow_missing=0 - stop_after_match=0 - tv=0 - STR_VAR - file_list="" - file_ext="" - edits="" - editstring="" - external_file="" - location="" - locbase="" - locabs="" - RET value // 1 if any successful edit is made -BEGIN - OUTER_SET value=0 - ACTION_MATCH "%location%%locabs%%locbase%" WITH - "" BEGIN - OUTER_SPRINT file_loc null - END - DEFAULT - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - END - LAF edit_sanity_check STR_VAR edits editstring task="editing %file_list%" END - ACTION_IF !"%file_list%%external_file%" STRING_MATCHES_REGEXP " *$" BEGIN - FAIL "Edit_%file_ext% cannot have an empty argument" - END - ACTION_IF !"%edits%%editstring%" STRING_COMPARE "" BEGIN - LAF warning STR_VAR warning="edit_template of type %file_ext% called for %file_list% with no arguments" END - END - ACTION_IF ~%external_file%~ STRING_COMPARE_CASE ~~ BEGIN - LAF read_in_list STR_VAR file=~%external_file%~ RET extra=list END - OUTER_SPRINT ~file_list~ ~%file_list% %extra%~ - END - ACTION_IF (~%edits%~ STRING_EQUAL_CASE ~~ && ~%editstring%~ STRING_EQUAL_CASE ~~) BEGIN - OUTER_SPRINT edits patch_data - END - ACTION_IF !silent BEGIN - PRINT ~SFO: Applying patch(es) to %file_ext% file(s) %file_list%... ~ - END - SILENT - OUTER_WHILE !(~%file_list%~ STRING_EQUAL ~~ || (stop_after_match && value)) BEGIN - LAF action_return_first_entry - STR_VAR list= ~%file_list%~ - RET file_list=list filename=entry - END - ACTION_IF tv BEGIN - OUTER_SPRINT ~filename~ ~%tutu_var%%filename%~ - END - ACTION_IF "%file_loc%" STRING_EQUAL_CASE "null" BEGIN - ACTION_IF FILE_EXISTS_IN_GAME ~%filename%.%file_ext%~ BEGIN - ACTION_TRY - COPY_EXISTING ~%filename%.%file_ext%~ ~override/%filename%.%file_ext%~ - PATCH_IF (SOURCE_SIZE>0x1) BEGIN - LPF apply_patches INT_VAR stop_after_match STR_VAR edits filename file_ext RET value_here=value END - LPF apply_patches_inline INT_VAR stop_after_match STR_VAR editstring filename file_ext RET value_here2=value END - SET value=value || value_here || value_here2 - END - BUT_ONLY - WITH DEFAULT - WARN "Failed to patch %filename%.%file_ext%; error message was %ERROR_MESSAGE%" - LAF warning STR_VAR warning="Failed to patch %filename%.%file_ext%; error message was %ERROR_MESSAGE%" END - END - END ELSE BEGIN - ACTION_IF !allow_missing BEGIN - FAIL "You are trying to edit %filename%.%file_ext%, which does not exist in the game" - END - END - END ELSE BEGIN - ACTION_IF FILE_EXISTS "%file_loc%/%filename%.%file_ext%" BEGIN - ACTION_TRY - COPY "%file_loc%/%filename%.%file_ext%" "%file_loc%" - PATCH_IF (SOURCE_SIZE>0x1) BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE CRE BEGIN - LPF FJ_CRE_EFF_V2 END - END - LPF apply_patches INT_VAR stop_after_match STR_VAR edits filename file_ext RET value_here=value END - LPF apply_patches_inline INT_VAR stop_after_match STR_VAR editstring filename file_ext RET value_here2=value END - SET value=value || value_here || value_here2 - END - - BUT_ONLY - WITH DEFAULT - WARN "Failed to patch %filename%.%file_ext%; error message was %ERROR_MESSAGE%" - LAF warning STR_VAR warning="Failed to patch %filename%.%file_ext%; error message was %ERROR_MESSAGE%" END - END - END ELSE BEGIN - ACTION_IF !allow_missing BEGIN - FAIL "You are trying to edit %file_loc%/%filename%.%file_ext%, which does not exist" - END - END - END - OUTER_SET SFO_RESERVED_object_index +=1 - END - VERBOSE - ACTION_IF !silent BEGIN - PRINT ~...done~ - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// template for general install -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION install_template - INT_VAR allow_missing=0 - tv=0 - STR_VAR - file_list="" - file_ext="" - edits="" - editstring="" - external_file="" - location="" - locbase="" - locabs="" - destination="override" -BEGIN - LAF edit_sanity_check STR_VAR edits editstring task="installing %file_list%" END - ACTION_IF !"%file_list%" STRING_MATCHES_REGEXP " *$" BEGIN - FAIL "Install_%file_ext% cannot have an empty argument" - END - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - ACTION_IF ~%external_file%~ STRING_COMPARE_CASE ~~ BEGIN - LAF read_in_list STR_VAR file=~%external_file%~ RET extra=list END - OUTER_SPRINT ~file_list~ ~%file_list% %extra%~ - END - ACTION_IF (~%edits%~ STRING_EQUAL_CASE ~~ && ~%editstring%~ STRING_EQUAL_CASE ~~) BEGIN - OUTER_SPRINT edits patch_data - END - PRINT ~SFO: Installing and patching %file_ext% file(s) %file_list%... ~ - SILENT - OUTER_INNER_PATCH_SAVE file_list "%file_list%" BEGIN - REPLACE_TEXTUALLY " +=> +" "=>" - END - OUTER_SET SFO_RESERVED_object_index = 0 - OUTER_WHILE !(~%file_list%~ STRING_EQUAL ~~) BEGIN - LAF return_first_entry STR_VAR list=~%file_list%~ RET file_list=list filedata=entry END - ACTION_IF !("%filedata%" STRING_CONTAINS_REGEXP "=>") BEGIN - LAF return_first_pair STR_VAR list="%filedata%" RET filename=key filename_out=value END - END ELSE BEGIN - OUTER_SPRINT filename "%filedata%" - OUTER_SPRINT filename_out "%filedata%" - END - ACTION_IF tv BEGIN - OUTER_SPRINT ~filename_out~ ~%tutu_var%%filename_out%~ - END ELSE BEGIN - OUTER_SPRINT filename_out "%filename_out%" - END - ACTION_IF FILE_EXISTS ~%file_loc%/%filename%.%file_ext%~ BEGIN - COPY ~%file_loc%/%filename%.%file_ext%~ ~%destination%/%filename_out%.%file_ext%~ - PATCH_IF (SOURCE_SIZE>0x1) BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE CRE BEGIN - LPF FJ_CRE_EFF_V2 END - END - LPF apply_patches STR_VAR edits filename file_ext END - LPF apply_patches_inline STR_VAR editstring filename file_ext END - END - // BUT_ONLY // should be installed regardless! - END ELSE BEGIN - ACTION_IF !allow_missing BEGIN - FAIL "You are trying to install %file_loc%/%filename%.%file_ext%, which does not exist" - END - END - OUTER_SET SFO_RESERVED_object_index +=1 - END - VERBOSE - PRINT ~...done~ - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// template for general regexp -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION regexp_template - INT_VAR tv=0 - STR_VAR - file_ext="" - edits="" - editstring="" - glob="yes" - -BEGIN - LAF edit_sanity_check STR_VAR edits editstring task="patching all %file_ext% files" END - ACTION_IF tv BEGIN - OUTER_SPRINT ~initial~ ~%tutu_var%~ - ACTION_IF VARIABLE_IS_SET ~file_count_%file_ext%_tv~ BEGIN - OUTER_SET count= ~file_count_%file_ext%_tv~ - END ELSE BEGIN - OUTER_SET count=0 - END - END ELSE BEGIN - OUTER_SPRINT ~initial~ ~~ - ACTION_IF VARIABLE_IS_SET ~file_count_%file_ext%~ BEGIN - OUTER_SET count= ~file_count_%file_ext%~ - END ELSE BEGIN - OUTER_SET count=0 - END - END - PRINT ~SFO: Applying patch(es) to all %file_ext% files...~ - SILENT - ACTION_IF ~%glob%~ STRING_EQUAL_CASE ~yes~ BEGIN - OUTER_SET counter=0 - OUTER_SET report=0 - COPY_EXISTING_REGEXP GLOB ~%initial%.*\.%file_ext%~ ~override~ - PATCH_IF (SOURCE_SIZE>0x1) THEN BEGIN - PATCH_IF "%file_ext%" STRING_EQUAL_CASE CRE BEGIN - LPF FJ_CRE_EFF_V2 END - END - SPRINT filename ~%SOURCE_RES%~ - PATCH_IF debug_variable=2 BEGIN - LPF warning STR_VAR warning= ~Trying to patch %filename%...~ END - PATCH_SILENT - END - LPF apply_patches STR_VAR edits filename file_ext END - LPF apply_patches_inline STR_VAR editstring filename file_ext END - END - SET counter=counter+1 - PATCH_IF counter=100 BEGIN - SET counter=0 - SET report=report+100 - PATCH_IF count>0 BEGIN - PATCH_PRINT ~Patched %report% / %count% files~ - END ELSE BEGIN - PATCH_PRINT ~Patched %report% files~ - END - PATCH_SILENT - END - BUT_ONLY - - END ELSE BEGIN - -COPY_EXISTING_REGEXP ~%initial%.*\.%file_ext%~ ~override~ - PATCH_IF (SOURCE_SIZE>0x1) THEN BEGIN - SPRINT filename ~%SOURCE_RES%~ - PATCH_IF debug_variable=2 BEGIN - LPF warning STR_VAR warning= ~Trying to patch %filename%...~ END - PATCH_SILENT - END - LPF apply_patches STR_VAR edits filename file_ext END - LPF apply_patches_inline STR_VAR editstring filename file_ext END - END - BUT_ONLY - - - END - VERBOSE - PRINT ~...done~ -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// template for general new thing -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_template - STR_VAR - file_list="" - file_ext="" - edits="" - editstring="" - build_before="" - build_after="" -BEGIN - LAF edit_sanity_check STR_VAR edits editstring task="making %file_list%" END - PRINT ~SFO: Creating %file_ext% file(s) %file_list%...~ - SILENT - OUTER_SET SFO_RESERVED_object_index = 0 - OUTER_WHILE !(~%file_list%~ STRING_EQUAL ~~) BEGIN - LAF action_return_first_entry - STR_VAR list= ~%file_list%~ - RET file_list=list filename=entry - END - <<<<<<<< blank - >>>>>>>> - COPY ~blank~ ~override/%filename%.%file_ext%~ - DELETE_BYTES 0x0 BUFFER_LENGTH - LPF ~%build_before%~ END - LPF apply_patches - INT_VAR really_no_default=1 - STR_VAR edits filename file_ext - END - LPF apply_patches_inline - INT_VAR really_no_default=1 - STR_VAR editstring filename file_ext - END - PATCH_IF ~%build_after%~ STRING_COMPARE_CASE ~~ BEGIN - LPF ~%build_after%~ END - END - BUT_ONLY // - OUTER_SET SFO_RESERVED_object_index +=1 - END - VERBOSE - PRINT ~...done~ -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// define the PATCH_MAKE_PATCH and MAKE_PATCH pseudocommands -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION define_make_patch BEGIN - REPLACE_TEXTUALLY PATCH_MAKE_PATCH ~PATCH_CLEAR_ARRAY patch_data PATCH_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN~ - REPLACE_TEXTUALLY MAKE_PATCH ~ACTION_CLEAR_ARRAY patch_data ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN~ -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// define the PUSH pseudocommand -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION define_push BEGIN - REPLACE_TEXTUALLY "PUSH ~\([^ ~]+\)~ " ~SPRINT "\1" "%\1% "^~ - REPLACE_TEXTUALLY "PUSH \([^ ~]+\)" ~SPRINT "\1" "%\1% "^~ - REPLACE_TEXTUALLY "PUSH_RANDOM \([^ ]+\) (\([^)]+\))" ~LPF internal_push_random STR_VAR list="%\1%" to_add="\2" RET \1=list END~ -END - -DEFINE_PATCH_FUNCTION internal_push_random STR_VAR list="" to_add="" RET list BEGIN - SET counter=0 - WHILE "%to_add%" STRING_COMPARE "" BEGIN - SET counter +=1 - LPF return_first_entry STR_VAR list="%to_add%" RET entry to_add=list END - SPRINT $temparray("%counter%") "%entry%" - END - SET choice=RANDOM(1 counter) - SPRINT temp $temparray("%choice%") - PATCH_MATCH "%temp%" WITH - null "*" BEGIN END - DEFAULT - INNER_PATCH_SAVE temp "%temp%" BEGIN - REPLACE_TEXTUALLY "+" " " - END - SPRINT list "%list% %temp%" - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// break a comma-separated value string into its components -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION decompose_CSV - STR_VAR - input="" - RET - argument_0 - argument_1 - argument_2 - argument_3 - argument_4 - argument_5 - argument_6 - argument_7 - argument_8 - argument_9 -BEGIN - OUTER_SPRINT ~input~ ~%input%~ - OUTER_INNER_PATCH_SAVE ~output_csv~ ~ACTION_DEFINE_ARRAY temp_array BEGIN %input% END~ BEGIN - REPLACE_TEXTUALLY ~,~ ~ ~ - END - <<<<<<<< temp_file - %output_csv% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file2~ - OUTER_FOR (i=0;i<10;i=i+1) BEGIN - ACTION_IF (VARIABLE_IS_SET $temp_array( ~%i%~)) AND $temp_array( ~%i%~) STRING_COMPARE_CASE ~~ AND $temp_array( ~%i%~) STRING_COMPARE_CASE ~ ~ BEGIN - OUTER_SPRINT ~argument_%i%~ $temp_array(~%i%~) - OUTER_SPRINT ~temp~ $argument(~%i%~) - END ELSE BEGIN - OUTER_SPRINT ~argument_%i%~ ~null~ - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, take ~key=>value~ and return key and value -///////////// (Obsolete: use return_first_pair) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_arrow - STR_VAR input="" - RET key - value -BEGIN - PATCH_IF ~%input%~ STRING_COMPARE "" BEGIN - SPRINT ~output~ ~ACTION_DEFINE_ASSOCIATIVE_ARRAY temp_assoc BEGIN %input% END~ - INNER_ACTION BEGIN - <<<<<<<< temp_file - %output% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file2~ - END - PHP_EACH temp_assoc AS key => value BEGIN - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, take ~key value~ and return key and value -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_pair - STR_VAR input="" - RET key - value -BEGIN - PATCH_IF ~%input%~ STRING_COMPARE "" BEGIN - SPRINT ~output~ ~ACTION_DEFINE_ARRAY temp_array BEGIN %input% END~ - INNER_ACTION BEGIN - <<<<<<<< temp_file - %output% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file2~ - END - SPRINT ~key~ $temp_array(0) - SPRINT ~value~ $temp_array(1) - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, take a list of key=>value s separated by spaces, break it down, and for each entry INCLUDE a string (should usually be a function call) with and set to their values -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_list_of_arrows - STR_VAR filename="" - input="" - instruction="" -BEGIN - PATCH_IF ~%input%~ STRING_COMPARE "" BEGIN - SPRINT ~output~ ~ACTION_DEFINE_ASSOCIATIVE_ARRAY temp_assoc BEGIN %input% END~ - INNER_ACTION BEGIN - <<<<<<<< temp_file - %output% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file2~ - END - PHP_EACH temp_assoc AS key => value BEGIN - INNER_PATCH_SAVE instruction2 ~%instruction%~ BEGIN - REPLACE_TEXTUALLY ~~ ~%key%~ - REPLACE_TEXTUALLY ~~ ~%value%~ - END - LAUNCH_PATCH_FUNCTION patch_reinclude_this STR_VAR input=~%instruction2%~ END - - END - END - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, process a list of space-separated integers and run a function on each -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_integer_list - STR_VAR list="" - function="" -BEGIN - INNER_PATCH_SAVE ~list~ ~%list%~ BEGIN - REPLACE_TEXTUALLY ~\(-[0-9]+\)~ ~"\1"~ - END - SPRINT ~list~ ~PATCH_FOR_EACH entry IN %list% BEGIN LPF %function% INT_VAR arguments= "%entry%" END END~ - LPF patch_reinclude_this STR_VAR input=~%list%~ END - - - -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, process a list of space-separated strings and run a function on each, inputing it into the field "field" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION process_string_list - STR_VAR list="" - function="" - field="arguments" -BEGIN - SPRINT ~list~ ~PATCH_FOR_EACH entry IN %list% BEGIN LPF %function% STR_VAR %field%= "%percentage%entry%percentage%" END END~ - INNER_ACTION BEGIN - <<<<<<<< temp_file - %list% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - END - PATCH_REINCLUDE ~%workspace%/temp_file2~ - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// find the next alphanumeric sequence after the current one (e.g., 6a=>6b, zz=>000) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION alphanumeric_advance STR_VAR arguments="" RET value BEGIN - OUTER_PATCH_SAVE value "%arguments%" BEGIN - SET index=BUFFER_LENGTH - 1 - SET done=0 - WHILE !done BEGIN - PATCH_IF index<0 BEGIN - INSERT_BYTES 0x0 1 - WRITE_ASCII 0x0 "0" - SET done=1 - END ELSE BEGIN - READ_ASCII index here (1) - SPRINT here_new $alphanumeric_next("%here%") - WRITE_ASCIIE index "%here_new%" - PATCH_IF "%here_new%" STRING_EQUAL "0" BEGIN - SET index -= 1 - END ELSE BEGIN - SET done=1 - END - END - END - END -END - - - diff --git a/iwdification/dw/sfo/general/lib_iterate.tpa b/iwdification/dw/sfo/general/lib_iterate.tpa deleted file mode 100644 index b7c26f9..0000000 --- a/iwdification/dw/sfo/general/lib_iterate.tpa +++ /dev/null @@ -1,845 +0,0 @@ -///// this set of routines processes a list of resources to collect all resources -///// needed to enable them. -///// -///// -///// The string to_check contains all the resources left to check separated by spaces and the -///// routines should be called initially with the starting resources in this list. -///// -///// The variable $iter_has_checked("%resource%") is set if we've already checked it. -///// -///// For opcodes, we don't iterate through resources in 206 (etc) as they're not really required -///// by the spell and may not exist. But we do allow a function "immunity_func" to be called on -///// the resource name (e.g., to log it). - -DEFINE_PATCH_FUNCTION check_adder - STR_VAR to_check="" - value="" - suffix="" - RET to_check -BEGIN - PATCH_IF "%suffix%" STRING_EQUAL "" BEGIN PATCH_FAIL "No suffix in check_adder (argument is %value%)" END - PATCH_IF ("%value%" STRING_COMPARE "" & "%value%" STRING_COMPARE_CASE "none") BEGIN - SPRINT to_check "%to_check% %value%.%suffix%" - END -END - -DEFINE_PATCH_FUNCTION iter_opcode - INT_VAR opcode=0 - param2=0 - STR_VAR to_check="" - resref="" - source="" - source_ext="" - immunity_func="" - RET to_check -BEGIN - PATCH_IF GAME_IS ~bg2 tob tutu tutu_totsc bgee bg2ee iwdee eet~ BEGIN - PATCH_MATCH "%opcode%" WITH - 67 135 151 BEGIN SPRINT to_check "%to_check% %resref%.cre" - END - 82 BEGIN SPRINT to_check "%to_check% %to_check% %resref%.bcs" END - 111 122 143 255 BEGIN SPRINT to_check "%to_check% %resref%.itm" END - 146 147 148 171 232 251 326 335 340 341 361 366 BEGIN SPRINT to_check "%to_check% %resref%.spl" END - 172 206 BEGIN - INNER_ACTION BEGIN - ACTION_IF "%immunity_func%" STRING_COMPARE_CASE "" BEGIN - LAF "%immunity_func%" STR_VAR resref resref_ext="SPL" source source_ext END - END - END - END - 318 321 324 BEGIN - INNER_ACTION BEGIN - ACTION_IF "%immunity_func%" STRING_COMPARE_CASE "" BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%resref%.itm" BEGIN - LAF "%immunity_func%" STR_VAR resref resref_ext="ITM" source source_ext END - END ELSE BEGIN - LAF "%immunity_func%" STR_VAR resref resref_ext="SPL" source source_ext END - END - END - END - END - 177 272 248 249 283 BEGIN SPRINT to_check "%to_check% %resref%.eff" END - 174 BEGIN SPRINT to_check "%to_check% %resref%.wav" END - 215 BEGIN SPRINT to_check "%to_check% %resref%.vvc" END - 311 BEGIN LPF iter_wish STR_VAR to_check RET to_check=to_check END END - 331 BEGIN - INNER_ACTION BEGIN - COPY_EXISTING smtables.2da override - READ_2DA_ENTRY (param2 + 1) 1 2 monsum_table - BUT_ONLY - END - SPRINT to_check "%to_check% %monsum_table%.2da" - LPF log_this STR_VAR file=smtable_entries.2da input="%param2% %monsum_table%" repeat=no END - END - 214 BEGIN // select spell - SPRINT to_check "%to_check% %resref%.sda" - END - 333 BEGIN - PATCH_IF "%resref%" STRING_EQUAL "" BEGIN - SPRINT to_check "%to_check% %source%b.spl" - END ELSE BEGIN - SPRINT to_check "%to_check% %resref%.spl" - END - END - 192 BEGIN LPF iter_fam STR_VAR to_check RET to_check=to_check END END - 127 BEGIN - PATCH_IF "%resref%" STRING_COMPARE "" BEGIN - SPRINT to_check "%to_check% %resref%.2da" - END ELSE BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="MONSUM01 MONSUM02 MONSUM03 ANISUM01 ANISUM02 MONSUM01 MONSUM02 MONSUM03 ANISUM01 ANISUM02" RET to_check=to_check END - END - END - DEFAULT END - END ELSE - PATCH_IF GAME_IS ~iwd how totlm~ BEGIN - PATCH_MATCH "%opcode%" WITH - - 67 135 151 259 410 411 BEGIN SPRINT to_check "%to_check% %resref%.cre" END - 82 BEGIN SPRINT to_check "%to_check% %to_check% %resref%.bcs" END - 111 122 143 BEGIN SPRINT to_check "%to_check% %resref%.itm" END - 146 147 148 171 BEGIN SPRINT to_check "%to_check% %resref%.spl" END - 174 BEGIN SPRINT to_check "%to_check% %resref%.wav" END - 127 BEGIN - PATCH_IF "%resref%" STRING_COMPARE "" BEGIN - SPRINT to_check "%to_check% %resref%.2da" - END ELSE BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="MONSUM01 MONSUM02 MONSUM03 ANISUM01 ANISUM02 MONSUM01 MONSUM02 MONSUM03 ANISUM01 ANISUM02" RET to_check=to_check END - END - END - 240 BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="MSUMMO1 MSUMMO2 MSUMMO3 MSUMMO4 MSUMMO5 MSUMMO6 MSUMMO7 ASUMMO1 ASUMMO2 ASUMMO3 GINSECT CDOOM MSUMMOM" RET to_check=to_check END - END - 243 BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="ADEAD ADEADL" RET to_check=to_check END - END - 246 BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="SLIZARD STROLLS SSHADOW ISTALKE CFELEMW CEELEMW CWELEMW CFELEMP CEELEMP CWELEMP CEELEMM" RET to_check=to_check END - END - 248 BEGIN - LPF iter_opcode_monsum INT_VAR param2 STR_VAR to_check 2dalist="SMONSTE DSMONST SHADES" RET to_check=to_check END - END - 262 BEGIN - SPRINT to_check "%to_check% pomimg.cre" - END - 293 BEGIN - SPRINT to_check "%to_check% spin164.spl" - END - 294 BEGIN - SPRINT to_check "%to_check% spin166.spl" - END - 295 BEGIN - SPRINT to_check "%to_check% spin179.spl" - END - DEFAULT END - END ELSE BEGIN - PATCH_FAIL "Resource_iterate does not support your game" - END -END - -DEFINE_PATCH_FUNCTION iter_opcode_monsum - INT_VAR param2=0 - STR_VAR to_check="" 2dalist="" -RET to_check -BEGIN - SET count=0 - WHILE "%2dalist%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list="%2dalist%" RET entry=entry 2dalist=list END - SPRINT $mon_2da("%count%") "%entry%" - SET count +=1 - END - SPRINT this_2da $mon_2da("%param2%") - SPRINT to_check "%to_check% %this_2da%.2da" -END - - -DEFINE_PATCH_FUNCTION iter_2da // checks 2da files used by monster summoning - STR_VAR to_check="" - RET to_check -BEGIN - COUNT_2DA_COLS colcount - PATCH_IF colcount=4 BEGIN - COUNT_2DA_ROWS 4 rowcount - FOR (i=0;ioffset_base BEGIN - LPF ARE_read_crefile STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=cre RET to_check=to_check END - LPF ARE_read_dialog STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=dlg RET to_check=to_check END - PATCH_FOR_EACH script IN override default race class general specifics BEGIN - LPF "ARE_read_script_%script%" STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=bcs RET to_check=to_check END - END - END - SPRINT entry_type trigger - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF ARE_read_trigger_script STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=bcs RET to_check=to_check END - LPF ARE_read_destination STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=are RET to_check=to_check END - END - SPRINT entry_type spawn - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - FOR (i=1;i<=10;i+=1) BEGIN - LPF "ARE_read_spawn_creature%i%" STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=cre RET to_check=to_check END - END - END - READ_LONG AREoffset_loc_restspawn offset_base - PATCH_IF offset_base>0 BEGIN - FOR (i=1;i<=10;i+=1) BEGIN - LPF "ARE_read_restspawn_creature%i%" STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=cre RET to_check=to_check END - END - END - SPRINT entry_type container - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF ARE_read_container_script STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=bcs RET to_check=to_check END - END - SPRINT entry_type door - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF ARE_read_door_script STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=bcs RET to_check=to_check END - LPF ARE_read_door_dialog STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=dlg RET to_check=to_check END - END - SPRINT entry_type item - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_secondary BEGIN - LPF ARE_read_item_resource STR_VAR offset_secondary RET value=value END - LPF check_adder STR_VAR to_check value suffix=itm RET to_check=to_check END - END - SPRINT entry_type animation - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF ARE_read_animation_resource STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=bam RET to_check=to_check END - END - SPRINT entry_type ambient - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - FOR (i=1;i<=10;i+=1) BEGIN - LPF "ARE_read_ambient_sound%i%" STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=wav RET to_check=to_check END - END - END -END - - -DEFINE_PATCH_FUNCTION iter_spl // just check all the opcodes and the BAMs, and the projectile - STR_VAR to_check="" - immunity_func="" - RET to_check -BEGIN - SPRINT source "%SOURCE_RES%" - READ_ASCII 0x3a value - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - GET_OFFSET_ARRAY ab_array 0x64 4 0x68 2 0 0 0x28 - PHP_EACH ab_array AS int=>ab_off BEGIN - READ_ASCII (ab_off+0x4) value - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - READ_SHORT (ab_off + 0x26) proj - PATCH_IF proj>1 BEGIN - SET proj -=1 - LOOKUP_IDS_SYMBOL_OF_INT value projectl proj - PATCH_IF !IS_AN_INT value BEGIN - LPF check_adder STR_VAR to_check value suffix=pro RET to_check END - END - END - GET_OFFSET_ARRAY2 eff_array ab_off ITM_V10_HEAD_EFFECTS - PHP_EACH eff_array AS int2=>offset BEGIN - READ_SHORT offset opcode - READ_ASCII (offset+0x14) resref - READ_LONG (offset+0x8) param2 - LPF iter_opcode INT_VAR opcode param2 STR_VAR immunity_func source source_ext=SPL resref to_check RET to_check=to_check END - END - END - GET_OFFSET_ARRAY gen_eff_array SPL_V10_GEN_EFFECTS - PHP_EACH gen_eff_array AS int=>offset BEGIN - READ_SHORT offset opcode - READ_ASCII (offset+0x14) resref - READ_LONG (offset+0x8) param2 - LPF iter_opcode INT_VAR opcode param2 STR_VAR immunity_func source source_ext=SPL resref to_check RET to_check=to_check END - END -END - -DEFINE_PATCH_FUNCTION iter_pro // check the BAM, WAV and VVC files, and any secondary projectile - STR_VAR to_check="" - RET to_check -BEGIN - PATCH_FOR_EACH wav_off IN 0x10 0x18 BEGIN - READ_ASCII wav_off value - LPF check_adder STR_VAR to_check value suffix=wav RET to_check END - END - PATCH_IF BUFFER_LENGTH >0x100 BEGIN // projectile data - PATCH_FOR_EACH bam_off IN 0x104 0x10c 0x136 0x13e 0x146 BEGIN - READ_ASCII bam_off value - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - END - END - PATCH_IF BUFFER_LENGTH >0x200 BEGIN // area effect data - PATCH_FOR_EACH wav_off IN 0x208 0x238 BEGIN - READ_ASCII wav_off value - LPF check_adder STR_VAR to_check value suffix=wav RET to_check END - END - PATCH_FOR_EACH anim_off IN 0x21c 0x228 0x230 0x238 BEGIN - READ_ASCII anim_off value - INNER_ACTION BEGIN - ACTION_IF FILE_EXISTS_IN_GAME "%value%.vvc" BEGIN - OUTER_SPRINT suffix vvc - END ELSE BEGIN - OUTER_SPRINT suffix bam - END - END - LPF check_adder STR_VAR to_check value suffix RET to_check END - END - PATCH_FOR_EACH proj_off IN 0x214 0x21a BEGIN - READ_SHORT proj_off proj - SET proj -=1 - PATCH_MATCH "%proj%" WITH - 0 1 79 BEGIN END - DEFAULT - LOOKUP_IDS_SYMBOL_OF_INT value projectl proj - PATCH_IF !IS_AN_INT value BEGIN - LPF check_adder STR_VAR to_check value suffix=pro RET to_check END - END - END - END - END - - - -END - -DEFINE_PATCH_FUNCTION iter_itm // just check all the opcodes, the BAMs, and whether it's a bag - STR_VAR to_check="" - immunity_func="" - RET to_check -BEGIN - SPRINT source "%SOURCE_RES%" - PATCH_FOR_EACH bam_off IN 0x3a 0x44 0x58 BEGIN - READ_ASCII bam_off value - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - END - - READ_SHORT 0x1c cat - PATCH_IF (cat=36 || cat=58) BEGIN // risk the odd false positive - SPRINT to_check "%to_check% %SOURCE_RES%.sto" - END - GET_OFFSET_ARRAY geneff_array ITM_V10_GEN_EFFECTS - PHP_EACH geneff_array AS int=>offset BEGIN - READ_SHORT offset opcode - READ_ASCII (offset+0x14) resref - LPF iter_opcode INT_VAR opcode STR_VAR immunity_func source source_ext=ITM resref to_check RET to_check=to_check END - END - GET_OFFSET_ARRAY ab_array 0x64 4 0x68 2 0 0 0x38 - PHP_EACH ab_array AS int=>ab_off BEGIN - READ_ASCII (ab_off+0x4) value - READ_SHORT (ab_off + 0x36) proj - PATCH_IF proj>1 BEGIN - SET proj -=1 - LOOKUP_IDS_SYMBOL_OF_INT value projectl proj - PATCH_IF !IS_AN_INT value BEGIN - LPF check_adder STR_VAR to_check value suffix=pro RET to_check END - END - END - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - GET_OFFSET_ARRAY2 eff_array ab_off ITM_V10_HEAD_EFFECTS - PHP_EACH eff_array AS int2=>offset BEGIN - READ_SHORT offset opcode - READ_LONG (offset+0x8) param2 - READ_ASCII (offset+0x14) resref - LPF iter_opcode INT_VAR opcode param2 STR_VAR immunity_func source source_ext=ITM resref to_check RET to_check=to_check END - END - END -END - -DEFINE_PATCH_FUNCTION iter_item_random - STR_VAR item="" - to_check="" - RET to_check -BEGIN - SET random=0 - TO_LOWER item - PATCH_IF GAME_IS "iwd totlm how" BEGIN - PATCH_IF VARIABLE_IS_SET $random_item( "%item%") BEGIN - SPRINT list $random_item("%item%") - SET random=1 - END - END ELSE BEGIN - PATCH_IF !"%item%" STRING_CONTAINS_REGEXP "rnd\(tre\|scr\|mag\)" BEGIN - INNER_PATCH "%item%" BEGIN - READ_ASCII 0x0 filestart (6) - READ_ASCII 0x6 code (2) - END - PATCH_MATCH "%filestart%" WITH - rndmag BEGIN - SPRINT 2da rndmagic - END - rndscr BEGIN - SPRINT 2da rndscrol - END - rndtre BEGIN - SPRINT 2da rndtreas - END - DEFAULT END - INNER_ACTION BEGIN - COPY_EXISTING "%2da%.2da" "%workspace%" - LPF read_rest_of_line INT_VAR row=code - 1 col=2 colmin=3 RET list=list END - BUT_ONLY - END - SET random=1 - END - END - PATCH_IF random BEGIN - WHILE "%list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list RET entry=entry list=list END - INNER_PATCH_SAVE entry "%entry%" BEGIN - REPLACE_TEXTUALLY "\*[0-9]+" "" - END - SPRINT to_check "%to_check% %entry%.itm" - END - END -END - -DEFINE_PATCH_FUNCTION iter_eff - STR_VAR to_check="" - immunity_func="" - RET to_check -BEGIN - READ_LONG 0x10 opcode - READ_LONG 0x20 param2 - READ_ASCII 0x30 resref - LPF iter_opcode INT_VAR opcode param2 STR_VAR immunity_func resref to_check RET to_check=to_check END -END - -DEFINE_PATCH_FUNCTION iter_cre - STR_VAR to_check="" - RET to_check -BEGIN - // scripts - FOR (i=0;i<5;i+=1) BEGIN - READ_ASCII (0x248 + 0x8 * i) script - PATCH_IF ("%script%" STRING_COMPARE "" && "%script%" STRING_COMPARE_CASE "none") BEGIN - SPRINT to_check "%to_check% %script%.bcs" - END - END - // dialog - PATCH_IF GAME_IS "iwd how totlm" BEGIN - READ_ASCII 0x334 dialog - END ELSE BEGIN - READ_ASCII 0x2cc dialog - END - PATCH_IF ("%dialog%" STRING_COMPARE "" && "%dialog%" STRING_COMPARE_CASE "none") BEGIN - SPRINT to_check "%to_check% %dialog%.dlg" - END - // spells known - PATCH_IF GAME_IS "iwd how totlm" BEGIN - GET_OFFSET_ARRAY splk_arr 0x308 4 0x30c 4 0 0 0xc - END ELSE BEGIN - GET_OFFSET_ARRAY splk_arr 0x2a0 4 0x2a4 4 0 0 0xc - END - PHP_EACH splk_arr AS int=>off BEGIN - READ_ASCII off spell - SPRINT to_check "%to_check% %spell%.spl" - END - // spells memorized - PATCH_IF GAME_IS "iwd how totlm" BEGIN - GET_OFFSET_ARRAY splm_arr 0x318 4 0x31c 4 0 0 0xc - END ELSE BEGIN - GET_OFFSET_ARRAY splm_arr 0x2b0 4 0x2b4 4 0 0 0xc - END - PHP_EACH splm_arr AS int=>off BEGIN - READ_ASCII off spell - SPRINT to_check "%to_check% %spell%.spl" - END - // items - PATCH_IF GAME_IS "iwd how totlm" BEGIN - GET_OFFSET_ARRAY itm_arr 0x324 4 0x328 4 0 0 0x14 - END ELSE BEGIN - GET_OFFSET_ARRAY itm_arr 0x2bc 4 0x2c0 4 0 0 0x14 - END - PHP_EACH itm_arr AS int=>off BEGIN - READ_ASCII off item - SPRINT to_check "%to_check% %item%.itm" - END -END - -DEFINE_PATCH_FUNCTION iter_script - STR_VAR to_check="" - RET to_check -BEGIN - REPLACE_EVALUATE CASE_INSENSITIVE ~\(CreateItem\|GiveItemCreate\)("\([^"]+\)"~ BEGIN - SPRINT to_check "%to_check% %MATCH2%.itm" - END - ~%MATCH1%("%MATCH2%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~\(CreateCreature\|CreateCreatureObject\|CreateCreatureObjectDoor\|CreateCreatureObjectOffScreen\|CreateCreatureObjectCopy\|CreateCreatureObjectOffset\|CreateCreatureCopyPoint\|CreateCreatureObjectEffect\|CreateCreatureObjectCopyEffect\)("\([^"]+\)"~ BEGIN - SPRINT to_check "%to_check% %MATCH2%.cre" - END - ~%MATCH1%("%MATCH2%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~CreateCreatureAtLocation(\([^,]+\),\([^,]+\),"\([^"]+\)")~ BEGIN - SPRINT to_check "%to_check% %MATCH3%.cre" - END - ~CreateCreatureAtLocation(%MATCH1%,%MATCH2%,"%MATCH3%")~ - REPLACE_EVALUATE CASE_INSENSITIVE ~AddSpecialAbility("\([^"]+\)")~ BEGIN - SPRINT to_check "%to_check% %MATCH1%.spl" - END - ~AddSpecialAbility("%MATCH1%")~ - REPLACE_EVALUATE CASE_INSENSITIVE ~\([a-z0-9]+RES\)("\([^"]+\)"~ BEGIN - SPRINT to_check "%to_check% %MATCH2%.spl" - END - ~%MATCH1%("%MATCH2%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~\(ChangeCurrentScript\|SetAIScript\|StartCutScene\)("\([^"]+\)"~ BEGIN - LPF check_adder STR_VAR to_check value="%MATCH2%" suffix=bcs RET to_check=to_check END - END - ~%MATCH1%("%MATCH2%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~\(StartDialog\|SetDialog\)("\([^"]+\)"~ BEGIN - LPF check_adder STR_VAR to_check value="%MATCH2%" suffix=dlg RET to_check=to_check END - END - ~%MATCH1%("%MATCH2%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~StartStore("\([^"]+\)"~ BEGIN - SPRINT to_check "%to_check% %MATCH1%.sto" - END - ~StartStore("%MATCH1%"~ - REPLACE_EVALUATE CASE_INSENSITIVE ~\(LeaveAreaLUA\|LeaveAreaLUAPanic\|MoveBetweenAreas\|RevealAreaOnMap\|MoveBetweenAreasEffect\|EscapeAreaObjectMove\|LeaveAreaLUAEntry\|LeaveAreaLUAPanicEntry\)("\([^"]+\)"~ BEGIN - SPRINT to_check "%to_check% %MATCH2%.are" - END - ~%MATCH1%("%MATCH2%"~ -END - -DEFINE_PATCH_FUNCTION iter_bcs - STR_VAR to_check="" - RET to_check -BEGIN - PATCH_IF "%SOURCE_RES%" STRING_COMPARE_CASE sarvie01 BEGIN // I OFFICIALLY DON'T CARE why this doesn't compile - DECOMPILE_AND_PATCH BEGIN - LPF iter_script STR_VAR to_check RET to_check=to_check END - END - END -END - - -DEFINE_PATCH_FUNCTION iter_dlg - STR_VAR to_check="" - RET to_check -BEGIN -// DECOMPILE_AND_PATCH BEGIN // don't bother - dialog scripts aren't compiled - LPF iter_script STR_VAR to_check RET to_check=to_check END - // END -END - -DEFINE_PATCH_FUNCTION iter_ini - STR_VAR to_check="" - RET to_check -BEGIN - COUNT_2DA_ROWS 3 rowcount - FOR (i=0;ioffset_base BEGIN - LPF STO_read_item_resource STR_VAR offset_base RET value=value END - SPRINT to_check "%to_check% %value%.itm" - END - SPRINT entry_type cure - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF STO_read_cure_resource STR_VAR offset_base RET value=value END - SPRINT to_check "%to_check% %value%.spl" - END -END - -DEFINE_PATCH_FUNCTION iter_wmp - STR_VAR to_check="" - RET to_check -BEGIN - SPRINT file_ext WMP - SPRINT entry_type area - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - LPF WMP_read_resource STR_VAR offset_base RET value=value END - SPRINT to_check "%to_check% %value%.are" - END - SPRINT entry_type link - LPM get_offset_array - PHP_EACH offset_array AS int=>offset_base BEGIN - FOR (i=1;i<=5;i+=1) BEGIN - LPF "WMP_read_random_area_%i%" STR_VAR offset_base RET value=value END - LPF check_adder STR_VAR to_check value suffix=are RET to_check=to_check END - END - END -END - -DEFINE_PATCH_FUNCTION iter_wish - STR_VAR to_check="" - RET to_check -BEGIN - FOR (i=1;i<=9;i+=1) BEGIN - SPRINT to_check "%to_check% spwish0%i%" - END - FOR (i=10;i<=25;i+=1) BEGIN - SPRINT to_check "%to_check% spwish%i%" - END -END - -DEFINE_PATCH_FUNCTION iter_vvc - STR_VAR to_check="" - RET to_check -BEGIN - PATCH_FOR_EACH snd_off IN 0x78 0x80 0x94 BEGIN - READ_ASCII snd_off value - LPF check_adder STR_VAR to_check value suffix=wav RET to_check END - END - PATCH_FOR_EACH bam_off IN 0x8 BEGIN - READ_ASCII bam_off value - LPF check_adder STR_VAR to_check value suffix=bam RET to_check END - END -END - -DEFINE_PATCH_FUNCTION iter_fam - STR_VAR to_check="" - RET to_check -BEGIN - SPRINT to_check "%to_check% fampsd.cre famfer.cre famimp.cre famrab.cre famdust.cre famfair.cre famcat.cre famquas.cre" -END - - - -DEFINE_ACTION_FUNCTION iter_resource - INT_VAR include_spells=0 - skip_payload_on_ignore=0 - STR_VAR to_check="" - func="" - ignore_func="" - immunity_func="" - RET output -BEGIN - ACTION_IF include_spells BEGIN - LAF return_spell_baseline RET list END - OUTER_SPRINT to_check "%to_check% %list%" - END - OUTER_SET counter=0 - OUTER_SET hundreds=0 - OUTER_SPRINT output "" - - // read in a list of random item resources - ACTION_IF GAME_IS "iwd totlm how" BEGIN - COPY_EXISTING rndtres.2da "%workspace%" - COUNT_2DA_ROWS 3 rowcount - FOR (i=0;i value pairs (or key->value pairs), return the first entries, and strip them from the list -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION return_first_pair - STR_VAR list="" - arrow="=>" - RET list - key - value - -BEGIN - INNER_PATCH_SAVE list ~%list%~ BEGIN REPLACE_TEXTUALLY ~%arrow%~ ~ %arrow% ~ END - // we can now treat the list as an ordinary list. Return the first entry, discard the second (which should be =>), return the third - LPF return_first_entry STR_VAR list RET list=list key=entry END - LPF return_first_entry STR_VAR list RET list=list discard=entry END - PATCH_IF ~%discard%~ STRING_COMPARE_CASE ~%arrow%~ BEGIN - LPF warning STR_VAR warning= "Warning: it looks as if some entry that should be a key%arrow%value list, isn't (~list~ is currently %list%, key=%key%)" END - END - LPF return_first_entry STR_VAR list RET list=list value=entry END - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT "Returning key=%key%, value=%value%; rest of list is %list%" - END -END - - -DEFINE_ACTION_FUNCTION action_return_first_pair - STR_VAR list="" - RET key - value - list -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF return_first_pair STR_VAR list RET list=list key=key value=value END - END -END - -DEFINE_ACTION_FUNCTION return_first_pair - STR_VAR list="" - RET key - value - list -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF return_first_pair STR_VAR list RET list=list key=key value=value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// load a file (which should be a 1-column array) and turn col 1 into a white-space-separated list -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION read_in_list - INT_VAR col=0 - STR_VAR file="" - location="" - locbase="" - locabs="" - RET list -BEGIN - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - OUTER_SPRINT file "%file_loc%/%file%" - COPY ~%file%~ ~%workspace%~ - SPRINT list "" - COUNT_2DA_ROWS 0 rowcount - FOR (i=0;i separator, or a list of x=>y pairs) and turn col 1-2 into an associative array list ("key1=>value1 key2=>value2" etc) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION read_in_assoc_array - STR_VAR file="" - location="" - locbase="" - locabs="" - RET list -BEGIN - LAF action_get_directory STR_VAR location locbase locabs RET file_loc=directory END - OUTER_SPRINT file "%file_loc%/%file%" - COPY ~%file%~ ~%workspace%~ - REPLACE_TEXTUALLY "=>" " " - SPRINT list "" - COUNT_2DA_ROWS 1 rowcount - FOR (i=0;i%value%~ - END - BUT_ONLY -END - -DEFINE_PATCH_FUNCTION read_in_assoc_array - STR_VAR file="" - location="" - locbase="" - locabs="" - RET list -BEGIN - INNER_ACTION BEGIN - LAF read_in_assoc_array STR_VAR file location locabs locbase RET list=list END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// count a list -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION length_of_list - STR_VAR list="" - RET value -BEGIN - // if it has no elements, return 0 - PATCH_IF "%list%" STRING_EQUAL "" BEGIN - SET value=0 - END ELSE BEGIN // if not, strip an element; it's got one more than that! - LPF return_first_entry STR_VAR list RET list2=list END - LPF length_of_list STR_VAR list="%list2%" RET val1=value END - SET value=val1+1 - END -END - - -DEFINE_ACTION_FUNCTION length_of_list - STR_VAR list="" - RET value -BEGIN - OUTER_PATCH "" BEGIN - LPF length_of_list STR_VAR list RET value=value END - END -END - -DEFINE_PATCH_FUNCTION count_list - STR_VAR list="" - RET value -BEGIN - LPF length_of_list STR_VAR list RET value=value END -END - -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////// check if element is in list (case-insensitive, no regexp) -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION element_in_list - STR_VAR element="" - list="" - RET value -BEGIN - SET value=0 - PATCH_IF "%list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list RET entry=entry list=list END - PATCH_IF "%entry%" STRING_EQUAL_CASE "%element%" BEGIN - SET value=1 - END ELSE BEGIN - LPF element_in_list STR_VAR element list RET value=value END - END - END -END - -DEFINE_ACTION_FUNCTION element_in_list - STR_VAR element="" - list="" - RET value -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF element_in_list STR_VAR element list RET value=value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Take a space-separated list containing "splitter", and return the strings to left and right of its first (or last) appearence -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION split_from_left - STR_VAR string="" - splitter="" - RET left - right -BEGIN - SET found=0 - SPRINT right "%string%" - SPRINT left "" - WHILE !found BEGIN - PATCH_IF "%right%" STRING_EQUAL "" BEGIN - PATCH_FAIL "%string% does not contain any instances of %splitter%, so I can't split_from_left on it" - END ELSE BEGIN - LPF return_first_entry STR_VAR list="%right%" RET entry=entry right=list END - PATCH_IF "%entry%" STRING_EQUAL_CASE "%splitter%" BEGIN - SET found=1 - END ELSE BEGIN - SPRINT left "%left% %entry%" - END - END - END -END - -DEFINE_ACTION_FUNCTION split_from_left - STR_VAR string="" - splitter="" - RET left - right -BEGIN - OUTER_PATCH "" BEGIN - LPF split_from_left STR_VAR string splitter RET left=left right=right END - END -END - -DEFINE_PATCH_FUNCTION split_from_right - STR_VAR string="" - splitter="" - RET left - right -BEGIN - LPF invert_list STR_VAR list="%string%" RET string=list END - LPF split_from_left STR_VAR string splitter RET right=left left=right END // watch closely - LPF invert_list STR_VAR list="%left%" RET left=list END - LPF invert_list STR_VAR list="%right%" RET right=list END -END - -DEFINE_ACTION_FUNCTION split_from_right - STR_VAR string="" - splitter="" - RET left - right -BEGIN - OUTER_PATCH "" BEGIN - LPF split_from_right STR_VAR string splitter RET left=left right=right END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Take a space-separated list; return it in reverse order -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION invert_list - STR_VAR list="" - RET list -BEGIN - SPRINT list_out "" - WHILE "%list%" STRING_COMPARE "" BEGIN - LPF return_first_entry STR_VAR list RET entry=entry list=list END - SPRINT list_out "%entry% %list_out%" - END - SPRINT list "%list_out%" -END - -DEFINE_ACTION_FUNCTION invert_list - STR_VAR list="" - RET list -BEGIN - OUTER_PATCH "" BEGIN - LPF invert_list STR_VAR list RET list=list END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Add the first 'number_to_add' elements from 'elements' to 'list' (from front); returns 'elements' with remaining elements in -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION add_elements_to_list - INT_VAR number_to_add=0 - STR_VAR list="" - elements="" - RET list -BEGIN - PATCH_IF (number_to_add>0 && "%elements%" STRING_COMPARE "") BEGIN - LPF return_first_entry STR_VAR list="%elements%" RET entry elements=list END - LPF push STR_VAR head="%entry%" tail="%list%" RET list END - SET number_to_add -=1 - LPF add_elements_to_list INT_VAR number_to_add STR_VAR list elements RET list END - END -END - -DEFINE_ACTION_FUNCTION add_elements_to_list - INT_VAR number_to_add=0 - STR_VAR list="" - elements="" - RET list -BEGIN - OUTER_PATCH "" BEGIN - LPF add_elements_to_list INT_VAR number_to_add STR_VAR list elements RET list END - END -END - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// return a random entry from a list (or "" if the list is empty) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_random_entry - STR_VAR list="" - RET entry -BEGIN - LPF length_of_list STR_VAR list RET length=value END - PATCH_IF length=0 BEGIN - SPRINT entry "" - END ELSE BEGIN - SET element=RANDOM (1 length) - WHILE element>0 BEGIN - LPF return_first_entry STR_VAR list RET entry list END - SET element = element - 1 - END - END -END - -DEFINE_ACTION_FUNCTION return_random_entry - STR_VAR list="" - RET entry -BEGIN - OUTER_PATCH "" BEGIN - LPF return_random_entry STR_VAR list RET entry END - END -END \ No newline at end of file diff --git a/iwdification/dw/sfo/general/lib_macro.tpa b/iwdification/dw/sfo/general/lib_macro.tpa deleted file mode 100644 index afef80b..0000000 --- a/iwdification/dw/sfo/general/lib_macro.tpa +++ /dev/null @@ -1,1123 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// set some hardcoded data -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -OUTER_SET maximum_character_level = 40 - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in the offsets for a file type (this has to be a macro as it's reading in content) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO read_in_offsets -BEGIN - LOCAL_SET i=0 - LOCAL_SET entry_type=0 - LOCAL_SET offset=0 - LOCAL_SET offset_length=0 - LOCAL_SET num=0 - LOCAL_SET num_length=0 - LOCAL_SET entry_length=0 - COPY ~%offset_readin_lookup_2da%.2da~ ~%offset_readin_lookup_2da%.2da~ - READ_2DA_ENTRIES_NOW offset_entry_array 5 - FOR (i=1;iids BEGIN - ACTION_IF !~%code%~ STRING_EQUAL_CASE IDS BEGIN // avoid irrelevant first line on EE installs - OUTER_SPRINT $ids_in_use("%code%") "" - OUTER_SPRINT $idscode("%ids%") "%code%" - END - END - OUTER_SET spells_in_use_read_in=1 -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in the spell codes -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO ~read_in_spellcodes~ BEGIN - - LOCAL_SPRINT filename "" - LOCAL_SET spellcode=0 - LOCAL_SET level=0 - LOCAL_SPRINT spelltype "" - ACTION_IF !VARIABLE_IS_SET macro_spellcode_skip_scrolls BEGIN - OUTER_SET macro_spellcode_skip_scrolls=0 - END - ACTION_IF !VARIABLE_IS_SET macro_spellcodes_read BEGIN - OUTER_SET macro_spellcodes_read=0 - END - - ACTION_IF !macro_spellcodes_read BEGIN - OUTER_SET macro_spellcodes_read=1 - - COPY_EXISTING ~spell.ids~ ~override~ - READ_2DA_ENTRIES_NOW ~spell_array~ 2 - FOR (i=0;i<~spell_array~;i=i+1) BEGIN - READ_2DA_ENTRY_FORMER ~spell_array~ i 0 ~spellcode~ - PATCH_IF !~%spellcode%~ STRING_EQUAL_CASE ~IDS~ BEGIN - INNER_PATCH_SAVE ~spellcode~ ~%spellcode%~ BEGIN - READ_ASCII 0x1 ~level~ (1) - SET ~level~=~level~-1 - DELETE_BYTES 0 1 - INSERT_BYTES 0 4 - PATCH_IF (~spellcode~<2000) BEGIN - WRITE_ASCII 0x0 ~SPPR~ (4) - SPRINT ~spelltype~ ~priest~ - END ELSE - PATCH_IF (~spellcode~<3000) BEGIN - WRITE_ASCII 0x0 ~SPWI~ (4) - SPRINT ~spelltype~ ~wizard~ - END ELSE - PATCH_IF (~spellcode~<4000) BEGIN - WRITE_ASCII 0x0 ~SPIN~ (4) - SPRINT ~spelltype~ ~innate~ - SET level=0 - END ELSE - PATCH_IF (~spellcode~<5000) BEGIN - WRITE_ASCII 0x0 ~SPCL~ (4) - SPRINT ~spelltype~ ~innate~ - SET level=0 - END - END - - PATCH_MATCH "%spellcode%" WITH // special cases handle inconsistent vBG2/BG2EE/BP conventions for remove/dispel magic - SPWI302 BEGIN - SPRINT spell_ID WIZARD_DISPEL_MAGIC - END - SPWI326 BEGIN - SPRINT spell_ID WIZARD_TRUE_DISPEL_MAGIC - END - DEFAULT - READ_2DA_ENTRY_FORMER ~spell_array~ i 1 ~spell_ID~ - END - SPRINT ~%spell_ID%~ ~%spellcode%~ - SET ~%spell_ID%_LEVEL~=~level~ - SPRINT ~%spell_ID%_TYPE~ ~%spelltype%~ - END - END - BUT_ONLY - ACTION_FOR_EACH hlspell IN CLERIC_GLOBE_OF_BLADES CLERIC_SUMMON_DEVA CLERIC_SUMMON_FALLEN_DEVA - CLERIC_IMPLOSION CLERIC_MASS_RAISE_DEAD CLERIC_AURA_OF_FLAMING_DEATH - CLERIC_ELEMENTAL_TRANSFORMATION_FIRE CLERIC_ELEMENTAL_TRANSFORMATION_EARTH - CLERIC_ENERGY_BLADES CLERIC_STORM_OF_VENGEANCE CLERIC_ELEMENTAL_SWARM - CLERIC_GREATER_ELEMENTAL_SWARM WIZARD_ENERGY_BLADES WIZARD_IMPROVED_ALUCRITY - WIZARD_DRAGONS_BREATH WIZARD_COMET WIZARD_SUMMON_PLANATAR_EVIL WIZARD_SUMMON_PLANATAR_GOOD - BEGIN - OUTER_SPRINT ~%hlspell%_TYPE~ ~hla~ - END - - <<<<<<<< .../stratagems-inline/extra_spells_core.2da - CLERIC_CHROMATIC_ORB SPDR101 0 priest - CLERIC_WEB SPDR201 1 priest - CLERIC_LIGHTNING_BOLT SPDR301 2 priest - CLERIC_IMPROVED_INVISIBILITY SPDR401 3 priest - CLERIC_CHAOS SPDR501 4 priest - CLERIC_CHAIN_LIGHTNING SPDR601 5 priest - PSIONIC_SUPERIOR_INVISIBILITY SPIN544 0 innate - DARK_MOON_BLINDNESS SPDM101 0 innate - DARK_MOON_BLUR SPDM102 0 innate - DARK_MOON_FROZEN_FIST SPDM105 0 innate - DARK_MOON_MIRROR_IMAGE SPDM106 0 innate - DARK_MOON_VAMPIRIC_TOUCH SPDM108 0 innate - DWARVEN_DEFENDER_DEFENSIVE_STANCE SPDWD02 0 innate - >>>>>>>> - <<<<<<<< .../stratagems-inline/extra_spells_demivrgvs.2da - CLERIC_SUNSCORCH SPPR116 0 priest - CLERIC_CREATE_UNDEAD SPPR623 5 priest - WIZARD_SUMMON_SHADOW SPWI501 4 wizard - WIZARD_CREATE_UNDEAD SPWI623 5 wizard - CLERIC_SUMMON_SHAMBLING_MOUND SPPR702 6 priest - CLERIC_STALKER SPPR702 6 priest - CLERIC_SPHERE_OF_CHAOS SPPR709 6 priest - WIZARD_WAVES_OF_FATIGUE SPWI508 4 wizard - >>>>>>>> - <<<<<<<< .../stratagems-inline/extra_spells_refinements.2da - WIZARD_CREATE_BONEGUARD TG#BONE 8 hla - WIZARD_SPELL_WORM CA#SPWO 8 hla - WIZARD_MALAVONS_FURY TG#GMAL 8 hla - WIZARD_FORESIGHT TG#FORS 8 hla - WIZARD_AEGIS TG#AEGI 8 hla - CLERIC_DIVINE_INTERVENTION_EVIL TG#DIVE 6 hla - CLERIC_DIVINE_SHELL TG#DIVN 6 hla - CLERIC_UNION TG#UNIO 6 hla - BARBARIAN_GREATER_WAR_CRY TG#GCRY 0 innate - BARBARIAN_TIRELESS_RAGE TG#TLES 0 innate - KENSAI_TRUE_KAI TG#GKAI 0 innate - ARCHER_PRECISION TG#PREC 0 innate - ASSASSIN_NERVE_POISON TG#NPOI 0 innate - MONK_DRAGON_FIST TG#BL03 0 innate - MONK_CHANT TG#CHNT 0 innate - MONK_DIAMOND_SOUL TG#DIAM 0 innate - MONK_SHADOWLESS_KICK TG#BL09 0 innate - MONK_TIGER_STRIKE TG#TIGS 0 innate - >>>>>>>> - - OUTER_SPRINT macro_to_do core - ACTION_IF !VARIABLE_IS_SET refinements BEGIN - OUTER_SET refinements=0 - END - ACTION_IF refinements BEGIN OUTER_SPRINT macro_to_do "%macro_to_do% refinements" END - ACTION_IF !VARIABLE_IS_SET demivrgvs BEGIN - OUTER_SET demivrgvs=0 - END - ACTION_IF demivrgvs BEGIN OUTER_SPRINT macro_to_do "%macro_to_do% demivrgvs" END - OUTER_WHILE "%macro_to_do%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list="%macro_to_do%" RET macro_entry=entry macro_to_do=list END - COPY ~.../stratagems-inline/extra_spells_%macro_entry%.2da~ ~override~ - READ_2DA_ENTRIES_NOW temp_array 4 - FOR (i=0;i=0 || INDEX_BUFFER (CASE_INSENSITIVE SPPR)>=0) BEGIN - SPRINT macro_scrolls ~%macro_scrolls% %filename%~ - END - END - BUT_ONLY - END - END - BUT_ONLY - END - ACTION_IF GAME_IS "iwd how totlm iwdee" BEGIN - COPY_EXISTING_REGEXP - ~sc.*\.itm~ ~override~ - ~sppr.*\.itm~ override - ~spwi.*\.itm~ override - LPF ITM_read_category RET value END - PATCH_IF value=11 BEGIN // scroll - PATCH_IF (INDEX_BUFFER (CASE_INSENSITIVE SPWI)>=0 || INDEX_BUFFER (CASE_INSENSITIVE SPPR)>=0) BEGIN - SPRINT macro_scrolls ~%macro_scrolls% %SOURCE_RES%~ - END - END - BUT_ONLY - END - ACTION_CLEAR_ARRAY patch_data - ACTION_DEFINE_ASSOCIATIVE_ARRAY patch_data BEGIN - match=>"opcode=147" - log_scroll=>null - END - LAF edit_item INT_VAR silent=1 STR_VAR item=~%macro_scrolls%~ editstring=~patch_effect=>patch_data~ END - COPY ~%workspace%/scroll_map.txt~ ~%workspace%~ - READ_2DA_ENTRIES_NOW scroll_map_data 2 - FOR (i=0;ioffset_secondary BEGIN - READ_BYTE offset_secondary+0xc timing - PATCH_IF timing=9 BEGIN // we only care about instant/permanent effects - READ_SHORT offset_secondary opcode - READ_LONG offset_secondary+0x4 parameter1 - READ_LONG offset_secondary+0x8 parameter2 - READ_ASCII offset_secondary+0x14 resource - PATCH_IF "%resource%" STRING_COMPARE "" BEGIN - SPRINT resource_drop "%resource_drop% %resource%" - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>%resource% opcode=>%opcode% timing=>9 target=>2~" - END ELSE BEGIN - PATCH_MATCH "%opcode%" WITH - 101 142 169 267 BEGIN - SPRINT temp EVALUATE_BUFFER "%%opcode%_sec%" - SPRINT "%opcode%_sec" "%temp% %parameter2%" - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>null opcode=>%opcode% timing=>9 target=>2~" - END - DEFAULT - SPRINT tempadd "%tempadd% add_effect_inline=>~parameter1=>%parameter1% parameter2=>%parameter2% resource=>null opcode=>%opcode% timing=>9 target=>2~" - SPRINT opcode_drop "%opcode_drop% %opcode%" - END - END - END - END - BUT_ONLY - END // end of ACTION_IF - END // end of INNER_ACTION - PATCH_IF "%opcode_drop%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "delete_effect=>~opcode is_in [%opcode_drop%]~" - END - PATCH_FOR_EACH opcode IN 101 142 169 267 BEGIN - SPRINT list EVALUATE_BUFFER "%%opcode%_sec%" - PATCH_IF "%list%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "%tempremove% delete_effect=>~opcode=%opcode% and parameter2 is_in [%list%]~" - END - END - PATCH_IF "%resource_drop%" STRING_COMPARE_CASE "" BEGIN - SPRINT tempremove "%tempremove% delete_effect=>~resource is_in [%resource_drop%]~" - END - SPRINT "RESREF_%spell%_KIT_EFFECTS_ADD" "%tempadd%" - SPRINT "RESREF_%spell%_KIT_EFFECTS_REMOVE" "%tempremove%" - END // end of PATCH_IF - END - DEFAULT - END - END - END - BUT_ONLY - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -DEFINE_PATCH_FUNCTION log_scroll - INT_VAR offset_secondary=0 - STR_VAR offset_base="" - filename="" -BEGIN - LPF ITM_read_resource INT_VAR offset_secondary STR_VAR offset_base RET spell=value END - LPF log_this STR_VAR file=scroll_map.txt input= ~%spell% %filename%~ END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in the saving throws -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO ~read_in_saving_throws~ BEGIN - ACTION_IF !VARIABLE_IS_SET ~macro_read_in_saving_throws~ BEGIN - // start by defining a map from core class to saving throw file - ACTION_CLEAR_ARRAY class_file_save_map - ACTION_DEFINE_ASSOCIATIVE_ARRAY class_file_save_map BEGIN - MAGE => WIZ - FIGHTER => WAR - CLERIC => PRS - THIEF => ROG - BARD => ROG - PALADIN => WAR - DRUID => PRS - RANGER => WAR - MONK => MONK - SORCERER => WIZ - END - - // read in the base saving throws - - ACTION_FOR_EACH core_type IN WIZ WAR PRS ROG MONK BEGIN - COPY_EXISTING ~SAVE%core_type%.2da~ ~override~ - READ_2DA_ENTRIES_NOW save_array_temp 20 - SET index=1 - PATCH_FOR_EACH type IN death wand polymorph breath spell BEGIN - FOR (level=1;level<=maximum_character_level;level=level+1) BEGIN - READ_2DA_ENTRY_FORMER save_array_temp index level savenum - SET $saving_throw_value_base(~%core_type%~ ~%level%~ ~%type%~)=savenum - END - SET index = index + 1 - END - BUT_ONLY - END - OUTER_SPRINT ~macro_read_in_saving_throws~ ~~ - END - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in thac0 -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO ~read_in_thac0~ BEGIN - ACTION_IF !VARIABLE_IS_SET ~macro_read_in_thac0~ BEGIN - COPY_EXISTING ~thac0.2da~ ~override~ READ_2DA_ENTRIES_NOW ~thac0_table_read~ 10 - OUTER_SPRINT ~macro_read_in_thac0~ ~~ - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in hit point levels for each class -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO ~read_in_hit_point_levels~ BEGIN - - ACTION_IF !VARIABLE_IS_SET macro_read_in_hit_point_levels BEGIN - // do it this way if it's externalised - - ACTION_IF FILE_EXISTS_IN_GAME ~hpbarb.2da~ BEGIN - COPY_EXISTING hpclass.2da override - READ_2DA_ENTRIES_NOW hpclass_readout 2 - FOR (i=1;i 4 - FIGHTER => 10 - CLERIC => 8 - THIEF => 6 - BARD => 6 - PALADIN => 10 - DRUID => 8 - RANGER => 10 - SORCERER => 4 - MONK => 8 - BARBARIAN => 12 - END - ACTION_DEFINE_ASSOCIATIVE_ARRAY hp_hardcoded_array_mod BEGIN - MAGE => 1 - FIGHTER => 3 - CLERIC => 2 - THIEF => 2 - BARD => 2 - PALADIN => 3 - DRUID => 2 - RANGER => 3 - SORCERER => 1 - MONK => 2 - BARBARIAN => 3 - END - ACTION_PHP_EACH hp_hardcoded_array_dice AS class => dice BEGIN - OUTER_SET runningtotal=0 - OUTER_SET modifier = $hp_hardcoded_array_mod(~%class%~) - ACTION_IF ~%class%~ STRING_EQUAL MAGE OR ~%class%~ STRING_EQUAL_CASE SORCERER BEGIN - OUTER_SET dicemax=10 - END ELSE BEGIN - OUTER_SET dicemax=9 - END - OUTER_FOR (i=1;i<=dicemax;i=i+1) BEGIN - OUTER_SET $class_hp_maximum(~%class%~ ~%i%~)=i * dice - OUTER_SET $class_hp_minimum(~%class%~ ~%i%~)=i - END - OUTER_FOR (i=dicemax + 1;i<41;i=i+1) BEGIN - OUTER_SET $class_hp_maximum(~%class%~ ~%i%~)= (i - dicemax)*modifier + dicemax * dice - OUTER_SET $class_hp_minimum(~%class%~ ~%i%~)= (i - dicemax)*modifier + dicemax - END - END - - END - OUTER_SPRINT read_in_hit_point_levels ~~ - - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in item types -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO read_in_item_types -BEGIN - ACTION_DEFINE_ASSOCIATIVE_ARRAY item_location_map BEGIN - 1 => amulet - 2 => armor - 3 => belt - 4 => boots - 5 => quiver - 6 => gloves - 7 => helmet - 10 => ring - 12 => shield - 14 => quiver - 15 => two-handed - 16 => weapon - 17 => weapon - 18 => weapon - 19 => weapon - 20 => weapon - 21 => weapon - 22 => weapon - 23 => weapon - 24 => weapon - 25 => weapon - 26 => weapon - 27 => weapon - 28 => weapon - 29 => weapon - 30 => two-handed - 31 => quiver - 32 => cloak - 35 => qitem - 41 => shield - 44 => weapon - 47 => shield - 49 => shield - 53 => shield - 57 => two-handed - 60 => armor - 61 => armor - 62 => armor - 63 => armor - 64 => armor - 65 => armor - 66 => armor - 69 => weapon - 72 => helmet - 73 => gloves - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in proficiencies for each weapon -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO read_in_proficiencies BEGIN - ACTION_IF !VARIABLE_IS_SET proficiencies_read_in BEGIN - OUTER_SET proficiencies_read_in=1 - COPY_EXISTING weapprof.2da ~%workspace%~ - REPLACE_TEXTUALLY ~NAME_REF~ ~BLOOK NAME_REF~ // just to make column entries match up - READ_2DA_ENTRIES_NOW MACRO_weapprof_data 10 - COUNT_2DA_COLS MACRO_colcount - FOR (i=1;iHELMET - 1=>ARMOR - 2=>SHIELD - 3=>GLOVES - 4=>LRING - 5=>RRING - 6=>AMULET - 7=>BELT - 8=>BOOTS - 9=>WEAPON1 - 10=>WEAPON2 - 11=>WEAPON3 - 12=>WEAPON4 - 13=>QUIVER1 - 14=>QUIVER2 - 15=>QUIVER3 - 16=>QUIVER4 - 17=>CLOAK - 18=>QUICKITEM1 - 19=>QUICKITEM2 - 20=>QUICKITEM3 - 21=>INV1 - 22=>INV2 - 23=>INV4 - 24=>INV5 - 25=>INV6 - 26=>INV7 - 27=>INV8 - 28=>INV9 - 29=>INV10 - 30=>INV11 - 31=>INV12 - 32=>INV13 - 33=>INV14 - 34=>INV15 - 35=>INV16 - 36=>MAGICWEAPON - END - ACTION_PHP_EACH item_slot_map_back AS slotnum=>slotname BEGIN - OUTER_SET $item_slot_map( ~%slotname%~)=slotnum - END - END -END - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get an offset array (as stipulated in the values of ~entry_type~ and ~file_ext~) and fill offset_array with it -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_MACRO get_offset_array BEGIN - - LOCAL_SET offset_loc=0 - LOCAL_SET offset_length=0 - LOCAL_SET entrynum_loc=0 - LOCAL_SET entrynum_length=0 - LOCAL_SET entry_length=0 - LOCAL_SET temp=0 - LOCAL_SET entrynum=0 - PATCH_CLEAR_ARRAY offset_array - TO_UPPER file_ext - SET offset_loc=$ ~%file_ext%offset_loc~(~%entry_type%~) - SET offset_length=$ ~%file_ext%offset_length~(~%entry_type%~) - SET entrynum_loc=$ ~%file_ext%entrynum_loc~(~%entry_type%~) - SET entrynum_length=$ ~%file_ext%entrynum_length~(~%entry_type%~) - SET entry_length=$ ~%file_ext%entry_length~(~%entry_type%~) - PATCH_IF entrynum_loc>0 BEGIN - GET_OFFSET_ARRAY offset_array offset_loc offset_length entrynum_loc entrynum_length 0 0 entry_length - END ELSE BEGIN - PATCH_MATCH offset_length WITH - 1 BEGIN - READ_BYTE offset_loc offset_start - END - 2 BEGIN - READ_SHORT offset_loc offset_start - END - DEFAULT - READ_LONG offset_loc offset_start - END - SET entrynum=0 - entrynum_loc - FOR (i=0;i>>>>>>> - COPY + temp_file ~%workspace%/temp_file~ EVALUATE_BUFFER - END - PATCH_REINCLUDE ~%workspace%/temp_file~ - - -END - -DEFINE_ACTION_MACRO action_reinclude_this BEGIN - <<<<<<<< temp_file - %input% - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file~ - - -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/// read in a row of a table into a string of variables (the table lives in 2da_array, we look at 2da_row, and read in var_list) -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_MACRO read_in_2da_row -BEGIN - LOCAL_SET col=0 - LOCAL_SPRINT list ~%var_list%~ - LOCAL_SPRINT input "" - PATCH_SILENT - WHILE ~%list%~ STRING_COMPARE_CASE "" BEGIN - LPF return_first_entry STR_VAR list RET list=list entry=entry END - SPRINT input ~READ_2DA_ENTRY_FORMER 2da_array %2da_row% %col% %entry%~ - LAUNCH_PATCH_MACRO patch_reinclude_this - col=col+1 - END - PATCH_VERBOSE -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read in a file as an associative array (file is array_to_read, array is array_name) -///////////// -///////////// read_array_location says where the array is; if it is blank, use the default. -///////////// Other variables: read_array_backwards, read_array_column, read_array_is_inline -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_MACRO read_in_assoc_array BEGIN - ACTION_IF !VARIABLE_IS_SET read_array_location BEGIN - OUTER_SPRINT read_array_location "" - END - ACTION_IF "%read_array_is_inline%" STRING_EQUAL_CASE "yes" BEGIN - OUTER_SPRINT read_array_location ".../stratagems-inline" - END ELSE BEGIN - ACTION_IF "%read_array_location%" STRING_EQUAL_CASE "" BEGIN - LAF action_get_directory RET location=directory END - OUTER_SPRINT read_array_location "%location%" - END - END - ACTION_IF !VARIABLE_IS_SET read_array_column BEGIN - OUTER_SET read_array_column=1 - END - ACTION_IF ("%read_array_backwards%" STRING_EQUAL_CASE yes) BEGIN - OUTER_SET array_loc_0=read_array_column - OUTER_SET array_loc_1=0 - END ELSE BEGIN - OUTER_SET array_loc_0=0 - OUTER_SET array_loc_1=read_array_column - END - COPY - "%read_array_location%/%array_to_read%" "%workspace%" - REPLACE_TEXTUALLY "=>" " " - COUNT_2DA_ROWS 2 array_rowcount - FOR (array_row=0;array_row1 BEGIN - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount_campaign - FOR (i=0;i0 BEGIN - SET offset_loc=$ "%file_ext%offset_loc"("%predecessor%") - SET offset_len=$ "%file_ext%offset_length"("%predecessor%") - LPF get_field_value INT_VAR loc=offset_loc length=offset_len RET offset=value END - SET entry_length=$ "%file_ext%entry_length"("%predecessor%") - LPF return_lowest_secondary_index INT_VAR offset_base=offset+(num_entries - 1)*entry_length STR_VAR entry_type="%predecessor%" secondary_type RET ind=value END - LPF return_secondary_entry_count INT_VAR offset_base=offset+(num_entries - 1)*entry_length STR_VAR entry_type="%predecessor%" secondary_type RET num=value END - SET value=ind+num - END ELSE BEGIN - LPF return_first_secondary_index STR_VAR entry_type="%predecessor%" secondary_type RET value END - END - END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// return secondary type index and number of entries -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_secondary_data - INT_VAR offset_base=0 - ind_to_return=0 - STR_VAR entry_type="" - secondary_type="" - RET index - number -BEGIN - PATCH_IF !VARIABLE_IS_SET "lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc_%ind_to_return%" BEGIN - SET index="-1" - SET number=0 - END ELSE BEGIN - SET ind_loc="lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc_%ind_to_return%" - SET ind_len="lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%ind_to_return%" - SET num_loc="lookup_%file_ext%_%entry_type%_%secondary_type%_num_loc_%ind_to_return%" - SET num_len="lookup_%file_ext%_%entry_type%_%secondary_type%_num_length_%ind_to_return%" - LPF get_field_value INT_VAR loc=ind_loc+offset_base length=ind_len RET index=value END - LPF get_field_value INT_VAR loc=num_loc+offset_base length=num_len RET number=value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// update secondary type index and number of entries -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION increment_secondary_data - INT_VAR offset_base=0 - ind_to_write=0 - index=99999 - number=99999 - STR_VAR entry_type="" - secondary_type="" -BEGIN - PATCH_IF VARIABLE_IS_SET "lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc_%ind_to_write%" BEGIN - SET ind_loc="lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc_%ind_to_write%" - SET ind_len="lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%ind_to_write%" - SET num_loc="lookup_%file_ext%_%entry_type%_%secondary_type%_num_loc_%ind_to_write%" - SET num_len="lookup_%file_ext%_%entry_type%_%secondary_type%_num_length_%ind_to_write%" - LPF get_field_value INT_VAR loc=ind_loc+offset_base length=ind_len RET index_old=value END - LPF get_field_value INT_VAR loc=num_loc+offset_base length=num_len RET number_old=value END - PATCH_IF !(index=99999) BEGIN - LPF set_field_value INT_VAR loc=ind_loc+offset_base length=ind_len arguments=index_old+index END - END - PATCH_IF !(number=99999) BEGIN - LPF set_field_value INT_VAR loc=num_loc+offset_base length=num_len arguments=number_old+number END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// update offsets -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION update_offsets - INT_VAR bytes_added=0 - STR_VAR entry_type="" -BEGIN - CLEAR_ARRAY already_updated - LPF return_offset STR_VAR entry_type file_ext RET entry_offset=value END - PHP_EACH ~%file_ext%offset_loc~ AS this_type =>discard BEGIN - PATCH_IF !VARIABLE_IS_SET "do_not_update_offset_%file_ext%_%this_type%" BEGIN - PATCH_IF ~%this_type%~ STRING_COMPARE_CASE ~%entry_type%~ BEGIN - LPF return_offset STR_VAR entry_type="%this_type%" file_ext RET this_offset=value offset_loc END - PATCH_MATCH 1 WITH - this_offsetentry_offset BEGIN - LPF increment_offset INT_VAR arguments=bytes_added STR_VAR entry_type="%this_type%" file_ext END - END - this_offset=entry_offset BEGIN // the awkward case. - // - // If there are any entries already in the being-updated offset, then previously there were none in the modified one (else the two couldn't - // have had the same index). So we can and should update. These are caught by return_number_entries > 0. - // - // If there is no actual count (as in the "item slots" section of CRE) because the section is of fixed size, it should always be incremented, - // since it comes under the above category. These are caught by return_number_entries = -1. - // (This also catches the effect field in ITM/SPL, but that's okay because it should always be last anyway.) - // - // When initially there were no fields, we check if there are any already-present fields of the type being added. If there are, we definitely should *not* - // update. - // - // If there aren't (i.e. if both were originally empty) we fall back on the default precedence, i.e. the order the fields were listed in lib_whatever - // - // (for efficiency, we only check for fields if default precedence would otherwise apply) - // - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET number_here=value END - PATCH_IF (!number_here=0 || VARIABLE_IS_SET "lookup_%file_ext%_%entry_type%_%this_type%_ind_loc_0") BEGIN - LPF increment_offset INT_VAR arguments=bytes_added STR_VAR entry_type="%this_type%" file_ext END - END ELSE BEGIN - PATCH_IF $ ~%file_ext%precedence~(~%entry_type%~) < $ ~%file_ext%precedence~(~%this_type%~) BEGIN - LPF return_number_entries STR_VAR entry_type file_ext RET number_orig=value END - PATCH_IF number_orig=0 BEGIN - LPF increment_offset INT_VAR arguments=bytes_added STR_VAR entry_type="%this_type%" file_ext END - END - END - END - END - DEFAULT - PATCH_FAIL "Shouldn't happen" - END - END - END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// update lookup indices for a particular entry of type entry_type beginning at offset_base -///////////// -///////////// We assume access, in background, to a variable number_added_[entry_type] for each entry type, and lowest_added_[entry_type] likewise, -///////////// that records the lowest point at which one was added. Any index greater than that point gets incremented; any index equal to that point -///////////// gets incremented if a nonzero number of entries are associated with it -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION update_lookup_indices - INT_VAR offset_base=0 - STR_VAR entry_type="" -BEGIN - PHP_EACH ~%file_ext%offset_loc~ AS secondary_type=>discard BEGIN - LPF update_lookup_indices_of_type INT_VAR offset_base STR_VAR entry_type secondary_type END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// update lookup indices for a particular entry of type entry_type beginning at offset_base, with respect to a particular secondary. -///////////// -///////////// We assume access, in background, to a variable number_added_[entry_type] for each entry type, and lowest_added_[entry_type] likewise, -///////////// that records the lowest point at which one was added. Any index greater than that point gets incremented; any index equal to that point -///////////// gets incremented if a nonzero number of entries are associated with it -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION update_lookup_indices_of_type - INT_VAR offset_base=0 - STR_VAR entry_type="" - secondary_type="" -BEGIN - PHP_EACH ~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc~ AS int=>index BEGIN - SET len=~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%int%~ - LPF get_field_value INT_VAR loc=index+offset_base length=len RET value END - PATCH_IF VARIABLE_IS_SET "number_added_%secondary_type%" BEGIN - PATCH_IF value>="lowest_added_%secondary_type%" BEGIN - SET value +="number_added_%secondary_type%" - LPF set_field_value INT_VAR loc=index+offset_base length=len arguments=value END - END ELSE BEGIN - PATCH_IF value="lowest_added_%secondary_type%" BEGIN - SET numloc=~lookup_%file_ext%_%entry_type%_%secondary_type%_num_loc_%int%~ - SET numlen=~lookup_%file_ext%_%entry_type%_%secondary_type%_num_length_%int%~ - SET temp=$ ~%file_ext%entrynum_loc~(~%entry_type%~) - LPF get_field_value INT_VAR loc=numloc+offset_base length=numlen RET number END - PATCH_IF number>0 BEGIN - SET value +="number_added_%secondary_type%" - LPF set_field_value INT_VAR loc=index+offset_base length=len arguments=value END - END - END - END - END - END -END - -DEFINE_PATCH_FUNCTION set_lookup_indices_of_type - INT_VAR offset_base=0 - index=0 - STR_VAR entry_type="" - secondary_type="" -BEGIN - PHP_EACH ~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc~ AS int=>entry_ind BEGIN - SET len=~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%int%~ - LPF set_field_value INT_VAR loc=entry_ind+offset_base length=len arguments=index END - END -END -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// increment lookup indices for a particular entry of type entry_type beginning at offset_base, with respect to a particular secondary. -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION increment_lookup_indices - INT_VAR offset_base=0 - increment=0 - STR_VAR entry_type="" - secondary_type="" -BEGIN - PHP_EACH ~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc~ AS int=>index BEGIN - SET len=~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%int%~ - LPF get_field_value INT_VAR loc=index+offset_base length=len RET value END - SET value += increment - LPF set_field_value INT_VAR loc=index+offset_base length=len arguments=value END - END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Return the total number of secondary-type entries associated with the given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_secondary_entry_count - INT_VAR offset_base=0 - STR_VAR entry_type="" - secondary_type="" - RET value -BEGIN - SET value=0 - PHP_EACH ~lookup_%file_ext%_%entry_type%_%secondary_type%_num_loc~ AS int=>index BEGIN - SET len=~lookup_%file_ext%_%entry_type%_%secondary_type%_num_length_%int%~ - LPF get_field_value INT_VAR loc=index+offset_base length=len RET num_here=value END - SET value +=num_here - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Return the lowest secondary-type index associated with the given entry -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_lowest_secondary_index - INT_VAR offset_base=0 - STR_VAR entry_type="" - secondary_type="" - RET value -BEGIN - SET value=9999999 - PHP_EACH ~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_loc~ AS int=>index BEGIN - SET len=~lookup_%file_ext%_%entry_type%_%secondary_type%_ind_length_%int%~ - LPF get_field_value INT_VAR loc=index+offset_base length=len RET ind_here=value END - SET value = value < ind_here ? value : ind_here - END - PATCH_IF value=9999999 BEGIN - SET value="-1" - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Copy "num_to_copy" copies of the entry type starting at index "index", and insert "num_of_copies" of them at that index -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION insert_copies_at_index - INT_VAR index=0 - index_of_copy="-1" - blank=0 - num_to_copy=0 - num_of_copies=0 - STR_VAR entry_type="" - RET value -BEGIN - PATCH_IF index_of_copy<0 BEGIN - SET index_of_copy=index - END - LPF return_offset INT_VAR offset_num=index STR_VAR entry_type file_ext RET offset=value END - LPF return_offset INT_VAR offset_num=index_of_copy STR_VAR entry_type file_ext RET offset_of_copy=value END - SET entry_length=$ ~%file_ext%entry_length~(~%entry_type%~) - PATCH_IF !blank BEGIN - READ_ASCII offset_of_copy template (entry_length*num_to_copy) - END - SET value=0 - FOR (i=0;i%checkGT%" - END ELSE - PATCH_IF "%checkLT%" STRING_COMPARE "" BEGIN - SPRINT match "%match%<%checkLT%" - END ELSE - PATCH_IF "%check%" STRING_COMPARE "" BEGIN - PATCH_IF IS_AN_INT check BEGIN - SPRINT match "%match%=%check%" - END - ELSE BEGIN - SPRINT match "%match% is %check%" - END - END - LPF evaluate_expression INT_VAR offset_secondary offset_base boolean=1 STR_VAR filename file_ext expression="%match%" arguments="%match_parameter%" RET value=value END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// general templates to apply patches from a list -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION apply_patches - INT_VAR - offset_secondary=0 - really_no_default=0 - entry_index=0 - parent_index=0 - stop_after_match=0 - STR_VAR - edits="" - arguments="" - file_ext="" - filename="" - offset_base="0" - is_conditional="no" // a bit of a misnomer. We really mean: is it being called by one of patch_entry etc. (If so, we ignore match etc commands) - RET - value // 1 if any patch is made, 0 otherwise -BEGIN - SET value=0 - LPF edit_sanity_check STR_VAR edits task="applying patch to %filename%.%file_ext%" END - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - SPRINT ~edits~ ~%arguments%~ - END - PATCH_FOR_EACH var IN check checkLT checkGT match BEGIN - SPRINT "%var%" "" - END - // go through first to get any match (etc) instructions - PATCH_IF "%is_conditional%" STRING_COMPARE_CASE yes BEGIN - PHP_EACH "%edits%" AS function=>args BEGIN - PATCH_MATCH "%function%" WITH - "checkGT" "checkLT" "check" "match" BEGIN - SPRINT "%function%" "%args%" - END - DEFAULT END - END - END - // evaluate condition - PATCH_MATCH "%match%%check%%checkGT%%checkLT%" WITH - "" BEGIN - SET found_match=1 - END - DEFAULT - LPF evaluate_condition STR_VAR filename file_ext match check checkLT checkGT RET found_match=value END - PATCH_IF found_match BEGIN SET value=1 END - END - PATCH_IF found_match BEGIN - // ensure that none of the expressions we're trying to match has inherited a numerical value from elsewhere! - PATCH_FOR_EACH string IN - checkGT checkLT check match litvar_ var_ type number_to_add at_end insert_point clone_above clone_at_top clone_at_bottom BEGIN - SPRINT "%string%" "" - END - - PHP_EACH ~%edits%~ AS function => args BEGIN - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT ~input to apply_patches: %function% %args%~ - END - INNER_PATCH_SAVE ~function2~ ~%function%~ BEGIN - REPLACE_TEXTUALLY ~'[0-9]+~ ~~ // handle duplicates - REPLACE_TEXTUALLY ~'~ ~~ // handle duplicates - END - PATCH_IF debug_variable=2 BEGIN PATCH_PRINT ~Running function %function2%~ END - SET default=0 - PATCH_MATCH ~%function2%~ WITH - "number_to_add" "at_end" "insert_point" "type" "clone_above" "clone_at_top" "clone_at_bottom" "only_once"// these aren't function calls - BEGIN - PATCH_IF ~%is_conditional%~ STRING_EQUAL_CASE ~no~ BEGIN - PATCH_FAIL "The patch to %filename%.%file_ext% is applied unconditionally but contains conditions or type specification" - END - END - checkGT checkLT check match BEGIN - END - literal - BEGIN - LPF patch_reinclude_this STR_VAR input= ~%args%~ END - END - "litvar_.*" - BEGIN - INNER_PATCH_SAVE function2 "%function2%" BEGIN - DELETE_BYTES 0x0 3 - END - SPRINT "SFO_RESERVED_%function2%" "%args%" // so I'm violating the encapsulation of the functions. So sue me. (At least until WEIDU can handle lists as arguments.) - END - "var_.*" - BEGIN - LPF evaluate_expression INT_VAR offset_base offset_secondary entry_index subterm=1 STR_VAR expression="%args%" filename file_ext RET value_res=value END - SPRINT "SFO_RESERVED_%function2%" "%value_res%" - END - // these ones don't get evaluated - patch_entry add_entry delete_entry clone_entry patch_entry_inline add_entry_inline delete_entry_inline clone_entry_inline level_based_blocks BEGIN // the arguments of these functions should not be evaluated - LPF "%function2%" INT_VAR offset_secondary entry_index STR_VAR arguments=~%args%~ filename offset_base file_ext END - END - - "\(patch\|clone\|add\)_.*_inline" BEGIN - INNER_PATCH "%function2%" BEGIN - REPLACE_EVALUATE "\([^_]*\)_\(.*\)_inline" BEGIN - SPRINT type "%MATCH2%" - SPRINT instr "%MATCH1%" - END - discard - END - PATCH_IF !VARIABLE_IS_SET "%file_ext%offset_loc_%type%" && "%type%" STRING_COMPARE effect_global && !VARIABLE_IS_SET "%file_ext%_virtual_type_parent_%type%" BEGIN - PATCH_FAIL "%type% is not a legal entry type for files of type %file_ext%" - END ELSE BEGIN - LPF "%instr%_entry_inline" INT_VAR stop_after_match STR_VAR arguments="%args%" type filename file_ext RET value END - END - END - - "\(patch\|clone\|delete\|add\)_.*" BEGIN - INNER_PATCH "%function2%" BEGIN - REPLACE_EVALUATE "\([^_]*\)_\(.*\)" BEGIN - SPRINT type "%MATCH2%" - SPRINT instr "%MATCH1%" - END - discard - END - PATCH_IF !VARIABLE_IS_SET "%file_ext%offset_loc_%type%" && "%type%" STRING_COMPARE effect_global && !VARIABLE_IS_SET "%file_ext%_virtual_type_parent_%type%" BEGIN - SET default=1 - END ELSE BEGIN - LPF "%instr%_entry" INT_VAR stop_after_match STR_VAR arguments="%args%" type filename file_ext RET value END - END - END - - // main implementation - DEFAULT - SET default=1 - END - PATCH_IF default BEGIN - SET value=1 - PATCH_IF debug_variable=2 BEGIN - PATCH_PRINT ~Calling %function2%, arguments %offset_secondary% %args% %filename% %offset_base% %file_ext%~ - END - PATCH_IF !VARIABLE_IS_SET $SFO_do_not_parse_arguments("%function2%") && !VARIABLE_IS_SET $SFO_do_not_parse_arguments("%file_ext%_%function2%") BEGIN - LPF evaluate_expression INT_VAR offset_secondary offset_base entry_index STR_VAR filename file_ext expression="%args%" RET value_ret=value END - END ELSE BEGIN - SPRINT value_ret "%args%" - END - LPF apply_standard_function INT_VAR offset_secondary entry_index STR_VAR func=~%function2%~ arguments=~%value_ret%~ filename offset_base file_ext END - END - END - END -END - - -DEFINE_PATCH_FUNCTION apply_patches_inline - INT_VAR - offset_secondary=0 - offset_base=0 - entry_index=0 - STR_VAR - editstring="" - arguments="" - file_ext="" - filename="" - RET - value -BEGIN - PATCH_IF "%arguments%" STRING_EQUAL "" BEGIN - SPRINT arguments "%editstring%" - END - CLEAR_ARRAY temp_assoc - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET key value arguments=list END - WHILE VARIABLE_IS_SET $temp_assoc("%key%") BEGIN - SPRINT key "%key%'" - END - SPRINT $temp_assoc("%key%") "%value%" - END - LPF apply_patches - INT_VAR offset_base offset_secondary entry_index - STR_VAR arguments=temp_assoc filename= ~%filename%~ file_ext= ~%file_ext%~ - RET value - END -END -OUTER_SPRINT $SFO_do_not_parse_arguments("apply_patches_inline") "" - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Apply patch on condition -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION patch_entry - INT_VAR stop_after_match=0 - STR_VAR arguments="" // this is a patch - filename="" - file_ext="" - type="" - RET value // 1 if any patching occurs -BEGIN - SET value=0 - LPF key_value_sanity_check INT_VAR is_key=0 STR_VAR arguments END - // read in parameters - SPRINT check "" - SPRINT checkGT "" - SPRINT checkLT "" - SPRINT match "" - PHP_EACH "%arguments%" AS func=>arg BEGIN - PATCH_MATCH "%func%" WITH - match check checkLT checkGT type BEGIN - SPRINT "%func%" "%arg%" - END - patch_entry_inline patch_entry add_entry_inline add_entry delete_entry_inline delete_entry clone_entry_inline clone_entry - BEGIN - PATCH_FAIL "You can't chain conditional patches: %func% can't be used inside another conditional patch" - END - "var_.*" BEGIN - SPRINT "SFO_RESERVED_%func%" "%arg%" - END - DEFAULT - END - END - PATCH_IF "%type%" STRING_EQUAL "" BEGIN - PATCH_FAIL "patch_entry patch on %filename%.%file_ext% does not specify a type of entry to add" - END - SPRINT entry_type "%type%" - PATCH_IF VARIABLE_IS_SET $ "%file_ext%_virtual_type_parent"("%type%") BEGIN - SPRINT parent_type EVALUATE_BUFFER "%%file_ext%_virtual_type_parent_%type%%" - SPRINT entry_type EVALUATE_BUFFER "%%file_ext%_virtual_type_child_%type%%" - SET sec_index="%file_ext%_virtual_type_index_%type%" - LPF patch_entry_child INT_VAR sec_index stop_after_match STR_VAR entry_type clone_above clone_at_top clone_at_bottom parent_type at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add RET value END - END ELSE BEGIN - LPF patch_entry_notchild INT_VAR stop_after_match STR_VAR clone_above clone_at_top clone_at_bottom at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add entry_type RET value END - END -END - -DEFINE_PATCH_FUNCTION patch_entry_child - INT_VAR sec_index=0 - stop_after_match=0 - STR_VAR arguments="" - check="" - checkGT="" - checkLT="" - match="" - entry_type="" - parent_type="" - filename="" - file_ext="" - RET - value -BEGIN - // initialise - SET value=0 - LPF return_number_entries STR_VAR entry_type="%parent_type%" file_ext RET num_entries_parent=value END - // cycle through parent - FOR (parent_index=0;parent_indexarg BEGIN - PATCH_MATCH "%func%" WITH - number_to_add match match_parameter check checkLT checkGT type insert_point at_end BEGIN - SPRINT "%func%" "%arg%" - END - add_entry_inline add_entry delete_entry_inline delete_entry clone_entry_inline clone_entry - BEGIN - PATCH_FAIL "You can't chain conditional patches: %func% can't be used inside another conditional patch" - END - "var_.*" BEGIN - SPRINT "SFO_RESERVED_%func%" "%arg%" - END - DEFAULT - END - END - PATCH_IF "%type%" STRING_EQUAL "" BEGIN - PATCH_FAIL "add_entry patch on %filename%.%file_ext% does not specify a type of entry to add" - END - SPRINT entry_type "%type%" - PATCH_IF VARIABLE_IS_SET $ "%file_ext%_virtual_type_parent"("%type%") BEGIN - SPRINT parent_type EVALUATE_BUFFER "%%file_ext%_virtual_type_parent_%type%%" - SPRINT entry_type EVALUATE_BUFFER "%%file_ext%_virtual_type_child_%type%%" - SET sec_index="%file_ext%_virtual_type_index_%type%" - LPF add_entry_child INT_VAR sec_index insert_point STR_VAR entry_type clone_above clone_at_top clone_at_bottom parent_type at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add END - END ELSE BEGIN - LPF add_entry_notchild INT_VAR insert_point STR_VAR clone_above clone_at_top clone_at_bottom at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add entry_type END - END - SET value=1 -END - -DEFINE_PATCH_FUNCTION add_entry_child - INT_VAR sec_index=0 - STR_VAR arguments="" - check="" - checkGT="" - checkLT="" - match="" - entry_type="" - parent_type="" - match_parameter="" - filename="" - file_ext="" - at_end="0" - insert_point="0" - number_to_add="1" // it's still a STR_VAR, as it might be functional -BEGIN - // initialise - SET "number_added_%entry_type%"=0 - SET "lowest_added_%entry_type%"=999999 - LPF return_number_entries STR_VAR entry_type="%parent_type%" file_ext RET num_entries_parent=value END - // cycle through parent - FOR (parent_index=0;parent_index num_entries ? num_entries : insert_point_val) - // do the insertion - LPF insert_copies_at_index INT_VAR blank=1 index=index+insert_point_val num_to_copy=1 num_of_copies=number_to_add_val STR_VAR entry_type RET bytes_added=value END - LPF update_offsets INT_VAR bytes_added STR_VAR entry_type END - - // patch - FOR (entry_index=0;entry_indexdiscard BEGIN - PATCH_IF "%this_type%" STRING_COMPARE "%parent_type%" && VARIABLE_IS_SET "has_secondaries_%file_ext%_%this_type%" BEGIN - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET num_entries=value END - FOR (i=0;idiscard BEGIN - SET "number_added_%this_type%"=0 - SET "lowest_added_%this_type%"=999999 - END - SET entry_length=$ ~%file_ext%entry_length~(~%entry_type%~) - // check condition - PATCH_MATCH "%match%%check%%checkGT%%checkLT%" WITH - "" BEGIN - SET found_match=1 - END - DEFAULT // notice that the condition is evaluated at the parent step, so offset_base isn't needed - LPF evaluate_condition STR_VAR match check match_parameter checkGT checkLT filename file_ext RET found_match=value END - END - PATCH_IF found_match=1 BEGIN - // find the actual value for number_to_add - LPF evaluate_expression STR_VAR filename file_ext expression="%number_to_add%" RET number_to_add_val=value END - // get the insertion point - LPF evaluate_expression STR_VAR filename file_ext expression="%insert_point%" RET insert_point_val=value END - LPF evaluate_expression STR_VAR filename file_ext expression="%at_end%" RET at_end_val=value END - PATCH_IF insert_point_val="-1" BEGIN - SET at_end_val=1 // support legacy ADD_SPL_EFFECT syntax - END - SET insert_point_val= at_end_val? num_entries : (insert_point_val > num_entries ? num_entries : insert_point_val) - LPF return_offset INT_VAR offset_num=insert_point_val STR_VAR entry_type file_ext RET offset_base=value END - // physically insert the entries - LPF insert_copies_at_index INT_VAR blank=1 index=insert_point_val num_to_copy=1 num_of_copies=number_to_add_val STR_VAR entry_type RET bytes_added=value END - LPF update_offsets INT_VAR bytes_added STR_VAR entry_type END - SET "number_added_%entry_type%" = number_to_add_val - // find the values for the indices on the secondary entries - PHP_EACH "%file_ext%offset_loc" AS secondary_type=>discard BEGIN - PATCH_IF insert_point_val>0 BEGIN // if this isn't the first entry, just get it from the previous entry - LPF return_secondary_entry_count INT_VAR offset_base=offset_base - entry_length STR_VAR entry_type secondary_type RET sec_num_prev=value END - LPF return_lowest_secondary_index INT_VAR offset_base=offset_base - entry_length STR_VAR entry_type secondary_type RET sec_ind_prev=value END - SET sec_ind_here=sec_num_prev+sec_ind_prev - END ELSE BEGIN - LPF return_first_secondary_index STR_VAR entry_type secondary_type RET sec_ind_here=value END - END - FOR (i=0;ioff BEGIN - WRITE_SHORT (0x20+off) (SHORT_AT (0x20+off))+number_added_effect - END - END - - -END - - - -DEFINE_PATCH_FUNCTION add_entry_inline - STR_VAR arguments="" // this is a hash - file_ext="" - filename="" - type="" - RET value // always 1 -BEGIN - LPF key_value_sanity_check INT_VAR is_key=1 STR_VAR arguments END - CLEAR_ARRAY temp_assoc - SPRINT ~temp~ ~ACTION_DEFINE_ASSOCIATIVE_ARRAY temp_assoc BEGIN %arguments% END~ - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET key=key value=value arguments=list END - SPRINT $temp_assoc("%key%") "%value%" - END - LPF add_entry - STR_VAR arguments=temp_assoc filename= ~%filename%~ file_ext= ~%file_ext%~ type - RET value - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// clone an entry based on matched conditions -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION clone_entry - STR_VAR arguments="" // this is a hash - file_ext="" - filename="" - type="" - RET value // always 1 -BEGIN - LPF key_value_sanity_check INT_VAR is_key=0 STR_VAR arguments END - // read in parameters - SPRINT check "" - SPRINT checkGT "" - SPRINT checkLT "" - SPRINT match "" - SPRINT match_parameter "" - SET clone_above=0 - SET clone_at_top=0 - SET clone_at_bottom=0 - SET only_once=0 - SET number_to_add=1 - PHP_EACH "%arguments%" AS func=>arg BEGIN - PATCH_MATCH "%func%" WITH - number_to_add match match_parameter check checkLT checkGT type clone_above clone_at_top clone_at_bottom only_once BEGIN - SPRINT "%func%" "%arg%" - END - add_entry_inline add_entry delete_entry_inline delete_entry clone_entry_inline clone_entry - BEGIN - PATCH_FAIL "You can't chain conditional patches: %func% can't be used inside another conditional patch" - END - "var_.*" BEGIN - SPRINT "SFO_RESERVED_%func%" "%arg%" - END - DEFAULT - END - END - PATCH_IF ~%type%~ STRING_EQUAL "" BEGIN - PATCH_FAIL "You are trying to clone an entry on %filename%.%file_ext% but you have not specified the entry type" - END - SPRINT entry_type "%type%" - PATCH_IF VARIABLE_IS_SET $ "%file_ext%_virtual_type_parent"("%type%") BEGIN - SPRINT parent_type EVALUATE_BUFFER "%%file_ext%_virtual_type_parent_%type%%" - SPRINT entry_type EVALUATE_BUFFER "%%file_ext%_virtual_type_child_%type%%" - SET sec_index="%file_ext%_virtual_type_index_%type%" - LPF clone_entry_child INT_VAR sec_index STR_VAR entry_type clone_above clone_at_top clone_at_bottom only_once parent_type at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add END - END ELSE BEGIN - LPF clone_entry_notchild STR_VAR clone_above clone_at_top clone_at_bottom only_once at_end insert_point arguments check checkGT checkLT match match_parameter filename file_ext number_to_add entry_type END - END - SET value=1 -END - -DEFINE_PATCH_FUNCTION clone_entry_child - INT_VAR sec_index=0 - STR_VAR arguments="" - check="" - clone_above=0 - clone_at_top=0 - clone_at_bottom=0 - only_once=0 - checkGT="" - checkLT="" - match="" - entry_type="" - parent_type="" - filename="" - file_ext="" - number_to_add="1" // it's still a STR_VAR, as it might be functional -BEGIN - // initialise - SET "number_added_%entry_type%"=0 - SET "lowest_added_%entry_type%"=999999 - SET no_more_clones=0 - LPF return_number_entries STR_VAR entry_type="%parent_type%" file_ext RET num_entries_parent=value END - // cycle through parent - FOR (parent_index=0;parent_indexdiscard BEGIN - PATCH_IF "%this_type%" STRING_COMPARE "%parent_type%" && VARIABLE_IS_SET "has_secondaries_%file_ext%_%this_type%" BEGIN - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET num_entries=value END - FOR (i=0;idiscard BEGIN - SET "number_added_%this_type%"=0 - SET "lowest_added_%this_type%"=999999 - END - // cycle through - FOR (i=0;idiscard BEGIN - LPF return_secondary_entry_count INT_VAR offset_base STR_VAR entry_type secondary_type RET secondary_added_per_step=value END - LPF return_lowest_secondary_index INT_VAR offset_base STR_VAR entry_type secondary_type RET lowest_index=value END - PATCH_IF "lowest_added_%secondary_type%">lowest_index BEGIN - SET "lowest_added_%secondary_type%"=lowest_index - END - PATCH_IF lowest_index>=0 BEGIN // i.e., if we actually find any entries - LPF insert_copies_at_index INT_VAR index=lowest_index num_to_copy=secondary_added_per_step num_of_copies=number_to_add_val STR_VAR entry_type="%secondary_type%" RET bytes_added=value END - LPF update_offsets INT_VAR bytes_added STR_VAR entry_type="%secondary_type%" END - - FOR (j=1;j<=number_to_add_val;j+=1) BEGIN - SET "number_added_%secondary_type%" += secondary_added_per_step - LPF return_offset INT_VAR offset_num=index + j STR_VAR entry_type file_ext RET offset_here=value END - LPF increment_lookup_indices INT_VAR increment=secondary_added_per_step*j offset_base=offset_here STR_VAR entry_type secondary_type END - END - END - END - // apply patches - FOR (entry_index=0;entry_indexdiscard BEGIN - - PATCH_IF "%this_type%" STRING_COMPARE "%entry_type%" && VARIABLE_IS_SET "has_secondaries_%file_ext%_%this_type%" BEGIN - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET num_entries=value END - FOR (i=0;idiscard BEGIN - SET arguments="number_added_%this_type%" - LPF increment_number_entries INT_VAR arguments STR_VAR entry_type="%this_type%" file_ext END - END - - PATCH_IF effect_global BEGIN - WRITE_SHORT 0x70 (SHORT_AT 0x70)+number_added_effect - END -END - - - -DEFINE_PATCH_FUNCTION clone_entry_inline - STR_VAR arguments="" // this is a hash - file_ext="" - filename="" - type="" - RET value // always 1 -BEGIN - LPF key_value_sanity_check INT_VAR is_key=1 STR_VAR arguments END - CLEAR_ARRAY temp_assoc - SPRINT ~temp~ ~ACTION_DEFINE_ASSOCIATIVE_ARRAY temp_assoc BEGIN %arguments% END~ - WHILE "%arguments%" STRING_COMPARE "" BEGIN - LPF return_first_pair STR_VAR list="%arguments%" RET key=key value=value arguments=list END - SPRINT $temp_assoc("%key%") "%value%" - END - LPF clone_entry - STR_VAR arguments=temp_assoc filename= ~%filename%~ file_ext= ~%file_ext%~ type - RET value - END -END - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// general template to delete an entry type -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION delete_entry // this uses indirection: the entries are in an assoc_array - STR_VAR arguments="" - filename="" - file_ext="" - type="" - RET value // always 1 -BEGIN - LPF key_value_sanity_check INT_VAR is_key=0 STR_VAR arguments END - PATCH_IF ~%type%~ STRING_EQUAL "" BEGIN - PATCH_FAIL "You are trying to delete an entry on %filename%.%file_ext% but you have not specified the entry type" - END - SPRINT entry_type "%type%" - PATCH_IF VARIABLE_IS_SET $ "%file_ext%_virtual_type_parent"("%type%") BEGIN - SPRINT parent_type EVALUATE_BUFFER "%%file_ext%_virtual_type_parent_%type%%" - SPRINT entry_type EVALUATE_BUFFER "%%file_ext%_virtual_type_child_%type%%" - SET sec_index="%file_ext%_virtual_type_index_%type%" - LPF delete_entry_child INT_VAR sec_index STR_VAR entry_type parent_type arguments filename file_ext END - END ELSE BEGIN - LPF delete_entry_notchild STR_VAR arguments filename file_ext entry_type END - END - SET value=1 - -END - - DEFINE_PATCH_FUNCTION delete_entry_child - INT_VAR sec_index=0 - STR_VAR arguments="" - entry_type="" - parent_type="" - filename="" - file_ext="" -BEGIN - // initialise - SET "number_added_%entry_type%"=0 - SET "lowest_added_%entry_type%"=999999 - LPF return_number_entries STR_VAR entry_type="%parent_type%" file_ext RET num_entries_parent=value END - // cycle through parent - FOR (parent_index=0;parent_indexdiscard BEGIN - PATCH_IF "%this_type%" STRING_COMPARE "%parent_type%" && VARIABLE_IS_SET "has_secondaries_%file_ext%_%this_type%" BEGIN - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET num_entries=value END - FOR (i=0;idiscard BEGIN - SET "number_added_%this_type%"=0 - SET "lowest_added_%this_type%"=999999 - END - // cycle through - FOR (i=0;idiscard BEGIN - LPF return_secondary_entry_count INT_VAR offset_base STR_VAR entry_type secondary_type RET number_to_delete=value END - LPF return_lowest_secondary_index INT_VAR offset_base STR_VAR entry_type secondary_type RET lowest_index=value END - PATCH_IF "lowest_added_%secondary_type%">lowest_index BEGIN - SET "lowest_added_%secondary_type%"=lowest_index - END - PATCH_IF lowest_index>=0 BEGIN // i.e., if we actually find any entries - LPF delete_at_index INT_VAR index=lowest_index number_to_delete STR_VAR entry_type="%secondary_type%" RET bytes_added=value END - LPF update_offsets INT_VAR bytes_added STR_VAR entry_type="%secondary_type%" END - SET "number_added_%secondary_type%" = "number_added_%secondary_type%" - number_to_delete - END - END - // do the deletion - LPF delete_at_index INT_VAR index STR_VAR entry_type RET bytes_added=value END - LPF update_offsets INT_VAR bytes_added STR_VAR entry_type END - // record the subtacted main entries - SET "number_added_%entry_type%" = "number_added_%entry_type%" - 1 - END - END - - SET temp="lowest_added_%entry_type%" - // update the indices in all other entries - - PHP_EACH "%file_ext%offset_loc" AS this_type=>discard BEGIN - PATCH_IF "%this_type%" STRING_COMPARE "%entry_type%" && VARIABLE_IS_SET "has_secondaries_%file_ext%_%this_type%" BEGIN - LPF return_number_entries STR_VAR entry_type="%this_type%" file_ext RET num_entries=value END - FOR (i=0;idiscard BEGIN - SET arguments="number_added_%this_type%" - LPF increment_number_entries INT_VAR arguments STR_VAR entry_type="%this_type%" file_ext END - END - - PATCH_IF effect_global BEGIN - WRITE_SHORT 0x70 (SHORT_AT 0x70)+number_added_effect - END -END - - diff --git a/iwdification/dw/sfo/general/lib_table.tpa b/iwdification/dw/sfo/general/lib_table.tpa deleted file mode 100644 index df0be44..0000000 --- a/iwdification/dw/sfo/general/lib_table.tpa +++ /dev/null @@ -1,427 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// 2da read/write tools based on the 2da file being in a standard table configuration -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_table_column_coordinate - STR_VAR column="" - RET colnum -BEGIN - COUNT_2DA_COLS colcount - SET firstrow = colcount=2? 2: (colcount=3? 1: 0) - // find the right column - SET colnum= "-1" - FOR (j=1;j=0 && colnum>=0) BEGIN - READ_2DA_ENTRY rownum colnum colcount value - END ELSE BEGIN - SET value= "-1" - PATCH_IF !dont_complain BEGIN - LPF warning STR_VAR warning="Tried to read entry name (%row%,%column%), apparent coordinates (%rownum%,%colnum%) from table (probably %SOURCE_FILE%) but it doesn't exist; returning -1" END - END - END -END - -DEFINE_ACTION_FUNCTION read_table_entry - INT_VAR lookup_column=0 - dont_complain=0 - rownum="-1" - colnum="-1" - STR_VAR file="" - row="" - column="" - - RET value -BEGIN - ACTION_IF !FILE_EXISTS_IN_GAME "%file%" BEGIN - ACTION_IF !FILE_EXISTS_IN_GAME "%file%.2da" BEGIN - FAIL "Tried to read an entry from %file%, but %file% does not exist and nor does %file%.2da" - END ELSE BEGIN - OUTER_SPRINT file "%file%.2da" - END - END - COPY_EXISTING "%file%" "%workspace%" - LPF read_table_entry INT_VAR lookup_column dont_complain rownum colnum STR_VAR row column RET value END - BUT_ONLY -END - -DEFINE_ACTION_FUNCTION read_table_entry_external - INT_VAR lookup_column=0 - dont_complain=0 - rownum="-1" - colnum="-1" - STR_VAR file="" - row="" - column="" - location="" - locbase="" - locabs="" - RET value -BEGIN - LAF get_directory STR_VAR location locbase locabs RET directory END - ACTION_IF !FILE_EXISTS "%directory%/%file%" BEGIN - FAIL "Tried to read a 2da entry from %directory%/%file% but it doesn't exist" - END - COPY "%directory%/%file%" "%workspace%" - LPF read_table_entry INT_VAR lookup_column dont_complain rownum colnum STR_VAR row column RET value END - BUT_ONLY -END - - -DEFINE_PATCH_FUNCTION write_table_entry - INT_VAR lookup_column=0 - do_not_insert=0 - rownum="-1" - colnum="-1" - all_rows=0 - STR_VAR arguments="" - row="" - column="" - default_fill="0" -BEGIN - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - PATCH_IF "%column%" STRING_COMPARE "" BEGIN - LPF get_table_column_coordinate STR_VAR column RET colnum END - PATCH_IF colnum<0 BEGIN - PATCH_FAIL "Tried to add an entry (%row%,%column%) to table (probably %SOURCE_FILE%) but there is no %column% column" - END - END ELSE BEGIN - PATCH_IF colnum<0 BEGIN - PATCH_FAIL "No column specified in write_table_entry" - END - END - PATCH_IF all_rows BEGIN - FOR (i=0;i highest_num ? this_num : highest_num - END - SET value=highest_num + 1 - SPRINT new_row "%value% %arguments%" - INSERT_2DA_ROW rowcount colcount "%new_row%" -END - - -DEFINE_PATCH_FUNCTION renumber_rows - INT_VAR start_at=1 -BEGIN - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - PATCH_IF colcount=2 BEGIN - SET firstrow=1 - END ELSE BEGIN - SET firstrow=0 - END - SET highest_num=0 - FOR (i=firstrow;i newstring - RET output -BEGIN - PATCH_IF ~%arguments%~ STRING_COMPARE_CASE ~~ BEGIN - LPF return_first_pair STR_VAR list= ~%arguments%~ RET old=key new=value arguments=list END - INNER_PATCH_SAVE output ~%input%~ BEGIN - PATCH_IF ~%new%~ STRING_EQUAL_CASE ~NULL~ BEGIN - SPRINT new ~~ - END - PATCH_IF ~%new%~ STRING_EQUAL_CASE ~SPACE~ BEGIN - SPRINT new ~ ~ - END - REPLACE_TEXTUALLY ~%old%~ ~%new%~ - END - LPF substitute_string STR_VAR input= ~%output%~ arguments= ~%arguments%~ RET output=output END - END ELSE BEGIN - SPRINT output ~%input%~ - END -END - -DEFINE_ACTION_FUNCTION substitute_string - STR_VAR input="" - arguments="" - RET output -BEGIN - OUTER_PATCH ~~ BEGIN - LPF substitute_string STR_VAR input arguments RET output END - END -END -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION set_string - STR_VAR input="" - arguments="" // list of oldstring=> newstring - RET output -BEGIN - SPRINT output ~%arguments%~ -END - - - - - -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION action_append_strref // includes a space - STR_VAR input="" - arguments="" - RET output -BEGIN - <<<<<<<< temp_file - OUTER_SPRINT ~output~ ~%input% %arguments%~ - >>>>>>>> - COPY + temp_file ~%workspace%/temp_file2~ EVALUATE_BUFFER - REINCLUDE ~%workspace%/temp_file2~ -END - - -DEFINE_PATCH_FUNCTION append_strref // includes a space - STR_VAR input="" - arguments="" - RET output -BEGIN - INNER_ACTION BEGIN - LAF action_append_strref STR_VAR input= ~%input%~ arguments= ~%arguments%~ RET output=output END - END -END - - -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Read in the entry in tlk_entry, append or (if new_first=1) prepend a new string, and write it back -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION append_to_tlk_entry - INT_VAR tlk_entry=~-1~ - new_first=0 - STR_VAR arguments="" - separator=" " -BEGIN - ACTION_GET_STRREF tlk_entry oldstring - ACTION_IF new_first=1 BEGIN - OUTER_SPRINT newstring ~%arguments%%separator%%oldstring%~ - END ELSE BEGIN - OUTER_SPRINT newstring ~%oldstring%%separator%%arguments%~ - END - STRING_SET_EVALUATE tlk_entry ~%newstring%~ -END - -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Read in the entry in tlk_entry, run the substitutions defined by argument, and write it back -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION substitute_tlk_entry - INT_VAR tlk_entry=~-1~ - STR_VAR arguments="" -BEGIN - ACTION_GET_STRREF tlk_entry input - OUTER_INNER_PATCH ~~ BEGIN - LPF substitute_string STR_VAR input arguments RET output=output END - END - STRING_SET_EVALUATE tlk_entry ~%output%~ -END - -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Add a string to dialog.tlk -///////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION add_to_tlk - STR_VAR string="" - RET strref -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - INSERT_BYTES 0x0 4 - SAY 0x0 ~%string%~ - READ_LONG 0x0 strref - END -END - diff --git a/iwdification/dw/sfo/general/lib_tools.tpa b/iwdification/dw/sfo/general/lib_tools.tpa deleted file mode 100644 index 8644409..0000000 --- a/iwdification/dw/sfo/general/lib_tools.tpa +++ /dev/null @@ -1,1018 +0,0 @@ -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// general warning message -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_PATCH_FUNCTION warning - STR_VAR - warning="" - arguments="" - repeat="no" -BEGIN - LPF warning STR_VAR warning arguments repeat END -END - -DEFINE_ACTION_FUNCTION warning - STR_VAR - warning="" - arguments="" - repeat="no" -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF warning STR_VAR warning arguments repeat END - END -END -DEFINE_ACTION_FUNCTION warning - STR_VAR - warning="" - arguments="" - repeat="no" -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF warning STR_VAR warning arguments repeat END - END -END - -DEFINE_PATCH_FUNCTION warning - STR_VAR - warning="" - arguments="" - repeat="no" -BEGIN - PATCH_MATCH "%warning%%arguments%" WITH - "" null BEGIN END - DEFAULT - PATCH_PRINT ~%warning%%arguments%~ - LPF patch_log_this STR_VAR file=sfo_warnings.txt input= ~%warning%%arguments%~ repeat END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// include a string as a line of code (NB: you can't define variables this way, because they're in the scope of the function) -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -DEFINE_ACTION_FUNCTION reinclude_this - STR_VAR - input="" -BEGIN - <<<<<<<< temp_file - %input% - >>>>>>>> - ACTION_IF debug_variable=1 BEGIN - PRINT ~%input%~ - END - COPY - temp_file ~temp_file2~ EVALUATE_BUFFER - REINCLUDE ~temp_file2~ -END - - - -DEFINE_PATCH_FUNCTION reinclude_this - STR_VAR - input="" -BEGIN - INNER_ACTION BEGIN - <<<<<<<< temp_file - %input% - >>>>>>>> - COPY - temp_file ~temp_file2~ EVALUATE_BUFFER - END - PATCH_IF debug_variable=1 BEGIN - PATCH_PRINT ~%input%~ - END - PATCH_REINCLUDE ~temp_file2~ -END - -DEFINE_ACTION_FUNCTION action_reinclude_this STR_VAR input="" BEGIN - LAF reinclude_this STR_VAR input END -END - -DEFINE_PATCH_FUNCTION patch_reinclude_this STR_VAR input="" BEGIN - LPF reinclude_this STR_VAR input END -END - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// take a string, strip any initial or trailing whitespace [recursive] -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION strip_spaces_from_string - STR_VAR string="" - RET string -BEGIN - PATCH_IF !(~%string%~ STRING_EQUAL ~~) BEGIN - PATCH_IF INDEX ("\( \|%MNL%\|%WNL%\|%LNL%\|%TAB%\)" ~%string%~)=0 BEGIN - INNER_PATCH_SAVE ~string~ ~%string%~ BEGIN DELETE_BYTES 0 1 END - LPF strip_spaces_from_string STR_VAR string RET string=string END - END - PATCH_IF !(~%string%~ STRING_EQUAL ~~)BEGIN - PATCH_IF RINDEX ("\( \|%MNL%\|%WNL%\|%LNL%\|%TAB%\)" ~%string%~)=(STRING_LENGTH ~%string%~ -1) BEGIN - INNER_PATCH_SAVE ~string~ ~%string%~ BEGIN DELETE_BYTES (BUFFER_LENGTH - 1) 1 END - LPF strip_spaces_from_string STR_VAR string RET string=string END - END - END - END -END - -DEFINE_ACTION_FUNCTION strip_spaces_from_string - STR_VAR string="" - RET string -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF strip_spaces_from_string STR_VAR string RET string=string END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// take a string, strip initial or trailing ~ and " -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION strip_quotes_from_string - STR_VAR string="" - RET string -BEGIN - SET string_length=STRING_LENGTH ~%string%~ - PATCH_MATCH string_length WITH 0 BEGIN - LPF warning STR_VAR warning="Warning: you just tried to remove quotes from an empty string. Deliberate?" END - END - DEFAULT - INNER_PATCH_SAVE string ~%string%~ BEGIN - SET lastloc=string_length - 1 - PATCH_FOR_EACH loc IN ~%lastloc%~ 0 BEGIN // must be this way around! - READ_ASCII 0 symbol (1) - PATCH_IF (~%symbol%~ STRING_EQUAL ~"~ OR ~%symbol%~ STRING_EQUAL "~") BEGIN - DELETE_BYTES loc 1 - END - END - END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, take as input a string and return its first letter and the rest of it -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_first_letter - STR_VAR input="" - RET firstletter - rest -BEGIN - PATCH_IF input STRING_COMPARE ~~ BEGIN - INNER_PATCH_SAVE rest ~%input%~ BEGIN - READ_ASCII 0x0 firstletter (1) - DELETE_BYTES 0x0 1 - END - END ELSE BEGIN - SPRINT firstletter ~~ - SPRINT rest ~~ - END -END - -DEFINE_ACTION_FUNCTION return_first_letter - STR_VAR input="" RET firstletter rest -BEGIN - OUTER_PATCH "" BEGIN - LPF return_first_letter STR_VAR input RET firstletter=firstletter rest=rest END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// as a patch, take as input FUNCTION(VALUES) and return FUNCTION and VALUES -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION return_function_and_argument - STR_VAR input="" - RET function - argument -BEGIN - INNER_PATCH_SAVE ~input~ ~%input%~ BEGIN - REPLACE_TEXTUALLY ~)~ ~~ - END - LPF return_first_entry - STR_VAR list= ~%input%~ separator="(" - RET argument=list function=entry - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// sanity check for the arguments -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION edit_sanity_check - STR_VAR edits="" - editstring="" - task="the current task" -BEGIN - ACTION_IF !"%edits%" STRING_CONTAINS_REGEXP "=>" BEGIN - FAIL "The 'edits' variable for %task% is set to %edits%, which is illegal (contains =>). Probably you meant 'editstring' instead." - END - ACTION_IF "%editstring%" STRING_CONTAINS_REGEXP "=>" && "%editstring%" STRING_COMPARE "" BEGIN - FAIL "The 'editstring' variable for %task% is set to %editstring%, which is illegal (not a key=>value list). Probably you meant 'edits' instead." - END -END - -DEFINE_PATCH_FUNCTION edit_sanity_check - STR_VAR edits="" - editstring="" - task="the current task" -BEGIN - INNER_ACTION BEGIN - LAF edit_sanity_check STR_VAR edits editstring task END - END -END - -DEFINE_PATCH_FUNCTION key_value_sanity_check - INT_VAR is_key=1 - STR_VAR arguments="" -BEGIN - PATCH_IF ("%arguments%" STRING_CONTAINS_REGEXP "=>")=is_key && "%arguments%" STRING_COMPARE "" BEGIN - PATCH_IF is_key BEGIN - SPRINT censure "it should be a key" - END ELSE BEGIN - SPRINT censure "it should not be a key" - END - PATCH_FAIL "The variable for task is set to %arguments%, which is illegal: %censure%. (Check if you are entering inline data into a patch command, or vice versa.)" - END -END - -DEFINE_ACTION_FUNCTION key_value_sanity_check - INT_VAR is_key=1 - STR_VAR arguments="" -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF key_value_sanity_check INT_VAR is_key STR_VAR arguments END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// read or write the value of a field -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_field_value - INT_VAR loc=0 - length=0 - RET value -BEGIN - PATCH_MATCH length WITH - 1 - BEGIN - READ_BYTE loc value - END - 2 - BEGIN - READ_SHORT loc value - END - 4 - BEGIN - READ_LONG loc value - END - DEFAULT - PATCH_FAIL ~Trying to read %loc%, but %length% is unrecognised length~ - END -END - -DEFINE_PATCH_FUNCTION set_field_value - INT_VAR loc=0 - length=0 - value=0 - arguments=0 -BEGIN - PATCH_IF (arguments=0 && value!=0) BEGIN - SET arguments=value - END - PATCH_MATCH length WITH - 1 - BEGIN - WRITE_BYTE loc arguments - END - 2 - BEGIN - WRITE_SHORT loc arguments - END - 4 - BEGIN - WRITE_LONG loc arguments - END - DEFAULT - PATCH_FAIL "Trying to write %loc%, but %length% is unrecognised length" - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// check the ini file -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION check_ini - STR_VAR ini="" - RET value -BEGIN - TO_LOWER ini - PATCH_IF !VARIABLE_IS_SET $scs_ini_hash(~%ini%~) BEGIN - SPRINT value 0 - END ELSE BEGIN - SPRINT value $scs_ini_hash(~%ini%~) - END -END - -DEFINE_ACTION_FUNCTION check_ini - STR_VAR ini="" - RET value -BEGIN - OUTER_PATCH "" BEGIN - LPF check_ini STR_VAR ini RET value END - END -END - -DEFINE_ACTION_FUNCTION action_check_ini - STR_VAR ini="" - RET value -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF check_ini STR_VAR ini RET value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get a local directory -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION get_directory - STR_VAR location="" - locbase="" - locabs="" - RET directory -BEGIN -PATCH_IF "%locabs%" STRING_COMPARE "" BEGIN - SPRINT directory "%locabs%" -END ELSE BEGIN - SPRINT directory ~%scsroot%~ - PATCH_IF "%locbase%" STRING_EQUAL "" BEGIN - PATCH_FOR_EACH loc IN component_loc local_loc location BEGIN - PATCH_IF ~%%loc%%~ STRING_COMPARE ~~ BEGIN - SPRINT temp EVALUATE_BUFFER "%%loc%%" - SPRINT ~directory~ EVALUATE_BUFFER ~%directory%/%%loc%%~ - END - END - END ELSE BEGIN - PATCH_IF "%location%" STRING_EQUAL "" BEGIN - SPRINT directory "%directory%/%locbase%" - END ELSE BEGIN - SPRINT directory "%directory%/%locbase%/%location%" - END - END -END -END - -DEFINE_ACTION_FUNCTION get_directory - STR_VAR location="" locbase="" locabs="" - RET directory -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF get_directory STR_VAR location locbase locabs RET directory=directory END - END -END - -DEFINE_ACTION_FUNCTION action_get_directory - STR_VAR location="" locbase="" locabs="" - RET directory -BEGIN - OUTER_INNER_PATCH ~~ BEGIN - LPF get_directory STR_VAR location locbase locabs RET directory=directory END - END -END - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// include all the listed files -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION include - STR_VAR file="" - files="" - location="" - locbase="" - locabs="" -BEGIN - ACTION_IF ~%file%~ STRING_EQUAL_CASE ~~ BEGIN - ACTION_IF ~%files%~ STRING_EQUAL_CASE ~~ BEGIN - PRINT ~Warning: you've called an include with no argument~ - END ELSE BEGIN - OUTER_SPRINT file ~%files%~ - END - END - PRINT ~Including file(s) %file%~ - LAF get_directory STR_VAR location locbase locabs RET file_loc=directory END - OUTER_WHILE ~%file%~ STRING_COMPARE ~~ BEGIN - LAF action_return_first_entry STR_VAR list= ~%file%~ RET entry=entry file=list END - COPY ~%file_loc%/%entry%~ ~%workspace%/%entry%~ - LPF define_make_patch END - LPF define_push END - REINCLUDE ~%workspace%/%entry%~ - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// include all the listed files with a .tpa suffix, assume each contains a function with the same name as itself, and run that function -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION run - STR_VAR file="" - files="" - location="" - locbase="" - locabs="" - version="" -BEGIN - ACTION_IF ~%file%~ STRING_EQUAL_CASE ~~ BEGIN - ACTION_IF ~%files%~ STRING_EQUAL_CASE ~~ BEGIN - PRINT ~Warning: you've called an include with no argument~ - END ELSE BEGIN - OUTER_SPRINT file ~%files%~ - END - END - PRINT ~Including and running function(s) %file%~ - LAF get_directory STR_VAR location locbase locabs RET file_loc=directory END - OUTER_WHILE ~%file%~ STRING_COMPARE ~~ BEGIN - LAF return_first_entry STR_VAR list= ~%file%~ RET entry=entry file=list END - COPY ~%file_loc%/%entry%.tpa~ ~%workspace%/%entry%.tpa~ - LPF define_make_patch END - LPF define_push END - INCLUDE ~%workspace%/%entry%.tpa~ - LAF ~%entry%~ STR_VAR version= ~%version%~ END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/// generic logger -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION log_this - STR_VAR file="" - input="" - repeat="yes" - locabs="%workspace%" - location="" - locbase="" -BEGIN - ACTION_IF !~%file%~ STRING_EQUAL_CASE ~auto_function_list.txt~ BEGIN // in case we left any in place! - ACTION_IF debug_variable>0 BEGIN - PRINT ~trying to append %input% to %file%; location defined by locabs=%locabs% location=%location% locbase=%locbase%~ - END - LAF get_directory STR_VAR location locabs locbase RET directory END - ACTION_IF !FILE_EXISTS ~%directory%/%file%~ BEGIN - COPY ~.../stratagems-inline/blank~ ~%directory%/%file%~ - END - ACTION_IF (~%repeat%~ STRING_COMPARE_CASE ~no~) || !FILE_CONTAINS_EVALUATED ("%directory%/%file%" "%input%\($\|%WNL%\|%MNL%\|%LNL\)")BEGIN - APPEND_OUTER ~%directory%/%file%~ ~%input%~ - END - END -END - -DEFINE_PATCH_FUNCTION patch_log_this // legacy - STR_VAR file="" - input="" - repeat="yes" - locabs="%workspace%" - location="" - locbase="" -BEGIN - INNER_ACTION BEGIN - LAF log_this STR_VAR file input repeat locbase locabs location END - END -END - -DEFINE_PATCH_FUNCTION log_this - STR_VAR file="" - input="" - repeat="yes" - locabs="%workspace%" - location="" - locbase="" -BEGIN - INNER_ACTION BEGIN - LAF log_this STR_VAR file input repeat locbase locabs location END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Make a label -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION make_label - STR_VAR label="" -BEGIN - LAF get_label_loc RET location=location END - COPY ~.../stratagems-inline/blank~ ~%location%/%label%.mrk~ - LPF log_this STR_VAR file=SFO_warnings.txt input= ~Installing label:%label%~ END -END - -DEFINE_ACTION_FUNCTION get_label_loc -RET location -BEGIN - LAF action_check_ini STR_VAR ini=put_labels_in_workspace RET loc=value END - ACTION_IF loc BEGIN - OUTER_SPRINT location ~%workspace%~ - END ELSE BEGIN - OUTER_SPRINT location ~override~ - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Check a label -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION check_label - STR_VAR label="" - RET value -BEGIN - LAF get_label_loc RET location END - ACTION_IF FILE_EXISTS ~%location%/%label%.mrk~ BEGIN - OUTER_SET value=1 - END ELSE BEGIN - OUTER_SET value=0 - END -END - -DEFINE_PATCH_FUNCTION check_label - STR_VAR label="" - RET value -BEGIN - INNER_ACTION BEGIN - LAF check_label STR_VAR label RET value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Check if a LABELed component of a mod (by default, this mod) is installed -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION check_component - STR_VAR label="" - mod="%scsroot%" - RET value -BEGIN - OUTER_SET value=MOD_IS_INSTALLED "%mod%.tp2" (ID_OF_LABEL "%mod%.tp2" "%label%") -END - -DEFINE_PATCH_FUNCTION check_component - STR_VAR label="" - mod="" - RET value -BEGIN - INNER_ACTION BEGIN - LAF check_component STR_VAR label RET value END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Take a LONG and reverse the first and last SHORT -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION reverse_long - INT_VAR input=0 - RET output -BEGIN - INNER_PATCH ~~ BEGIN - INSERT_BYTES 0x0 0x4 - WRITE_LONG 0x0 input - READ_SHORT 0x0 first - READ_SHORT 0x2 second - WRITE_SHORT 0x0 second - WRITE_SHORT 0x2 first - READ_LONG 0x0 output - END -END - -DEFINE_ACTION_FUNCTION reverse_long - INT_VAR input=0 - RET output -BEGIN - OUTER_PATCH "" BEGIN - LPF reverse_long INT_VAR input RET output=output END - END -END - - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// get an RGB LONG -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION color - INT_VAR red=0 - green=0 - blue=0 - RET color -BEGIN - - OUTER_INNER_PATCH ~~ BEGIN - INSERT_BYTES 0x0 4 - WRITE_BYTE 0x1 red - WRITE_BYTE 0x2 green - WRITE_BYTE 0x3 blue - READ_LONG 0x0 color - END -END - -DEFINE_PATCH_FUNCTION color - INT_VAR red=0 - green=0 - blue=0 - RET color -BEGIN - INNER_ACTION BEGIN - LAF color INT_VAR red green blue RET color=color END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// convert into hex -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - -DEFINE_PATCH_FUNCTION hex_digit // undocumented (helper only) - INT_VAR digit=0 - RET out -BEGIN - PATCH_IF (digit>=16 || digit<0) BEGIN - INNER_ACTION BEGIN - FAIL "not a digit" - END - END - PATCH_CLEAR_ARRAY hex_digit_map - DEFINE_ASSOCIATIVE_ARRAY hex_digit_map BEGIN - 15=>f - 14=>e - 13=>d - 12=>c - 11=>b - 10=>a - END - PATCH_IF VARIABLE_IS_SET $hex_digit_map("%digit%") BEGIN - SPRINT out $hex_digit_map("%digit%") - END ELSE BEGIN - SPRINT out "%digit%" - END -END - -DEFINE_PATCH_FUNCTION hexify - INT_VAR in=0 - pad_length=0 - STR_VAR out="" - RET out -BEGIN - SET div=in / 16 - SET digit=in - (div * 16) - LPF hex_digit INT_VAR digit RET char=out END - SPRINT out "%char%%out%" - PATCH_IF div>0 BEGIN - LPF hexify INT_VAR in= "%div%" pad_length STR_VAR out RET out=out END - END ELSE BEGIN - WHILE pad_length>STRING_LENGTH "%out%" BEGIN - SPRINT out "0%out%" - END - SPRINT out "0x%out%" - - - END -END - -DEFINE_ACTION_FUNCTION hexify - INT_VAR in=0 - pad_length=0 - RET out -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF hexify INT_VAR in pad_length RET out=out END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// guarantee a string-representing number is in hex form with lowercase x, lower case digits -///////////// -///////////// ie 10=> 0xa -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION ensure_hex - INT_VAR pad_length=0 - STR_VAR in="" - RET out -BEGIN - SNPRINT 2 check "%in%" - PATCH_IF "%check%" STRING_EQUAL_CASE "0x" BEGIN - PATCH_IF pad_length>0 BEGIN - INNER_PATCH_SAVE in "%in%" BEGIN - DELETE_BYTES 0x0 2 - END - WHILE pad_length>STRING_LENGTH "%in%" BEGIN - SPRINT in "0%in%" - END - SPRINT in "0x%in%" - END - TO_LOWER in - SPRINT out "%in%" - END ELSE BEGIN - LPF hexify INT_VAR in pad_length RET out END - END -END - -DEFINE_ACTION_FUNCTION ensure_hex - INT_VAR pad_length=0 - STR_VAR in="" - RET out -BEGIN - OUTER_PATCH "" BEGIN - LPF ensure_hex INT_VAR pad_length STR_VAR in RET out END - END -END - -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//// Iterate a counter; squeak when it's a multiple of 100 -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_PATCH_FUNCTION count_hundreds - INT_VAR counter=0 - hundreds=0 - STR_VAR task="files analysed" - - RET counter hundreds -BEGIN - PATCH_SILENT - PATCH_IF counter=100 BEGIN - SET hundreds +=1 - SET counter=0 - PATCH_PRINT "%hundreds%00 %task%" - PATCH_SILENT - END ELSE BEGIN - SET counter +=1 - END -END - -DEFINE_ACTION_FUNCTION count_hundreds - INT_VAR counter=0 - hundreds=0 - STR_VAR task="files analysed" - - RET counter hundreds -BEGIN - OUTER_INNER_PATCH "" BEGIN - LPF count_hundreds INT_VAR counter hundreds STR_VAR task RET counter hundreds END - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Consolidate table -///// -///// Take a table with lots of key=>value pairs -///// Rewrite it as "key=>value list" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION consolidate_table STR_VAR in="" out="" locabs="%workspace%" location="" locbase="" BEGIN - LAF get_directory STR_VAR locabs locbase location RET directory END - COPY - "%directory%/%in%" "%workspace%" - READ_2DA_ENTRIES_NOW in_entries 2 - FOR (i=0;ival BEGIN - INSERT_2DA_ROW counter 0 "%key% %val%" - SET counter +=1 - END -END - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///// Process table -///// -///// Take a table with a first line of column names and entries below. For each line, read the entries into variables with the -///// given names and feed them as STR_VAR entries to the ACTION_FUNCTION "function" -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION process_table - INT_VAR cumulative=0 - STR_VAR table="" - location="" - locbase="" - locabs="" - inline="no" - function="" - ext_args="" - RET value -BEGIN - ACTION_IF "%inline%" STRING_COMPARE_CASE yes BEGIN - LAF action_get_directory STR_VAR location locbase locabs RET directory END - ACTION_IF !FILE_EXISTS "%directory%/%table%" BEGIN - FAIL "Tried to process table %table% but it doesn't exist at %directory%" - END - END ELSE BEGIN - OUTER_SPRINT directory ".../stratagems-inline" - END - COPY - "%directory%/%table%" "%workspace%" - REPLACE_TEXTUALLY "//.*" "" - COUNT_2DA_COLS colcount - COUNT_2DA_ROWS colcount rowcount - SPRINT value "" - FOR (i=1;imaximum BEGIN - LAF warning STR_VAR warning="Failed to add IDS entry %to_add% to idsfile %idsfile%" END - OUTER_SET idsnum=0 - 1 - END ELSE BEGIN - OUTER_SET idsnum=IDS_OF_SYMBOL ("%idsfile%" "%to_add%") - ACTION_IF idsnum<0 BEGIN - OUTER_PATCH "" BEGIN - LOOKUP_IDS_SYMBOL_OF_INT test "%idsfile%" minimum - END - ACTION_IF "%test%" STRING_EQUAL "%minimum%" BEGIN - APPEND "%idsfile%.ids" "%minimum% %to_add%" - OUTER_SET idsnum=minimum - END ELSE BEGIN - OUTER_SET minimum +=1 - LAF get_or_add_to_IDS INT_VAR minimum maximum STR_VAR to_add idsfile RET idsnum END - END - END - END -END - -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////// quicksort -//////////////////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////////////////// - -DEFINE_ACTION_FUNCTION quicksort - STR_VAR list="" - RET list -BEGIN - ACTION_IF "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET entry list END - OUTER_SPRINT left "" - OUTER_SPRINT right "" - OUTER_WHILE "%list%" STRING_COMPARE "" BEGIN - LAF return_first_entry STR_VAR list RET cmp=entry list END - ACTION_IF "%cmp%" STRING_COMPARE "%entry%" >= 0 BEGIN - LAF push STR_VAR head="%cmp%" tail="%right%" RET right=list END - END ELSE BEGIN - LAF push STR_VAR head="%cmp%" tail="%left%" RET left=list END - END - END - LAF quicksort STR_VAR list="%left%" RET left=list END - LAF quicksort STR_VAR list="%right%" RET right=list END - LAF push STR_VAR head="%entry%" tail="" RET list END - LAF join STR_VAR list1="%left%" list2="%list%" RET list END - LAF join STR_VAR list1="%list%" list2="%right%" RET list END - END -END - -DEFINE_PATCH_FUNCTION quicksort - STR_VAR list="" - RET list -BEGIN - INNER_ACTION BEGIN - LAF quicksort STR_VAR list RET list END - END -END diff --git a/iwdification/dw/sfo/install_sfo.tpa b/iwdification/dw/sfo/install_sfo.tpa deleted file mode 100644 index b3a3cbc..0000000 --- a/iwdification/dw/sfo/install_sfo.tpa +++ /dev/null @@ -1,284 +0,0 @@ -ACTION_IF !VARIABLE_IS_SET sfo_installed BEGIN - - OUTER_SET sfo_installed=1 - - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Sanity check for AUTO_EVAL_STRINGS -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - OUTER_SPRINT var testers - OUTER_SPRINT players var - ACTION_IF !"%%players%%" STRING_EQUAL testers BEGIN - FAIL "AUTO_EVAL_STRINGS is not set (you need to include it in your tp2 preamble to use SFO)" - END - - - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Set default values of control parameters -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - ACTION_IF !VARIABLE_IS_SET scsroot BEGIN - OUTER_SPRINT scsroot "%TP2_BASE_NAME%" - END - ACTION_IF !VARIABLE_IS_SET workspace BEGIN - OUTER_SPRINT workspace "stratagems_external/workspace" - END - ACTION_IF !VARIABLE_IS_SET inifile BEGIN - OUTER_SPRINT inifile "%scsroot%/%scsroot%.ini" - END - ACTION_IF !VARIABLE_IS_SET ssl_loc BEGIN - OUTER_SPRINT ssl_loc "ssl" - END - ACTION_IF !VARIABLE_IS_SET sfo_loc BEGIN - OUTER_SPRINT sfo_loc "sfo" - END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Make the workspace directory if it doesn't already exist -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -MKDIR "%workspace%" - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Set the debug variable if it isn't already set; run silent if it's set to zero -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_IF !VARIABLE_IS_SET debug_variable BEGIN - OUTER_SET debug_variable=0 -END -ACTION_IF debug_variable=0 BEGIN SILENT END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Set defaults for component_loc and local_loc -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - OUTER_SPRINT ~component_loc~ ~~ - OUTER_SPRINT ~local_loc~ ~~ - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -///////////// Define some symbols -///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -OUTER_SPRINT ~percentage~ ~%~ -OUTER_SPRINT ~atsymbol~ ~@~ -OUTER_SPRINT ~tilde~ "~" -OUTER_SPRINT ~minus_one~ "-1" -OUTER_SPRINT ~arrow~ ~=>~ - -<<<<<<<< .../stratagems-inline/blank ->>>>>>>> - -OUTER_SPRINT former "0" -ACTION_FOR_EACH val IN z y x w v u t s r q p o n m l k j i h g f e d c b a 9 8 7 6 5 4 3 2 1 0 BEGIN - OUTER_SPRINT $alphanumeric_next("%val%") "%former%" - ACTION_TO_UPPER val - ACTION_TO_UPPER former - OUTER_SPRINT $alphanumeric_next("%val%") "%former%" - OUTER_SPRINT former "%val%" -END - -/////////////////////////////////////////////////// -// check what install we're running on -/////////////////////////////////////////////////// - - - OUTER_SET enhanced_edition = ( GAME_IS ~bgee bg2ee eet~ ? 1 : 0) - OUTER_SET is_bg1 = ( GAME_IS ~bgee tutu tutu_totsc bgt eet~ ? 1 : 0) - OUTER_SET is_bg2 = ( GAME_IS ~tutu tutu_totsc bgee~ ? 0 : 1) - OUTER_SET is_tutu = ( GAME_IS ~tutu tutu_totsc~ ? 1 : 0) - OUTER_SET is_eet = ( GAME_IS ~tutu tutu_totsc~ ? 1 : 0) - - ACTION_IF !VARIABLE_IS_SET tutu_var BEGIN - ACTION_IF is_tutu BEGIN - OUTER_SPRINT tutu_var "_" - END ELSE BEGIN - OUTER_SPRINT tutu_var "" - END - END - - ACTION_IF GAME_IS "eet" BEGIN - OUTER_SPRINT eet_var "_" - END ELSE BEGIN - OUTER_SPRINT eet_var "" - END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// a few resource fixes -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// correct missing section in kensai clab file -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -COPY_EXISTING clabfi04.2da override - // diagnostic: can we read entry 40 from the second row with at least 10 entries? - PATCH_SILENT - PATCH_TRY - READ_2DA_ENTRY 1 40 10 blah - WITH DEFAULT - SET_2DA_ENTRY 1 39 40 "**** ****" - PRETTY_PRINT_2DA - END -BUT_ONLY - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Some IDS entries are present on some but not all versions of the game -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -ACTION_IF !FILE_EXISTS "override/spell.ids" BEGIN - COPY_EXISTING spell.ids override -END -ACTION_DEFINE_ASSOCIATIVE_ARRAY spell_ids_missing BEGIN - 4611=>DRUID_SHAPESHIFT_BROWNBEAR - 4612=>DRUID_SHAPESHIFT_WOLF - 4613=>DRUID_SHAPESHIFT_BLACKBEAR - 4632=>AVENGER_SHAPESHIFT_SWORDSPIDER - 4633=>AVENGER_SHAPESHIFT_BABYWYVERN - 4634=>AVENGER_SHAPESHIFT_FIRESALAMANDER - 2490=>WIZARD_POLYMORPH_NATURAL_FORM - 2491=>DRUID_SHAPESHIFT_NATURAL_FORM - 2493=>WIZARD_POLYMORPH_FLIND - 2494=>WIZARD_POLYMORPH_OGRE - 2495=>WIZARD_POLYMORPH_SPIDER - 2496=>WIZARD_POLYMORPH_MUSTARD_JELLY - 2497=>WIZARD_POLYMORPH_BROWN_BEAR - 2498=>WIZARD_POLYMORPH_BLACK_BEAR - 2499=>WIZARD_POLYMORPH_WOLF - 4732=>HELM_TRUE_SIGHT - 3101=>INNATE_CURE_LIGHT_WOUNDS - 3102=>INNATE_SLOW_POISON - 3103=>INNATE_DRAW_UPON_HOLY_MIGHT - 3104=>INNATE_LARLOCHS_MINOR_DRAIN - 3105=>INNATE_HORROR - 3106=>INNATE_VAMPIRIC_TOUCH - 4212=>PALADIN_DETECT_EVIL - 4212=>PALADIN_PROTECTION_FROM_EVIL - 4721=>TALOS_STORMSHIELD - 4722=>TALOS_LIGHTNING_BOLT - 4238=>SUN_SOUL_FLAMING_FISTS - 4103=>BLACKGUARD_AURA_OF_DESPAIR - 4935=>BLACKGUARD_SUMMON_FALLEN_DEVA - -END -ACTION_PHP_EACH spell_ids_missing AS code=>name BEGIN - ACTION_IF !FILE_CONTAINS_EVALUATED ("override/spell.ids" "%code%[ %TAB%]+%name%") BEGIN - APPEND "spell.ids" "%code% %name%" - END -END - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// some third-party mods unhelpfully map WIZARD_DISPEL_MAGIC to SPWI326; change this back -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -ACTION_IF enhanced_edition BEGIN - COPY_EXISTING spell.ids override - COUNT_2DA_ROWS 2 rowcount - FOR (i=1;i -o -l " -# -# library.slb and autolib.slb are always checked in the working directory -# unless they don't exist -# -# input files can be given without suffix; if they are, we append .ssl . Ditto if library files are -# given without .slb -# -# if output directory is blank, output to input directory/ssl_out -# -# The variable list has form IsVampire=True&IsLich=False . Each occurrence of the entry before the = sign is replaced -# by the respective entry after the = sign - - @instructions=split(' ',$userinput); - %varhash=(); - $libfiles=0; - $booleans=0; - $aretherefiles=0; - $suffix=".ssl"; - foreach $1 (@instructions) { - chomp $1; - if ($1 eq "-l") { - $suffix=".slb"; - $libfiles=1; - $outputloc=0; - $booleans=0; - } - elsif ($1 eq "-o") { - $outputloc=1; - $libfiles=0; - $booleans=0; - } - elsif ($1 eq "-b") { - $outputloc=0; - $libfiles=0; - $booleans=1; - } - elsif ($1=~m/=/ eq "1") { - $therearevars="Yes"; - @vararraytemp=split('&',$1); - foreach $2 (@vararraytemp) { - @vararraytemp2=split('=',$2); - $varhash{$vararraytemp2[0]}=$vararraytemp2[1]; - } - } - elsif ($outputloc eq 1) { - $outputroot=$1; - $outputoverride="yes"; - } - elsif ($booleans eq 1) { - push @booleanlist,$1; - } - else { - $dotcheck=substr $1,-4,1; - if (length $1<4 or $dotcheck ne ".") { - $1=join('',$1,$suffix); - } - if ($libfiles eq 0 & $booleans eq 0) { - push @filelist,$1; - $aretherefiles=1; - } - else { - push @librarylist,$1; - } - } - - } - - if ($aretherefiles eq "0") { - get_files() - } - - -} - - -##################################################### -sub get_files { - unless (open (infile, lc $sslfiles)) { - die "FATAL ERROR (no input files have been specified and SSL cannot find file list)"; - } - @temparray=; - close(infile); - foreach $1 (@temparray) { - chomp $1; - $dotcheck=substr $1,-4,1; - if (length $1<4 or $dotcheck ne ".") { - $1=join('',$1,".ssl"); - } - push @filelist,$1; - } -} - -##################################################### -sub read_library { - -# push @librarylist, $defaultlibraryfile,$autolibfile; - -foreach $1 (@librarylist) { - $libraryfile=$1; - $libraryfile=~s/\\/\//g; - unless (open (infile, lc $libraryfile)) { - if ($libraryfile eq $defaultlibraryfile) { - print "NOTE: Cannot find the default library file\n" - } - elsif ($libraryfile eq $autolibfile) { - print "NOTE: Cannot find the auto-generated library file\n" - } - else { - die "FATAL ERROR (Cannot find library file $libraryfile)"; - } - } - @library=; - close(infile); - foreach $1 (@library) { - chomp $1; - $scsline=$1; - strip_spaces(); - $checktarget=substr $1,0,6; - $checktrigger=substr $1,0,7; - $checktargetreplace=substr $1,0,14; - $checktriggerreplace=substr $1,0,15; - if ($checktargetreplace eq 'TARGET_REPLACE') { - $keyname=substr $scsline,15; - $targetlist{$keyname}=1; - $libtype="target"; - @{ $targethash{$keyname} } = (); - } - elsif ($checktriggerreplace eq 'TRIGGER_REPLACE') { - $keyname=substr $scsline,16; - $triggerlist{$keyname}=1; - $libtype="trigger"; - @{ $triggerhash{$keyname} } = (); - } - elsif ($checktarget eq 'TARGET') { - $keyname=substr $scsline,7; - $targetlist{$keyname}=1; - $libtype="target"; - } - elsif ($checktrigger eq 'TRIGGER') { - $keyname=substr $scsline,8; - $triggerlist{$keyname}=1; - $libtype="trigger"; - } - elsif ($libtype eq "target") { - push @{ $targethash{$keyname} },$scsline; - } - elsif ($libtype eq "trigger") { - push @{ $triggerhash{$keyname} },$scsline; - } - } -} -} -############################################################ -sub read_input { - unless (open (infile, lc $inputfile)) { - die "cannot find input file"; - } - @scsarray=; - foreach (@scsarray) { - chomp; - } - close (infile); -} -################################################################ -sub work_out_outputfile { - - substr $outputfile,-4,4,".baf"; - if ($outputroot ne "") { - #$outputroot="ssl_out"; - if ($outputfile=~m/\\/ eq "1") { ### delimited by \ - @outputarray=split(/\\/,$outputfile); - } - elsif ($outputfile=~m/\// eq "1") { ### delimited by / - @outputarray=split(/\//,$outputfile); - } - if ($outputfile=~m/\\/ eq "1" or $outputfile=~m/\// eq "1") { - $outputarraylength=scalar @outputarray; - $outputres=$outputarray[$outputarraylength-1]; - $outputarray[$outputarraylength-1]=$outputroot; - if ($outputoverride eq "no") { - $outputdir=join("\/",@outputarray); - } - else { - $outputdir=$outputroot; - } - $outputfile=join("\/",$outputdir,$outputres); - if (-e $outputdir ne "1") { - print "$outputdir \n"; - system "mkdir $outputdir"; - } - } - } - - -} -############################################################ -sub write_output { - - - unless (open(outfile, ">$outputfile")) { - die "FATAL ERROR: SSL cannot open the output file $outputfile"; - } - foreach $1 (@output) { - print outfile "$1\n"; - } - close(outfile); -} - -############################################################ - -sub strip_spaces { - @temparray=split ("//",$scsline); - $scsline=$temparray[0]; - @temparray=split(' ',$scsline); - $scsline=join(' ',@temparray); -} - - -############################################################## - -sub extract_from_brackets { - - $firstbracket=1+index $scsline,"("; - $lastbracket=rindex $scsline,")"; - $size=$lastbracket-$firstbracket; - $scsline=substr $scsline, $firstbracket,$size; - -} - -############################################################## - -sub check_ssl_booleans { - - $abort_print=0; - @temp=(); - foreach $b_line (@output_trial) { - if ($b_line=~m/SSLBoolean/ eq "1") { - $abort_print = 1; - $f_b=1 + index $b_line,"("; - $l_b=rindex $b_line,")"; - $sz=$l_b-$f_b; - $b_line = substr $b_line, $f_b, $sz; - @bool_list=split('\|',$b_line); - foreach $var (@bool_list) { - foreach $possible (@booleanlist) { - if ($var eq $possible) { - $abort_print=0; - } - } - } - } - else { - push @temp,$b_line; - } - } - @output_trial = @temp; -} - -############################################################### - -sub extract_targets { - - $arg1=@_[0]; - - @targetsubarray=(); - @temparray=split('\*',$arg1); - @targetexclude=split('&',$temparray[1]); - @targetconsider=split('&',$temparray[0]); - foreach $8 (@targetconsider) { - $label=0; - if ($targethash{$8}[0] eq "") { - die "Unrecognised TargetBlock ($8) near line $linenum"; - } - while ($targethash{$8}[$label] ne "") { - $inexclude=0; - foreach $7 (@targetexclude) { - if ($7 eq $targethash{$8}[$label]) { - $inexclude=1; - } - } - if ($inexclude eq 0) { - push @targetsubarray,$targethash{$8}[$label]; - } - $label=$label+1; - } - } -} - -############################################################### - -sub process_line { - if ($location eq "none") { - if ($scsline=~m/DEFAULT TRIGGER/ eq "1") { - extract_from_brackets(); - if ($scsline eq "") { - @defaulttrigger=() - } - else { - @defaulttrigger=split('&',$scsline) - } - } - elsif ($scsline eq "BEGIN_ACTION_DEFINITION") { - $location="actiondefinename"; - } - elsif ($scsline eq "IF TRIGGER") { - @trigger=(); - @target=(); - @targetcondition=(); - $triggerindex="0"; - $inloop="No"; - @looplist=(); - $location="trigger"; - $combine=""; - $combinetype=""; - $ignorethisblock="No"; - } - elsif ($scsline eq "IF") { - $location="bafblock"; - $baflocation="triggers"; - @bafactionarray=(); - $ignorethisblock="No"; - @bafblock=(); - push @bafblock,$scsline; - } - elsif ($scsline eq "END") { - die "Unexpected END [1] at line $linenum"; - } - elsif ($scsline eq "THEN DO") { - die "1: Unexpected THEN DO at line $linenum"; - } - elsif ($scsline=~m/VARIABLE/ eq "1") { - } - elsif ($scsline ne "") { - push @output, $scsline; - } - return; - } - elsif ($location eq "actiondefinename") { - - if ($scsline=~m/Name/ eq "1") { - extract_from_brackets(); - $definename=$scsline; - $definenamehash{$definename}=1; - @{ $defineaction{$definename}}=(); - @{ $definetrigger{$definename}}=(); - } - elsif ($scsline=~m/RANDOMIZE/ eq "1") { - extract_from_brackets(); - $randomaction{$definename}=$scsline; - } - elsif ($scsline eq "TRIGGER") { - $location="actiondefinetrigger"; - } - else { - die "Syntax error in action_define block near line $linenum"; - } - } - elsif ($location eq "actiondefinetrigger") { - strip_spaces(); - if ($scsline eq "ACTION") { - $location="actiondefineaction"; - } - elsif ($scsline eq "") { - } - else { - push @{ $definetrigger{$definename} },$scsline; - } - } - elsif ($location eq "actiondefineaction") { - strip_spaces(); - if ($scsline eq "END") { - $location="none"; - } - elsif ($scsline eq "") { - } - else { - push @{ $defineaction{$definename} },$scsline; - } - } - - - elsif ($location eq "trigger") { - if ($scsline=~m/ConditionalTargetBlock/ eq "1") { - extract_from_brackets(); - @condarray=split(';',$scsline); - extract_targets($condarray[0]); - push @target,@targetsubarray; - foreach $x (@targetsubarray) { - push @targetcondition,$condarray[1]; - } - } - elsif ($scsline=~m/TargetBlock/ eq "1") { - extract_from_brackets(); - extract_targets($scsline); - push @target,@targetsubarray; - foreach $x (@targetsubarray) { - push @targetcondition,"None"; - } - } - elsif ($scsline=~m/Target\(/ eq "1") { - extract_from_brackets(); - @temparray=split('&',$scsline); - push @target,@temparray; - } - elsif ($scsline=~m/TriggerBlock/ eq "1") { - extract_from_brackets(); - @triggerlist=split('\|',$scsline); - foreach $2 (@triggerlist) { - $label=0; - $triggerdefined="No"; - while($triggerhash{$2}[$label] ne "") { - push @trigger,$triggerhash{$2}[$label]; - $label=$label+1; - $triggerdefined="Yes"; - } - if ($triggerdefined eq "No") { - die "Unrecognised TriggerBlock: $2, near line $linenum"; - } - } - } - elsif ($scsline=~m/Multiple/ eq "1") { - extract_from_brackets; - @temparray=split(';',$scsline); - @multiplearray=split('&',$temparray[0]); - extract_targets($temparray[1]); - foreach $8 (@targetsubarray) { - foreach $9 (@multiplearray) { - $temp=$9; - $temp=~s/scsmultiple/$8/g; - push @trigger,$temp; - } - } - - } - elsif ($scsline=~m/IgnoreBlock/ eq "1") { - extract_from_brackets; - @temparray=split('\|',$scsline); - foreach $8 (@temparray) { - if ($8 eq "True") { - $ignorethisblock="Yes"; - } - } - - } - elsif ($scsline=~m/RequireBlock/ eq "1") { - extract_from_brackets; - @temparray=split('\|',$scsline); - $requirecheck="No"; - foreach $8 (@temparray) { - if ($8 eq "True") { - $requirecheck="Yes"; - } - } - if ($requirecheck eq "No") { - $ignorethisblock="Yes"; - } - - } - elsif ($scsline=~m/THEN DO/ eq "1") { - $location="action"; - $combine="No"; - @action=(); - @alwaysaction=(); - @continueaction=(); - } - elsif ($scsline eq "IF") { - die "Unexpected IF at line $linenum"; - } - elsif ($scsline eq "IF TRIGGER") { - die "Unexpected IF TRIGGER at line $linenum"; - } - elsif ($scsline eq "THEN") { - die "2: Unexpected THEN DO at line $linenum"; - } - elsif ($scsline eq "END") { - die "Unexpected END [2] at line $linenum"; - } - else { - push @trigger, $scsline; - } - return; - } - - elsif ($location eq "action") { - strip_spaces(); - if ($scsline=~m/ActionCondition\(/ eq "1") { - extract_from_brackets(); - push @action, $scsline; - } - elsif ($scsline=~m/Action\(/ eq "1") { - extract_from_brackets; - push @action, $scsline; - } - elsif ($scsline=~m/Combine\(/ eq "1") { - $combine="Yes"; - extract_from_brackets; - $combinetype=$scsline; - } - elsif ($scsline=~m/OnContinue\(/ eq "1") { - extract_from_brackets; - push @continueaction, $scsline; - } - elsif ($scsline eq "END") { - $location="none"; - process_block(); - } - elsif ($scsline eq "IF") { - die "Unexpected IF at line $linenum"; - } - elsif ($scsline eq "IF TRIGGER") { - die "Unexpected IF TRIGGER at line $linenum"; - } - elsif ($scsline eq "THEN") { - die "Unexpected THEN at line $linenum"; - } - elsif ($scsline eq "THEN DO") { - die "3: Unexpected THEN DO at line $linenum"; - } - else { - push @alwaysaction, $scsline; - } - return; - } - elsif ($location="bafblock") { - strip_spaces(); - if ($scsline eq "END") { - $location="none"; - if ($ignorethisresponse eq "No") { - push @bafblock,@bafactionarray; - } - push @bafblock,$scsline; - - if ($ignorethisblock eq "No") { - push @output, @bafblock; - push @output, ""; - } - } - elsif ($scsline=~m/RESPONSE/ eq "1") { - $baflocation="responses"; - if ($ignorethisresponse eq "No") { - push @bafblock,@bafactionarray; - } - @bafactionarray=(); - push @bafactionarray,$scsline; - $ignorethisresponse = "No"; - - } - elsif ($scsline=~m/IgnoreBlock/ eq "1") { - extract_from_brackets; - @temparray=split('\|',$scsline); - foreach $8 (@temparray) { - if ($8 eq "True") { - if ($baflocation eq "responses") { - $ignorethisresponse="Yes"; - } else { - $ignorethisblock="Yes"; - } - } - } - - } - elsif ($scsline=~m/RequireBlock/ eq "1") { - extract_from_brackets; - @temparray=split('\|',$scsline); - $requirecheck="No"; - foreach $8 (@temparray) { - if ($8 eq "True") { - $requirecheck="Yes"; - } - } - if ($requirecheck eq "No") { - if ($baflocation eq "responses") { - $ignorethisresponse="Yes"; - } else { - $ignorethisblock="Yes"; - } - } - - } - else { - if ($baflocation eq "responses") { - push @bafactionarray,$scsline; - } else { - push @bafblock,$scsline; - } - } - return; - } -} - -############################################################################## -sub streamline_trigger { - - my %sthash=(); - my @starray=(); - foreach $st (@trigger) { - if ($ornumber>0) { - $ornumber=$ornumber-1; - push @starray,$st; - } - elsif ($st=~m/OR\(/ eq "1") { - $firstbracket=1+index $st,"("; - $lastbracket=rindex $st,")"; - $size=$lastbracket-$firstbracket; - $ornumber=substr $st, $firstbracket,$size; - push @starray,$st; - } - elsif ($sthash{$st} ne "Yes") { - push @starray,$st; - $sthash{$st}="Yes"; - } - - } - - @trigger=@starray; - -} - -############################################################################## -sub get_combine_top { - %combinehash=(); - $firsttimethrough="Yes"; - foreach $forcombine (@action) { - @temp=split('\|',$forcombine); - @actionargs=split(',',$temp[0]); - if ($definenamehash{$actionargs[0]} eq "1") { - @temptriggertop=@{ $definetrigger{$actionargs[0]} }; - $statelabel=0; - foreach $replace (@actionargs) { - $replacelabel=join ('',"scsargument",$statelabel); - $triggerlabel=0; - foreach (@temptriggertop) { - $temptriggertop[$triggerlabel]=~s/$replacelabel/$actionargs[$statelabel]/g; - $triggerlabel=$triggerlabel+1; - } - $statelabel=$statelabel+1; - } - } - elsif ($actionargs[0] eq "Literal") { - @temptriggertop=(); - if ($actionargs[2] ne "") { - @temparray=split('&',$actionargs[2]); - foreach $11 (@temparray) { - $temp=$11; - $temp=~s/\\/,/g; - push @temptriggertop,$temp; - } - } - } - elsif ($actionargs[0] eq "LiteralRandomTarget" or $actionargs[0] eq "SpellReplaceRandom") { - die "Error near line $linenum: $actionargs[0] is not valid at present in Combine() "; - } - else { - die "Error near line $linenum: $actionargs[0] is not a recognised action type"; - } - - %temphash=(); - foreach $forcombine2 (@temptriggertop) { - $temphash{$forcombine2}="1"; - } - if ($firsttimethrough eq "Yes") { - %combinehash=%temphash; - @combinearray=@temptriggertop; - $firsttimethrough="No"; - } - else { - @keys=keys %combinehash; - foreach $forcombine2 (@keys) { - if ($temphash{$forcombine2} eq "1") { - $combinehash{$forcombine2}=1; - } - else { - $combinehash{$forcombine2}=0; - } - } - } - } -} -########################################################################### -sub process_block { - - if ($ignorethisblock eq "Yes") { - return; - } - - streamline_trigger(); - if ($combine eq "Yes") { - get_combine_top(); - @triggertop=(); - foreach $processlabel (@combinearray) { - if ($combinehash{$processlabel} eq "1") { - push @triggertop,$processlabel; - } - } - @actiontop="RESPONSE #100\n Continue()"; - @target=reverse @target; - @targetcondition=reverse @targetcondition; - $condition=""; - block_print(); - $combine ="No"; - @target=('LastSeenBy(Myself)'); - push @trigger, "See(LastSeenBy(Myself))"; - @targetcondition=(); - } - if (scalar @action eq 0) { - push @action,"Literal"; - } - foreach $2 (@action) { - @actionsplit=(); - @actionsplit=split('\|',$2); - if ($actionsplit[1] ne "") { - $prob1=$actionsplit[1]; - $prob2=$actionsplit[2]; - } - else { - $prob1=100; - $prob2=0; - } - @actionsplit=split(';',$actionsplit[0]); - if ($actionsplit[1] ne "") { - @temparray=split('&',@actionsplit[1]); - $condition=join("\n",@temparray); - } - else { - $condition=""; - } - @actionargs=split (',',$actionsplit[0]); - make_action(); - - if ($abort_print eq "0") { - block_print(); - } - } -} -############################################################################ -sub make_action { - - @triggertop=(); - @actiontop=(); - @randomreplace=(); - $abort_print=0; - - if ($definenamehash{$actionargs[0]} eq "1") { - @triggertop=@{ $definetrigger{$actionargs[0]} }; - check_ssl_booleans(); - @actiontop=@{ $defineaction{$actionargs[0]} }; - check_ssl_booleans(); - $statelabel=0; - if ($randomaction{$actionargs[0]} ne "") { - $replacelabel=join ('',"scsargument",$randomaction{$actionargs[0]}); - @randomreplace=@actionargs; - splice (@randomreplace,0,$randomaction{$actionargs[0]}-1); - @tempactiontop=@actiontop; - @actiontop=(); - $actionlabel=0; - foreach $replace (@randomreplace) { - foreach $tempstring (@tempactiontop) { - $actiontop[$actionlabel]=$tempstring; - $actiontop[$actionlabel]=~s/$replacelabel/$replace/g; - $actionlabel=$actionlabel+1; - } - } - } - foreach $replace (@actionargs) { - $replacelabel=join ('',"scsargument",$statelabel); - $triggerlabel=0; - foreach (@triggertop) { - $triggertop[$triggerlabel]=~s/$replacelabel/$actionargs[$statelabel]/g; - $triggerlabel=$triggerlabel+1; - } - $actionlabel=0; - foreach (@actiontop) { - $actiontop[$actionlabel]=~s/$replacelabel/$actionargs[$statelabel]/g; - $actionlabel=$actionlabel+1; - } - $statelabel=$statelabel+1; - } - $replacelabel="scsprob1"; - $actionlabel=0; - foreach (@actiontop) { - $actiontop[$actionlabel]=~s/$replacelabel/$prob1/g; - $actionlabel=$actionlabel+1; - } - push @actiontop, @alwaysaction; - } - - elsif ($actionargs[0] eq "SpellReplaceRandom") { - $triggertop[0]="!GlobalTimerNotExpired(\"castspell\",\"LOCALS\")"; - $triggertop[1]="HaveSpell($actionargs[1])"; - $label="2"; - $labelB="0"; - while($actionargs[$label] ne "") { - $actiontop[$labelB]="RESPONSE #$prob1"; - $labelB=$labelB+1; - $actiontop[$labelB]="SetGlobalTimer(\"castspell\",\"LOCALS\",6)"; - $labelB=$labelB+1; - $actiontop[$labelB]="RemoveSpell($actionargs[1])"; - $labelB=$labelB+1; - $actiontop[$labelB]="SpellNoDec(scstarget,$actionargs[$label])"; - push @actiontop, @alwaysaction; - $labelB=#$actiontop; - $labelB=$labelB+1; - $label=$label+1; - } - } - - elsif ($actionargs[0] eq "Literal") { - $actiontop[0]="RESPONSE #$prob1"; - @temparray=split('&',$actionargs[1]); - foreach $11 (@temparray) { - $temp=$11; - $temp=~s/\\/,/g; - push @actiontop,$temp; - } - push @actiontop, @alwaysaction; - if ($actionargs[2] ne "") { - @temparray=split('&',$actionargs[2]); - foreach $11 (@temparray) { - $temp=$11; - $temp=~s/\\/,/g; - push @triggertop,$temp; - } - } - } - elsif ($actionargs[0] eq "LiteralRandomTarget") { - @literalactionarray=(); - @temparray=split('&',$actionargs[1]); - foreach $11 (@temparray) { - $temp=$11; - $temp=~s/\\/,/g; - push @literalactionarray,$temp; - } - if ($actionargs[2] ne "") { - @temparray=split('&',$actionargs[2]); - } - else { - @temparray=(); - } - foreach $11 (@temparray) { - $temp=$11; - $temp=~s/\\/,/g; - push @literalconditionarray,$temp; - } - - $label=0; - extract_targets($actionargs[3]); - foreach $8 (@targetsubarray) { - push @actiontop,"RESPONSE #$prob1"; - foreach $9 (@literalactionarray) { - $temp=$9; - $temp=~s/scsrandom/$8/g; - push @actiontop,$temp; - } - push @actiontop,@alwaysaction; - - } - push @triggertop,@literalconditionarray; - } - - else { - die "unrecognised Action : $actionargs[0], near line $linenum"; - } - if ($prob2 ne "0") { - push @actiontop, "RESPONSE #$prob2"; - push @actiontop, @continueaction; - push @actiontop, "Continue()"; - } -} - -########################################################################################### -sub sub_target { - - $arg1=@_[0]; - $arg2=@_[1]; - $arg1=~s/scstarget/$arg2/g; - return $arg1; -} -########################################################################################### -sub block_print { - - if (@target[0] eq "") { - push @target, "NODEFINEDTARGET"; - } - $conditioncounter=0; - foreach $3 (@target) { - @output_trial=(); - push @output_trial, "IF"; - push @output_trial, @defaulttrigger; - foreach $4 (@triggertop) { - push @output_trial, sub_target($4,$3); - } - if ($combine ne "Yes" and $3 ne "LastSeenBy(Myself)" and $3 ne "NODEFINEDTARGET") { - push @output_trial, "See($3)"; - } - if ($condition ne "") { - push @output_trial, sub_target($condition,$3); - } - foreach $4 (@trigger) { - push @output_trial, sub_target($4,$3); - } - if ($targetcondition[$conditioncounter] ne "None" and $targetcondition[$conditioncounter] ne "") { - @condarray=split('&',$targetcondition[$conditioncounter]); - foreach $4 (@condarray) { - push @output_trial, sub_target($4,$3); - } - } - if ($combine eq "Yes") { - push @output_trial, "See($3)"; - push @output_trial, "False()"; - } - push @output_trial, "THEN"; - foreach $4 (@actiontop) { - push @output_trial, sub_target($4,$3); - } - push @output_trial, "END"; - push @output_trial, ""; - $conditioncounter=$conditioncounter+1; - check_ssl_booleans; - if ($abort_print eq "0") { - push @output,@output_trial; - } - - } -} - -#################################################################### - -sub process_include_blocks { - - $linenum=0; - while ($linenum < scalar @scsarray) { - $scsline=$scsarray[$linenum]; - strip_spaces(); - if ($scsline=~m/INCLUDE FILE/ eq "1") { - if ($therearevars=="Yes") { - foreach $1 (keys %varhash) { - $old=$1; - $new=$varhash{$old}; - $scsline=~s/$old/$new/; - } - } - - extract_from_brackets; - $scsline=~s/\\/\//g; - unless (open (infile, lc $scsline)) { - die "FATAL ERROR (SSL cannot find file requested [$scsline] at line $linenum)"; - } - @temparray=; - close(infile); - splice(@scsarray,$linenum,1,@temparray); - } - else { - $linenum=$linenum+1; - } - - } -} - -################################################################### - - - -sub work_out_outer_loops { - - $linenum=0; - $loopdepth=0; - while ($linenum < scalar @scsarray) { - $scsline=$scsarray[$linenum]; - if ($therearevars=="Yes") { - foreach $1 (keys %varhash) { - $old=$1; - $new=$varhash{$old}; - $scsline=~s/$old/$new/; - $scsarray[$linenum]=$scsline; - } - } - if ($scsline=~m/BEGIN OUTER LOOP/ eq "1" and $loopdepth eq 0) { - extract_from_brackets; - @temparray1=split('\|\|',$scsline); - $loopvariable=$temparray1[0]; - @loopvaluearray=split(';',$temparray1[1]); - @loopdata=(); - $loopdepth=$loopdepth+1; - $loopstartnum=$linenum; - $linenum=$linenum+1; - } - elsif ($scsline=~m/END OUTER LOOP/ eq "1" and $loopdepth eq 1) { - $loopdepth=0; - $looplength=$linenum+1-$loopstartnum; - @templooparray=(); - foreach $10 (@loopvaluearray) { - @temparray0=split('&',$10); - foreach $11 (@loopdata) { - if ($11=~m/$loopvariable/ eq "1") { - foreach $12 (@temparray0) { - $loopline=$11; - $loopline=~s/$loopvariable/$12/; - push @templooparray,$loopline; - } - } - else { - push @templooparray,$11; - } - } - } - splice (@scsarray,$loopstartnum,$looplength,@templooparray); - $linenum=$loopstartnum; - } - elsif ($scsline=~m/BEGIN OUTER LOOP/ eq "1" and $loopdepth ne 0) { - $linenum=$linenum+1; - push @loopdata,$scsline; - $loopdepth=$loopdepth+1; - } - elsif ($scsline=~m/END OUTER LOOP/ eq "1" and $loopdepth ne 1) { - $linenum=$linenum+1; - push @loopdata,$scsline; - $loopdepth=$loopdepth-1; - } - elsif ($loopdepth ne 0) { - $linenum=$linenum+1; - push @loopdata,$scsline; - } - else { - if ($scsline=~m/VARIABLE/ eq "1") { - strip_spaces(); - extract_from_brackets(); - $therearevars="Yes"; - @vararraytemp=split('&',$scsline); - foreach $2 (@vararraytemp) { - @vararraytemp2=split('=',$2); - $varhash{$vararraytemp2[0]}=$vararraytemp2[1]; - } - - } - $linenum=$linenum+1; - } - } - if ($loopdepth ne 0) { - die "SYNTAX ERROR: unclosed outer loops" - } - -} - - -################################################################### - -print "This is Stratagems Scripting Language\n"; -$userinput=shift; -process_user_input; -read_library(); -foreach (@filelist) { - $location="none"; - @scsarray=(); - @trigger=(); - @action=(); - @output=(); - $combine=""; - $inputfile=$_; - - $outputfile=$_; - work_out_outputfile(); - - - $inputfile=~s/\\/\//g; - print "\n \n Input file is $inputfile \n"; - read_input(); - - - work_out_outer_loops(); - process_include_blocks(); - - $linenum=0; - $loopdepth=0; - while ($linenum < scalar @scsarray) { - $scsline=$scsarray[$linenum]; - if ($therearevars=="Yes") { - foreach $1 (keys %varhash) { - $old=$1; - $new=$varhash{$old}; - $scsline=~s/$old/$new/; - } - } - strip_spaces(); - if ($scsline=~m/BEGIN LOOP/ eq "1" and $loopdepth eq 0) { - extract_from_brackets; - @temparray1=split('\|\|',$scsline); - $loopvariable=$temparray1[0]; - @loopvaluearray=split(';',$temparray1[1]); - @loopdata=(); - $loopdepth=$loopdepth+1; - $loopstartnum=$linenum; - $linenum=$linenum+1; - } - elsif ($scsline=~m/END LOOP/ eq "1" and $loopdepth eq 1) { - $loopdepth=0; - $looplength=$linenum+1-$loopstartnum; - @templooparray=(); - foreach $10 (@loopvaluearray) { - @temparray0=split('&',$10); - foreach $11 (@loopdata) { - if ($11=~m/$loopvariable/ eq "1") { - foreach $12 (@temparray0) { - $loopline=$11; - $loopline=~s/$loopvariable/$12/; - push @templooparray,$loopline; - } - } - else { - push @templooparray,$11; - } - } - } - splice (@scsarray,$loopstartnum,$looplength,@templooparray); - $linenum=$loopstartnum; - } - elsif ($scsline=~m/BEGIN LOOP/ eq "1" and $loopdepth ne 0) { - $linenum=$linenum+1; - push @loopdata,$scsline; - $loopdepth=$loopdepth+1; - } - elsif ($scsline=~m/END LOOP/ eq "1" and $loopdepth ne 1) { - $linenum=$linenum+1; - push @loopdata,$scsline; - $loopdepth=$loopdepth-1; - } - elsif ($scsline=~m/INCLUDE FILE/ eq "1" and $loopdepth ne 0) { - extract_from_brackets; - die "waargh, we shouldn't be here (1)"; - unless (open (infile, lc $scsline)) { - die "FATAL ERROR (SSL cannot find file requested [$scsline] at line $linenum)"; - } - @temparray=; - close(infile); - push @loopdata,@temparray; - $linenum=$linenum+1; - } - elsif ($loopdepth ne 0) { - $linenum=$linenum+1; - push @loopdata,$scsline; - } - elsif ($scsline eq "IF") { - $linenum=$linenum+1; - splice (@scsarray,$linenum,0,@defaulttrigger); - process_line; - } - elsif ($scsline=~m/INCLUDE FILE/ eq "1") { - extract_from_brackets; - die "waargh, we shouldn't be here (2)"; - print "attempting to open file $scsline ..."; - unless (open (infile, lc $scsline)) { - die "FATAL ERROR (SSL cannot find file requested [$scsline] at line $linenum)"; - } - print "successful!\n"; - @temparray=; - close(infile); - splice(@scsarray,$linenum,1,@temparray); - } - else { - $linenum=$linenum+1; - process_line; - } - } - $outputexists="No"; - if ($loopdepth ne 0) { - die "SYNTAX ERROR: unclosed loops" - } - foreach $outputcheck (@output) { - chomp $outputcheck; - if ($outputcheck ne "") { - $outputexists="Yes" - } - } - if ($outputexists eq "Yes") { - print "\n Output file is $outputfile \n"; - write_output(); - } - else { - print "\n No output file for this input file "; - } -} diff --git a/iwdification/languages/english/DW_IWDSPELLS_ARCANE.TRA b/iwdification/languages/english/DW_IWDSPELLS_ARCANE.TRA deleted file mode 100644 index 788ca5d..0000000 --- a/iwdification/languages/english/DW_IWDSPELLS_ARCANE.TRA +++ /dev/null @@ -1,60 +0,0 @@ -@1="Create Boneguard" -@2="Create Boneguard -(Necromancy) - -Level: 9 -Range: 20 ft. -Duration: 8 rounds + 1 round/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -With the casting of this spell, the wizard calls forth 1d2 boneguards. These undead monstrosities appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are destoyed." - -@3 = "Conjure Earth Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Earth Elemental spell, the caster opens a special gate to the Elemental Plane of Earth, and an earth elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@4 = "Conjure Fire Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Fire Elemental spell, the caster opens a special gate to the Elemental Plane of Fire, and a fire elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@5 = "Conjure Air Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Air Elemental spell, the caster opens a special gate to the Elemental Plane of Air, and an air elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@6 = "Conjure Water Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Water Elemental spell, the caster opens a special gate to the Elemental Plane of Water, and a water elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@7="Conjure Lesser Water Elemental" -@8="Elder Water Elemental" -@9="Lesser Water Elemental" -@10="Mordenkainen's Force Blade" \ No newline at end of file diff --git a/iwdification/languages/english/DW_IWDSPELLS_DIVINE.TRA b/iwdification/languages/english/DW_IWDSPELLS_DIVINE.TRA deleted file mode 100644 index 566acf1..0000000 --- a/iwdification/languages/english/DW_IWDSPELLS_DIVINE.TRA +++ /dev/null @@ -1,14 +0,0 @@ -@1="Chant -(Conjuration/Summoning) - -Level: 2 -Sphere: Combat -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 9 -Area of Effect: 60-ft. radius -Saving Throw: None - -By means of the Chant spell, the priest brings special favor upon self and party and causes harm to enemies. When the Chant spell is completed, all the priest's allies within the area of effect gain a +1 bonus to attack rolls, minimum damage rolls, and Saving Throws. Furthermore, damage dice for all effects outside a weapon's base damage is reduced by 1. For example, a 6d6 fireball will do 6d5 damage, and a flaming long sword that deals 1d8+2 slashing plus 1d3 fire damage will deal 1d8+2 slashing plus 1d2 fire damage instead. The priest's enemies suffer from the opposite effects. - -Multiple chants are not cumulative. This spell requires a moderate amount of concentration by the caster, so movement is slowed by half." \ No newline at end of file diff --git a/iwdification/languages/english/fl#utf8.mrk b/iwdification/languages/english/fl#utf8.mrk deleted file mode 100644 index 0e60175..0000000 Binary files a/iwdification/languages/english/fl#utf8.mrk and /dev/null differ diff --git a/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_ARCANE.TRA b/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_ARCANE.TRA deleted file mode 100644 index 788ca5d..0000000 --- a/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_ARCANE.TRA +++ /dev/null @@ -1,60 +0,0 @@ -@1="Create Boneguard" -@2="Create Boneguard -(Necromancy) - -Level: 9 -Range: 20 ft. -Duration: 8 rounds + 1 round/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None -With the casting of this spell, the wizard calls forth 1d2 boneguards. These undead monstrosities appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are destoyed." - -@3 = "Conjure Earth Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Earth Elemental spell, the caster opens a special gate to the Elemental Plane of Earth, and an earth elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@4 = "Conjure Fire Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Fire Elemental spell, the caster opens a special gate to the Elemental Plane of Fire, and a fire elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@5 = "Conjure Air Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Air Elemental spell, the caster opens a special gate to the Elemental Plane of Air, and an air elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@6 = "Conjure Water Elemental -(Conjuration/Summoning) - -Level: 6 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -Upon casting a Conjure Water Elemental spell, the caster opens a special gate to the Elemental Plane of Water, and a water elemental is summoned in the vicinity of the caster. There is a 60% chance that a 12-Hit-Dice elemental appears, a 35% chance that a 16-Hit-Dice elemental appears, and a 5% chance that a 24-Hit-Dice elemental appears. The elemental will do the bidding of the caster until it is slain or the duration of the spell runs out. All of the commands given to the elemental are done telepathically, so there is no time lost due to miscommunication and no need to know the language of the summoned creature." -@7="Conjure Lesser Water Elemental" -@8="Elder Water Elemental" -@9="Lesser Water Elemental" -@10="Mordenkainen's Force Blade" \ No newline at end of file diff --git a/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_DIVINE.TRA b/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_DIVINE.TRA deleted file mode 100644 index 566acf1..0000000 --- a/iwdification/languages/english/fl#utf8_DW_IWDSPELLS_DIVINE.TRA +++ /dev/null @@ -1,14 +0,0 @@ -@1="Chant -(Conjuration/Summoning) - -Level: 2 -Sphere: Combat -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 9 -Area of Effect: 60-ft. radius -Saving Throw: None - -By means of the Chant spell, the priest brings special favor upon self and party and causes harm to enemies. When the Chant spell is completed, all the priest's allies within the area of effect gain a +1 bonus to attack rolls, minimum damage rolls, and Saving Throws. Furthermore, damage dice for all effects outside a weapon's base damage is reduced by 1. For example, a 6d6 fireball will do 6d5 damage, and a flaming long sword that deals 1d8+2 slashing plus 1d3 fire damage will deal 1d8+2 slashing plus 1d2 fire damage instead. The priest's enemies suffer from the opposite effects. - -Multiple chants are not cumulative. This spell requires a moderate amount of concentration by the caster, so movement is slowed by half." \ No newline at end of file diff --git a/iwdification/languages/english/fl#utf8_GAME_STRINGS.TRA b/iwdification/languages/english/fl#utf8_GAME_STRINGS.TRA deleted file mode 100644 index 066bda9..0000000 --- a/iwdification/languages/english/fl#utf8_GAME_STRINGS.TRA +++ /dev/null @@ -1,1454 +0,0 @@ -// strings in this file will be overridden by strings in game_strings_ee for EE games. -// this file is ANSI, and will be converted to UTF-8 for EE games. -// use the IWDification translator tool on the G3 forums to automatically translate most of these. - - @3001 = ~Emotion, Hopelessness~ - @3002 = ~Emotion, Hopelessness -(Enchantment/Charm) - -Level: 4 -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: Neg. - -This spell creates the emotion of hopelessness within the area of effect. All enemies who fail to save vs. Spell just stand and do nothing for 1 turn. This spell nullifies Emotion, Hope within the area of effect at the time of casting.~ - @3003 = ~Hopelessness~ - @3004 = ~Polymorph Self -(Alteration) - -Level: 4 -Range: 0 -Duration: 1 turn + 3 rounds/level -Casting Time: 4 -Area of Effect: The caster -Saving Throw: None - -When this spell is cast, the wizard is able to assume the form of another creature. The caster also gains the physical mode of locomotion and breathing as well. This spell does not give the new form's other abilities such as special attacks and magic, nor does it run the risk of the wizard changing personality and mentality. - -For the duration of the spell, the caster may transform into any of the new forms at any time, and as many times as wishes. The caster gains the natural attacks of the new form in some cases and may use weapons in others. The mental attributes of the wizard remain the same, but all the physical attributes are obtained from the new form. Also, any natural protections that the new form offers are conferred to the wizard, such as the resistance to missile and crushing weapons possessed by the slime form. - -The possible forms given by Polymorph Self are: - Flind: wields a magical halberd (+1 fire damage and strikes as a +3 weapon) - Mustard Jelly: capable of poisoning or slowing opponents (if they fail a Save vs. Death when hit) - Ogre: capable of causing massive damage with its fists - Spider: causes poison damage when it hits an opponent - -In addition, the caster may choose the form of brown bear, black bear, wolf, boring beetle, polar bear, or winter wolf.~ - @3005 = ~Shapeshift: Boring Beetle~ - @3006 = ~Shapeshift: Boring Beetle - -Strength: 18/51 -Dexterity: 7 - -Base Armor Class: -2 -Number of Attacks: 1 -Attack Damage: 5d4 slashing - -Special Abilities: -– Slashing Resistance: 50% -– Piercing Resistance: 50% -– Missile Resistance: 50% - -The Druid is healed 12 Hit Points after using this ability.~ - @3007 = ~Shapeshift: Polar Bear~ - @3008 = ~Shapeshift: Polar Bear - -Strength: 18/00 -Dexterity: 10 - -Base Armor Class: 4 -Number of Attacks: 3 -Attack Damage: 1d12 slashing - -Special Abilities: -– Cold Resistance: 75% -– Fire Resistance: -25% - -The Druid is healed 12 Hit Points after using this ability.~ - @3009 = ~Shapeshift: Winter Wolf~ - @3010 = ~Expeditious Retreat~ - @3011 = ~Expeditious Retreat -(Alteration) - -Level: 1 -Range: 0 -Duration: 3 rounds -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None - -This spell doubles the caster's normal speed for a short period of time... usually long enough to escape. Other movement-altering effects, such as Haste and Slow, cannot affect the caster while this spell is in effect. While Expeditious Retreat is active, the caster cannot attack, cast spells, or use any items or special abilities... can only run.~ - @3012 = ~Shapeshift: Winter Wolf - -Strength: 18 -Dexterity: 13 - -Base Armor Class: 2 -Number of Attacks: 2 -Attack Damage: 1d6 slashing - -Special Abilities: -– Cold Resistance: 75% -– Fire Resistance: -25% - -The Druid is healed 12 Hit Points after using this ability.~ - @3013 = ~Boring Beetle~ - @3014 = ~Polymorph Self -(Alteration) - -Level: 4 -Range: 0 -Duration: 1 turn + 3 rounds/level -Casting Time: 4 -Area of Effect: The caster -Saving Throw: None - -When this spell is cast, the wizard is able to assume the form of another creature. The caster also gains the physical mode of locomotion and breathing as well. This spell does not give the new form's other abilities such as special attacks and magic, nor does it run the risk of the wizard changing personality and mentality. - -For the duration of the spell, the caster may transform into any of the new forms at any time, and as many times as wishes. The caster gains the natural attacks of the new form in some cases and may use weapons in others. The mental attributes of the wizard remain the same, but all the physical attributes are obtained from the new form. Also, any natural protections that the new form offers are conferred to the wizard, such as the resistance to missile and crushing weapons possessed by the slime form. - -The possible forms given by Polymorph Self are: - Flind: wields a magical halberd (+1 fire damage and strikes as a +3 weapon) - Mustard Jelly: capable of poisoning or slowing opponents (if they fail a Save vs. Death when hit) - Ogre: capable of causing massive damage with its fists - Spider: causes poison damage when it hits an opponent - -In addition, the caster may choose the form of brown bear, black bear, wolf, polar bear, or winter wolf.~ - @3015 = ~Polar Bear~ - @3020 = ~Snilloc's Snowball Swarm~ - @3021 = ~Snilloc's Snowball Swarm -(Evocation) - -Level: 2 -Range: Visual range of the caster -Duration: Instant -Casting Time: 2 -Area of Effect: 15-ft. radius -Saving Throw: 1/2 - -This spell causes a flurry of snowballs to erupt from a point within range. These snowballs will hit everything within the area of effect, doing 1d3 points of cold damage per level, up to a maximum of 8d3 points at level 8. Against fire-using or fire-dwelling creatures, it inflicts 1d6 points of cold damage per level, up to a maximum of 8d6 points at level 8.~ - @3030 = ~Decastave~ - @3031 = ~Decastave -(Evocation) - -Level: 2 -Range: 0 -Duration: 3 rounds + 1 round/level -Casting Time: 2 -Area of Effect: The caster -Saving Throw: None - -This spell creates a staff of force in the caster's hand. It is treated as a magical weapon, doing 1d6 Hit Points of damage per hit, and it can hit creatures that require +1 weapons to hit. It is a staff, however, so if the caster does not have a proficiency in staff weapons, then the Decastave is used at a penalty. The staff also has the power to drain a target of 1d2 Hit Points on every strike. These Hit Points are added to the caster's, but they can only heal damage the caster has taken; they will not raise Hit Points beyond normal maximum.~ - @3040 = ~Cat's Grace~ - @3041 = ~Cat's Grace -(Alteration) - -Level: 2 -Range: Touch -Duration: 1 hour/level -Casting Time: 2 -Area of Effect: 1 creature -Saving Throw: None - -This spell magically increases a target's Dexterity. The amount depends on the target's class: Rogues gain 1d8 points, warriors and wizards gain 1d6 points, and priests gain 1d4 points. If a character has more than one class, the larger die is used. Cat's Grace cannot raise a target's Dexterity past 20.~ - @3050 = ~Icelance~ - @3051 = ~Icelance -(Evocation) - -Level: 3 -Range: Visual range of the caster -Duration: Instant -Casting Time: 3 -Area of Effect: 1 creature -Saving Throw: Special - -This spell fires a magical lance of ice at a target of the caster's choosing. It automatically hits, inflicting 5d6 points of cold damage and forcing the target to make a Save vs. Spell or be stunned for 3 rounds.~ - @3060 = ~Lance of Disruption~ - @3061 = ~Lance of Disruption -(Invocation) - -Level: 3 -Range: 100 ft. -Duration: Instant -Casting Time: 3 -Area of Effect: Special -Saving Throw: 1/2 - -This spell shoots a lance of force, which travels from the caster to a specified point 100 ft. in the distance. Any creatures in the lance's path take 5d4 points of crushing damage plus 2 points of damage per level of the caster (maximum of +30). Victims can save vs. Spell for half damage.~ - @3070 = ~Beltyn's Burning Blood~ - @3071 = ~Beltyn's Burning Blood -(Necromancy) - -Level: 4 -Range: Visual range of the caster -Duration: 1 round/2 levels -Casting Time: 4 -Area of Effect: 1 creature -Saving Throw: Neg. - -This spell turns a target's blood to flame, doing 3d4 Hit Points of damage every round and driving the victim berserk with pain. The target gets to save vs. Spell every round; if successful, the damage and berserk state are negated. This spell does not work against undead or extraplanar creatures that do not have blood (such as elementals). If the creature is resistant to fire, this resistance will lower or nullify the damage from this spell.~ - @3080 = ~Shadow Monsters~ - @3081 = ~Shadow Monsters -(Illusion/Phantasm) - -Level: 4 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 4 -Area of Effect: Special -Saving Throw: None - -This spell shapes material from the Demiplane of Shadow into illusionary monsters. Up to six shadowy creatures can be summoned at once, but their total Hit Dice will normally not exceed the spellcaster's level.~ - @3082 = ~Lizard Man~ - @3090 = ~Emotion, Courage~ - @3091 = ~Emotion, Courage -(Enchantment/Charm) - -Level: 4 -Range: Visual range of the caster -Duration: 1 hour -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: None - -This spell creates the emotion of courage within the area of effect. All creatures affected by the spell gain +1 to hit, +3 to their damage rolls, and +5 temporary Hit Points (which can put them above their maximum Hit Points). This spell nullifies all fear effects within the area of effect at the time of casting.~ - @3092 = ~Courage~ - @3100 = ~Emotion, Fear~ - @3101 = ~Emotion, Fear -(Enchantment/Charm) - -Level: 4 -Range: Visual range of the caster -Duration: 5 rounds -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: Neg. - -This spell creates the emotion of fear within the area of effect. All enemies who fail to save vs. Spell flee for 5 rounds. This spell nullifies Emotion, Courage within the area of effect at the time of casting.~ - @3110 = ~Emotion, Hope~ - @3111 = ~Emotion, Hope -(Enchantment/Charm) - -Level: 4 -Range: Visual range of the caster -Duration: 1 hour -Casting Time: 4 -Area of Effect: 7-ft. radius -Saving Throw: None - -This spell creates the emotion of hope within the area of effect. All creatures affected by the spell gain a morale boost and +2 on their Saving Throws, attack rolls, and damage rolls. This spell nullifies all hopelessness effects within the area of effect at the time of casting.~ - @3112 = ~Hope~ - @3120 = ~Mordenkainen's Force Missiles~ - @3121 = ~Mordenkainen's Force Missiles -(Invocation) - -Level: 4 -Range: Visual range of the caster -Duration: Instant -Casting Time: 4 -Area of Effect: 2-ft. radius -Saving Throw: Special - -This spell creates a brilliant globe of magical energy that streaks forth from the caster's hand to unerringly strike its target, much like a Magic Missile spell. The wizard creates one missile at 7th level and an additional missile at every third level after 7th-in other words, two missiles at 10th level, three at 13th, four at 16th, and so on, to a maximum of seven missiles at 25th level. Each missile inflicts 2d4 points of damage to the target and then bursts in a 2-ft. radius concussive blast that inflicts 1 point of damage per level of the caster-for example, a 12th-level wizard could conjure two force missiles, each of which strikes for 2d4+12 points of magic damage. Creatures taking damage can attempt a Save vs. Spell to negate the concussion damage, but the impact of the missile itself allows no Saving Throw. The 1st-level wizard spell Shield will absorb the force missiles harmlessly, including the concussion damage.~ - @3130 = ~Shout~ - @3131 = ~Shout -(Invocation) - -Level: 4 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 17-ft. cone with 15-deg. arc -Saving Throw: Special - -Shout grants the wizard tremendous vocal powers, allowing to emit an earsplitting roar from mouth in a cone-shaped area of effect. Any creature within this area is deafened for 9 rounds and suffers 4d6 points of magic damage. A successful Save vs. Spell negates the deafness and reduces the damage by half.~ - @3140 = ~Vitriolic Sphere~ - @3141 = ~Vitriolic Sphere -(Conjuration) - -Level: 4 -Range: Visual range of the caster -Duration: Special -Casting Time: 4 -Area of Effect: 5-ft. radius -Saving Throw: Special - -This spell conjures a sphere of glowing emerald acid that the caster can direct to strike any target within range. When it reaches its target, the sphere explodes and drenches the victim in potent acid. The victim suffers 1d4 points of acid damage per caster level, to a maximum of 12d4 points of damage. After the initial damage, the victim must save vs. Spell to avoid more damage. If unsuccessful, the victim continues to suffer acid damage in the following rounds, sustaining two less dice of damage each round. For example, an 8th-level wizard inflicts 8d4 damage with this spell on the first round, 6d4 on the second round, 4d4 on the third round, 2d4 on the fourth round, and the spell ends on the fifth round. Each round after the first, the victim is entitled to a Save vs. Spell to avoid further damage. - -The vitriolic sphere also splashes acid in a 5-ft. radius around the primary target. Any creatures within the splash radius must save vs. Petrification/Polymorph or suffer a splash hit that inflicts 1d4 points of damage per every five levels of the caster. Splash hits do not cause continuing damage.~ - @3150 = ~Shroud of Flame~ - @3151 = ~Shroud of Flame -(Invocation) - -Level: 5 -Range: Visual range of the caster -Duration: 1 round/2 levels (special) -Casting Time: 5 -Area of Effect: 5-ft. radius -Saving Throw: Neg. - -This spell causes a creature to burst into flames if it fails a Save vs. Spell. The creature will burn for 2d6 points of fire damage every round, and gouts of flame erupt from the burning target, causing any creatures within 5 ft. to take 1d4 points of fire damage from the flames. Anyone hit by the victim's flames must also make a Save vs. Spell to avoid contracting the shroud themselves. The shroud of flame dissipates if the caster and target are no longer in the same area. This spell is particularly useful in dispersing packs of trolls and frost salamanders.~ - @3160 = ~Demi-Shadow Monsters~ - @3161 = ~Demi-Shadow Monsters -(Illusion/Phantasm) - -Level: 5 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 5 -Area of Effect: Special -Saving Throw: None - -This spell is similar to the 4th-level wizard spell Shadow Monsters, except the summoned creatures are much more powerful.~ - @3162 = ~Goblin Elite~ - @3163 = ~Tough Lizard Man~ - @3170 = ~Summon Shadow~ - @3171 = ~Summon Shadow -(Conjuration/Summoning, Necromancy) - -Level: 5 -Range: Visual range of the caster -Duration: 1 round + 1 round/level -Casting Time: 5 -Area of Effect: Special -Saving Throw: None - -This spell summons three 4-HD shadows. The shadows will obey the orders of the caster, attacking enemies or performing tasks until the spell expires or the shadows are slain.~ - @3180 = ~Contact Other Plane~ - @3181 = ~Contact Other Plane -(Divination) - -Level: 5 -Range: 0 -Duration: Instant -Casting Time: 9 -Area of Effect: The caster -Saving Throw: None - -This spell allows the wizard to contact powers from other planes of existence in order to receive advice and information. The nature of the divination is oriented around knowledge of powerful foes, magic items, and spells.~ - @3182 = ~Planar Spirit~ - @3190 = ~Conjure Fire Elemental~ - @3191 = ~Conjure Fire Elemental -(Conjuration/Summoning) - -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Fire and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ - @3192 = ~Fire Elemental~ - @3200 = ~Conjure Earth Elemental~ - @3201 = ~Conjure Earth Elemental -(Conjuration/Summoning) - -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Earth and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ - @3202 = ~Earth Elemental~ - @3210 = ~Conjure Air Elemental~ - @3211 = ~Conjure Air Elemental -(Conjuration/Summoning) - -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Air and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ - @3212 = ~Air Elemental~ - @3220 = ~Conjure Water Elemental~ - @3221 = ~Conjure Water Elemental -(Conjuration/Summoning) - -Level: 5 -Range: Visual range of the caster -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -This spell allows the caster to summon an 8-HD elemental from the Elemental Plane of Water and bind it to will. This elemental will fight on behalf of the caster until the spell duration expires or the elemental is destroyed.~ - @3222 = ~Water Elemental~ - @3230 = ~Antimagic Shell~ - @3231 = ~Antimagic Shell -(Abjuration) - -Level: 6 -Range: 0 -Duration: 1 turn/level -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None - -This spell surrounds the caster with an invisible barrier that moves with . This barrier makes the wizard immune to any magical attacks, but it prevents from casting spells. - -Antimagic Shell also dispels deafness and feeblemindedness in the caster.~ - @3240 = ~Lich Touch~ - @3241 = ~Lich Touch -(Necromancy) - -Level: 6 -Range: Touch -Duration: 1 round/level -Casting Time: 6 -Area of Effect: The caster -Saving Throw: Special - -This spell confers the powers of a lich's touch and a lich's immunities upon the caster. The wizard gains immunity to paralysis and fear while the spell is in effect, and hands glow with an unearthly blue radiance that does 1d10 cold damage to a target and paralyzes them unless a Save vs. Paralysis is made. This spell has no effect on undead.~ - @3250 = ~Monster Summoning IV~ - @3251 = ~Monster Summoning IV -(Conjuration/Summoning) - -Level: 6 -Range: 20 ft. -Duration: 5 rounds + 1 round/level -Casting Time: 6 -Area of Effect: Special -Saving Throw: None - -With the casting of this spell the wizard summons 1d3 4th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ - @3252 = ~Yeti~ - @3260 = ~Otiluke's Freezing Sphere~ - @3261 = ~Otiluke's Freezing Sphere -(Alteration, Evocation) - -Level: 6 -Range: Visual range of the caster -Duration: Instant -Casting Time: 6 -Area of Effect: 1 creature -Saving Throw: Neg. - -This spell fires an orb of cold at a creature that inflicts 1d4+2 points of cold damage per level of the caster. If the target makes its Save vs. Spell, however, they have dodged the orb and avoided all damage.~ - @3270 = ~Shades~ - @3271 = ~Shades -(Illusion/Phantasm) - -Level: 6 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 6 -Area of Effect: Special -Saving Throw: None - -Shades is similar to Shadow Monsters and Demi-Shadow Monsters-it allows the caster to shape material from the Demiplane of Shadow into illusionary creatures. These shadows are tougher than the shadows summoned by Shadow Monsters and Demi-Shadow Monsters, and they will obey the caster until the spell expires or they are slain.~ - @3272 = ~Umber Hulk~ - @3273 = ~Umber Hulk Gaze~ - @3280 = ~Darts of Bone~ - @3281 = ~Darts of Bone -(Necromancy) - -Level: 6 -Range: 0 -Duration: 5 rounds -Casting Time: 5 -Area of Effect: The caster -Saving Throw: None - -This spell creates nine darts that can be used by the caster and cannot be unequipped so long as the spell is in effect. The darts are +3, do 1d4+3 missile damage, and a creature struck by a dart must save vs. Death or take 2d6 magic damage and have its Strength reduced by 3 for 5 rounds. Strength reduction is noncumulative, and failing a save while the reduction is in effect will not extend its duration. The caster's weapon proficiency with darts (or lack thereof) has no effect on the darts' chances to hit a target.~ - @3282 = ~Dart of Bone +3~ - @3290 = ~Soul Eater~ - @3291 = ~Soul Eater -(Necromancy) - -Level: 6 -Range: Visual range of the caster -Duration: Instant -Casting Time: 5 -Area of Effect: 7-ft. radius -Saving Throw: None - -This spell deals 3d8 magic damage to all living creatures within a 14-ft. radius. Any creatures that die as a result of this damage are obliterated, and their essence is transformed into a 3-Hit-Dice skeleton under control of the caster. Also, for each creature that dies in this manner, the caster receives a +1 bonus to Strength, Dexterity, and Constitution for 1 turn. Soul Eater has no effect on undead, constructs, and elemental creatures.~ - @3300 = ~Trollish Fortitude~ - @3301 = ~Trollish Fortitude -(Necromancy) - -Level: 6 -Range: 0 -Duration: 2 turns -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None - -This spell imbues the caster with the resilience of a troll, allowing the caster to regenerate 5 Hit Points per round up to maximum Hit Points.~ - @3310 = ~Monster Summoning V~ - @3311 = ~Monster Summoning V -(Conjuration/Summoning) - -Level: 7 -Range: 20 ft. -Duration: 6 rounds + 1 round/level -Casting Time: 7 -Area of Effect: Special -Saving Throw: None - -With the casting of this spell the wizard summons 1d3 5th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ - @3312 = ~Ju-ju Zombie~ - @3313 = ~Minotaur~ - @3320 = ~Malavon's Rage~ - @3321 = ~Malavon's Rage -(Evocation) - -Level: 7 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 7-ft. radius -Saving Throw: 1/2 - -Malavon's Rage was created by the dark elf sorcerer Malavon. It shoots darts of pure energy out from the caster's body in all directions, harming friend and foe alike. The small wedges of magic do 20d4 points of piercing damage (save vs. Spell for half) to everything caught in their path. This spell is especially useful when a wizard is surrounded by enemies.~ - @3330 = ~Acid Storm~ - @3331 = ~Acid Storm -(Evocation) - -Level: 7 -Range: Visual range of the caster -Duration: 1 round/level -Casting Time: 7 -Area of Effect: 12-ft. radius -Saving Throw: 1/2 - -This spell unleashes an acidic downpour on the area of effect, doing 1d4 points of acid damage each round for the first three rounds, 1d6 points for the next three rounds, and 1d8 points for each round thereafter. Moving out of the area of effect does not stop the damage-the acid adheres to the skin, and any creatures in the area of effect when Acid Storm is cast continue to suffer acid damage as long as the spell duration lasts. Creatures make a Save vs. Spell every round after they have been hit by the cloud-if successful, they only take half damage (for that round only).~ - @3340 = ~Seven Eyes~ - @3341 = ~Seven Eyes -(Abjuration) - -Level: 7 -Range: 0 -Duration: 2 turns -Casting Time: 7 -Area of Effect: The caster -Saving Throw: None - -This spell conjures forth seven magical orbs that float in a ring above the caster's head. Each eye has a defensive and offensive ability, though once either one is used, the eye will lose its power. The powers of each eye are described below. - -Eye of the Mind: This orb protects the caster against mental attacks such as charm, emotion, and fear. The eye can be expended as the 1st-level wizard spell Charm Person, bringing a humanoid creature under the caster's control for 1 turn (Save vs. Spell negates). - -Eye of the Sword: This eye deflects the first physical damaging attack that strikes the caster. The eye may be expended as the 1st-level wizard spell Magic Missile, creating up to 5 missiles (one for every two levels of experience besides the first) that each strike a target for 1d4+1 magic damage. - -Eye of the Mage: This eye absorbs one manifestation of fire, electrical, cold, or acid damage. The eye can also be expended as the 3rd-level wizard spell Lightning Bolt, dealing 1d6 electrical damage per level (capped at 10d6) to all creatures in its path. - -Eye of Venom: This eye halts any one attack or effect that could poison the caster. The eye can also be expended as the 4th-level priest spell Poison, dealing 20 points of damage to one creature over a period of 20 seconds (Save vs. Poison negates). - -Eye of the Spirit: This eye blocks one instant-death magic attack (Death Spell; Finger of Death; Power Word, Kill; Slay Living; Destruction). The wizard may instead choose to expend the eye's power as the 2nd-level wizard spell Ray of Enfeeblement, dropping a target's Strength to 5 (Save vs. Spell negates). - -Eye of Fortitude: This eye blocks one stunning, deafness, blindness, or silence effect. It may alternatively be expended as the 4th-level wizard spell Shout, dealing 4d6 magic damage and deafening creatures within a 35-ft. cone (Save vs. Spell halves damage and negates deafness). - -Eye of Stone: This eye shields the caster from a single petrification attack. It can also be used as the 3rd-level wizard spell Hold Person, rendering humanoids of man-size or smaller immobile for 1 round/level (Save vs. Spell negates).~ - @3342 = ~Eye of the Mind~ - @3343 = ~Eye of the Mind - -This orb protects the caster against mental attacks such as charm, emotion, and fear. - -The eye can be expended as the 1st-level wizard spell Charm Person, bringing a humanoid creature under the caster's control for 1 turn (Save vs. Spell negates).~ - @3344 = ~Eye of the Sword~ - @3345 = ~Eye of the Sword - -This eye deflects the first physical damaging attack that strikes the caster. - -The eye may be expended as the 1st-level wizard spell Magic Missile, creating up to 5 missiles (one for every two levels of experience besides the first) that each strike a target for 1d4+1 magic damage.~ - @3346 = ~Eye of the Mage~ - @3347 = ~Eye of the Mage - -This eye absorbs one manifestation of fire, electrical, cold, or acid damage. - -The eye can also be expended as the 3rd-level wizard spell Lightning Bolt, dealing 1d6 electrical damage per level (capped at 10d6) to all creatures in its path.~ - @3348 = ~Eye of Venom~ - @3349 = ~Eye of Venom - -This eye halts any one attack or effect that could poison the caster. - -The eye can also be expended as the 4th-level priest spell Poison, dealing 20 points of damage to one creature over a period of 20 seconds (Save vs. Poison negates).~ - @3350 = ~Eye of the Spirit~ - @3351 = ~Eye of the Spirit - -This eye blocks one instant-death magic attack (Death Spell; Finger of Death; Power Word, Kill; Slay Living; Destruction). - -The wizard may instead choose to expend the eye's power as the 2nd-level wizard spell Ray of Enfeeblement, dropping a target's Strength to 5 (Save vs. Spell negates).~ - @3352 = ~Eye of Fortitude~ - @3353 = ~Eye of Fortitude - -This eye blocks one stunning, deafness, blindness, or silence effect. - -It may alternatively be expended as the 4th-level wizard spell Shout, dealing 4d6 magic damage and deafening creatures within a 35-ft. cone (Save vs. Spell halves damage and negates deafness).~ - @3354 = ~Eye of Stone~ - @3355 = ~Eye of Stone - -This eye shields the caster from a single petrification attack. - -It can also be used as the 3rd-level wizard spell Hold Person, rendering humanoids of man-size or smaller immobile for 1 round/level (Save vs. Spell negates).~ - @3356 = ~Eye of Stone blocks effect and dissipates.~ - @3357 = ~Eye of Fortitude blocks effect and dissipates.~ - @3358 = ~Eye of the Spirit blocks effect and dissipates.~ - @3359 = ~Eye of Venom blocks effect and dissipates.~ - @3360 = ~Eye of the Mage blocks effect and dissipates.~ - @3361 = ~Eye of the Sword blocks effect and dissipates.~ - @3362 = ~Eye of the Mind blocks effect and dissipates.~ - @3370 = ~Suffocate~ - @3371 = ~Suffocate -(Alteration) - -Level: 7 -Range: Visual range of the caster -Duration: 4 rounds -Casting Time: 7 -Area of Effect: 7-ft. radius -Saving Throw: Special - -This spell draws the breath out of all creatures within the area of effect. Creatures that do not breathe are unaffected. Suffocating creatures suffer -4 to Armor Class, -4 to hit, -6 to Dexterity, one less attack per round, half movement rate, and take 4d8 points of magic damage per round. A successful Saving Throw negates all effects but 2d8 points of damage for one round. The effects begin to fade when the creature moves out of the area of effect, although it can take a round for a character to catch their second wind.~ - @3380 = ~Monster Summoning VI~ - @3381 = ~Monster Summoning VI -(Conjuration/Summoning) - -Level: 8 -Range: 20 ft. -Duration: 7 rounds + 1 round/level -Casting Time: 8 -Area of Effect: Special -Saving Throw: None - -With the casting of this spell the wizard summons 1d3 6th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ - @3382 = ~Salamander~ - @3383 = ~Frost Salamander~ - @3390 = ~Mind Blank~ - @3391 = ~Mind Blank -(Abjuration) - -Level: 8 -Range: 0 -Duration: 24 hours -Casting Time: 1 -Area of Effect: The caster -Saving Throw: None - -In the interests of one's self-control and privacy, Mind Blank shields a creature's mind from almost any mental effect-charm, maze, feeblemind, confusion, fear, intoxication, berserk, hold, and petrification.~ - @3400 = ~Great Shout~ - @3401 = ~Great Shout -(Invocation) - -Level: 8 -Range: 0 -Duration: Instant -Casting Time: 1 -Area of Effect: 17-ft. cone with 15-deg. arc -Saving Throw: 1/2 - -Upon uttering the Great Shout, the caster releases a stunning force from mouth in a 17-ft. cone. The Great Shout is extremely taxing and dangerous to the user. The shout drains 2d4 Hit Points from the caster, and must make a Save vs. Spell or fall unconscious for 1 turn. Creatures 5 Hit Dice and under caught within the Great Shout instantly die. All other creatures within the area of effect must save vs. Spell. Those who fail the save are stunned for 2 rounds, deafened for 4 rounds, and suffer 4d12 points of magic damage. Those who make the save are stunned for 1 round, deafened for 2 rounds, and suffer 2d12 points of magic damage.~ - @3410 = ~Iron Body~ - @3411 = ~Iron Body -(Alteration) - -Level: 8 -Range: 0 -Duration: 2 turns -Casting Time: 8 -Area of Effect: The caster -Saving Throw: None - -This spell transforms the caster's body into living iron, granting several powerful resistances and abilities. While the spell is in effect, the caster is 100% resistant to electricity and poison, 50% resistant to fire, and 25% resistant to crushing damage. Spells that affect respiration or the physiology of the caster are ignored. In addition, the caster's Strength is raised to 25, and the caster can attack twice per round with iron fists for 2d4 points of damage plus appropriate Strength bonuses. - -Unfortunately, the caster's movement becomes slow and awkward, setting movement rate to 25% of normal, and cannot cast spells while Iron Body is in effect.~ - @3412 = ~Iron Fist~ - @3420 = ~Monster Summoning VII~ - @3421 = ~Monster Summoning VII -(Conjuration/Summoning) - -Level: 9 -Range: 20 ft. -Duration: 8 rounds + 1 round/level -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -With the casting of this spell, the wizard summons 1d2 7th- or 8th-level monsters. These appear within spell range and can be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ - @3422 = ~Boneguard Skeleton~ - @4010 = ~Curse~ - @4011 = ~Curse -(Conjuration/Summoning) - -Level: 1 -Sphere: All -Range: Visual range of the caster -Duration: 6 rounds -Casting Time: 9 -Area of Effect: 15-ft. radius -Saving Throw: None - -When uttering the Curse spell, the caster lowers the morale of enemy creatures and any Saving Throws and attack rolls they make by 1. At the instant the spell is completed, it affects all creatures in a 15-ft. radius centered on the point selected by the caster. Affected creatures leaving the area are still subject to the spell's effect; those entering the area after the casting is completed are not.~ - @4020 = ~Cause Light Wounds~ - @4021 = ~Cause Light Wounds -(Necromancy) - -Level: 1 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 - -By casting this spell and touching a creature, the priest deals 8 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ - @4030 = ~Sunscorch~ - @4031 = ~Sunscorch -(Invocation) - -Level: 1 -Sphere: Sun -Range: Visual range of the caster -Duration: Instant -Casting Time: 4 -Area of Effect: 1 creature -Saving Throw: Special - -When this spell is cast, a brilliant ray of scorching heat slants down from the sky and strikes one target of the caster's choice. Any creature struck by the ray takes 1d6 points of damage, plus 1 point per level of the caster; however, if the target is an undead creature or a monster vulnerable to bright light, the damage is 1d6, plus 2 points per level of the caster. In addition to sustaining damage, victims are also blinded for 3 rounds. The victim is allowed a Save vs. Spell for half damage and to avoid the blindness.~ - @4040 = ~Cure Moderate Wounds~ - @4041 = ~Cure Moderate Wounds -(Necromancy) - -Level: 2 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: None - -A stronger version of the 1st-level priest spell Cure Light Wounds, Cure Moderate Wounds heals 11 Hit Points and cures intoxication. This spell has no effect on undead, constructs, or extraplanar creatures.~ - @4042 = ~This spell heals the character by 11 Hit Points.~ - @4050 = ~Alicorn Lance~ - @4051 = ~Alicorn Lance -(Invocation) - -Level: 2 -Sphere: Combat -Range: Visual range of the caster -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: Special - -This spell creates a silver-hued, partially ethereal lance shaped in the form of an alicorn (a unicorn horn). The caster chooses a target, and the alicorn lance instantaneously fires at it, inflicting 3d6 points of piercing damage with a Save vs. Spell for half. Although the alicorn lance dissipates after it strikes, it always leaves a silvery radiance around the target that makes it easier to see and hit, giving it a -2 penalty to its Armor Class for 3 rounds.~ - @4052 = ~Outlined in a Silvery Radiance (AC penalty of 2)~ - @4060 = ~Beast Claw~ - @4061 = ~Beast Claw -(Alteration) - -Level: 2 -Sphere: Combat -Range: 0 -Duration: 1 turn -Casting Time: 5 -Area of Effect: The caster -Saving Throw: None - -This spell transforms the caster's arms into the claws of a mighty beast, giving the caster 18/72 Strength and the ability to rake an opponent for 2d4 (plus Strength bonus) points of slashing damage. The caster can attack twice per round with the beast claws, with a +2 bonus to hit.~ - @4070 = ~Cause Moderate Wounds~ - @4071 = ~Cause Moderate Wounds -(Necromancy) - -Level: 2 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 - -By casting this spell and touching a creature, the priest deals 11 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ - @4080 = ~Prayer~ - @4081 = ~Prayer -(Conjuration/Summoning) - -Level: 3 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 6 -Area of Effect: 30-ft. radius -Saving Throw: None - -Prayer bestows favor on the priest and allies, and curses their enemies. All attacks, damage, and Saving Throws by friendly characters gain a +1 bonus, while enemy attacks, damage rolls, and saves get a -1 penalty. Any creatures within the area of effect when the spell is cast will continue to be affected by the spell when they leave the area, so if the warriors want to chase down that fleeing goblin, the effects of the Prayer will follow them.~ - @4082 = ~Combat Penalties~ - @4083 = ~Combat Bonuses~ - @4090 = ~Cause Disease~ - @4091 = ~Cause Disease -(Necromancy) - -Level: 3 -Sphere: Healing -Range: Touch -Duration: 8 hours -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: Neg. - -This spell afflicts one creature the priest touches with a disease that saps the target of 5d4 points of Strength. A successful Save vs. Spell negates the effects. This spell has no effect on undead, constructs, or extraplanar creatures. It cannot be cast by good-aligned characters.~ - @4100 = ~Exaltation~ - @4101 = ~Exaltation -(Abjuration) - -Level: 3 -Sphere: Healing -Range: Touch -Duration: 1 turn -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None - -This spell enables a priest to aid and protect any one being other than the priest. By touch, the caster removes the effects of fear, sleep, feeblemindedness, unconsciousness, and intoxication, as well as berserk and confused states of mind. In addition, the recipient is protected against spells and other attacks that cause these effects for the duration of the spell.~ - @4110 = ~Moonblade~ - @4111 = ~Moonblade -(Invocation) - -Level: 3 -Sphere: Combat, Sun -Range: 0 -Duration: 2 turns -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None - -This spell summons forth a silent, weightless sword-like construct made of moonlight that extends four feet from the caster's hand. The moonblade is considered a +4 weapon for determining what creatures it can hit, though the bonus does not apply to attack rolls made with it. In addition, due to the insubstantial nature of the moonblade, melee bonuses from Strength do not apply. - -The strike of a moonblade drains a target's vitality, inflicting 1d12+4 points of magic damage, plus an additional 1d12 points to undead, who are particularly susceptible. A successful strike also temporarily scrambles magic, causing any spells the target casts in the next round to fail.~ - @4120 = ~Circle of Bones~ - @4121 = ~Circle of Bones -(Necromancy) - -Level: 3 -Sphere: Guardian, Creation -Range: 0 -Duration: 3 rounds -Casting Time: 3 -Area of Effect: 3-ft. radius -Saving Throw: None - -This spell conjures forth a barrier of floating bones that spin rapidly around the caster, who cannot move for the duration of the spell. Anyone entering the path of the bones takes 1d6 crushing damage and 1d6 slashing damage per round. Circle of Bones cannot be cast by good-aligned characters.~ - @4130 = ~Spike Growth~ - @4131 = ~Spike Growth -(Alteration) - -Level: 3 -Sphere: Elemental Earth -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 6 -Area of Effect: 15-ft. radius -Saving Throw: None - -This spell transforms the surrounding terrain into spiky plants. Any creature entering the area takes 1d4 points of piercing damage and 1d4 points of slashing damage every round until the spell expires.~ - @4140 = ~Cloudburst~ - @4141 = ~Cloudburst -(Invocation) - -Level: 3 -Sphere: Elemental Water -Range: Visual range of the caster -Duration: 2 rounds -Casting Time: 6 -Area of Effect: 17-ft. radius -Saving Throw: None - -This spell brings forth a magical rain that saturates the area of effect. All cold- and fire-dwelling creatures take 2d3 points of magic damage per round. In addition, all creatures in the area have a 50% chance per round of being struck by bolts of lightning that deal 2d6 electrical damage, with a Save vs. Spell for half. Flame Blade, Shroud of Flame, and salamander auras are extinguished by Cloudburst.~ - @4150 = ~Mold Touch~ - @4151 = ~Mold Touch -(Alteration) - -Level: 3 -Sphere: Plant -Range: Touch -Duration: Special -Casting Time: 6 -Area of Effect: 10-ft. radius -Saving Throw: Special - -This spell infects the creature the caster touches with a rapidly spreading brown mold. If the infected creature fails a Save vs. Spell, the infection is severe and the creature takes magic damage as follows: - -1st round: 4d6 damage -2nd round: 3d6 damage -3rd round: 2d6 damage -4th round: 1d6 damage - -If the Saving Throw is successful, the damage is reduced as follows: - -1st round: 2d6 damage -2nd round: 1d6 damage -3rd round: 1d6 damage - -Each round after the first, the nearest creature within 10 ft. of the victim must make a Save vs. Spell or be infected by the mold at full strength. This process continues until the mold fails to infect a suitable host in time. Creatures already under the effects of the mold cannot contract it again. The brown mold quickly dies once the spell expires.~ - @4160 = ~Storm Shell~ - @4161 = ~Storm Shell -(Abjuration) - -Level: 3 -Sphere: Protection, Weather -Range: 0 -Duration: 1 turn -Casting Time: 6 -Area of Effect: The caster -Saving Throw: None - -This spell surrounds the caster with a bright sphere of disruptive energy that moves with . The storm shell increases the caster's resistance to fire, cold, and electrical damage by 50%.~ - @4170 = ~Cause Medium Wounds~ - @4171 = ~Cause Medium Wounds -(Necromancy) - -Level: 3 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 5 -Area of Effect: 1 creature -Saving Throw: 1/2 - -By casting this spell and touching a creature, the priest deals 14 points of damage (save vs. Spell for half) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. Cause Medium Wounds cannot be cast by good-aligned characters.~ - @4180 = ~Favor of Ilmater~ - @4181 = ~Favor of Ilmater -(Necromancy) - -Level: 3 -Sphere: Necromantic, Protection -Range: 30 ft. -Duration: Instant -Casting Time: 6 -Area of Effect: 1 creature -Saving Throw: None - -By invoking this spell, the caster switches own life force with that of the recipient, exchanging all physical injuries. The spell will only function if the caster has more Hit Points than the target before the switch is attempted. This switch is permanent until the caster uses normal methods to heal the damage. The exchange can be done from a distance so long as the spell range is not exceeded. Only the Hit Points are exchanged; the caster cannot take on other conditions from the target such as disease, poison, intoxication, and similar afflictions. - -This spell cannot be cast by evil-aligned characters. It has no effect on undead, constructs, or extraplanar creatures.~ - @4190 = ~Giant Insect~ - @4191 = ~Giant Insect -(Alteration) - -Level: 4 -Sphere: Animal -Range: Visual range of the caster -Duration: 8 hours -Casting Time: 7 -Area of Effect: Special -Saving Throw: None - -This spell summons 2-3 boring beetles or bombardier beetles to the caster's side. The beetles will obey the caster until the spell expires or they are slain.~ - @4192 = ~Bombardier Beetle~ - @4193 = ~Releases Acidic Vapor~ - @4200 = ~Produce Fire~ - @4201 = ~Produce Fire -(Alteration) - -Level: 4 -Sphere: Elemental Fire -Range: Visual range of the caster -Duration: 1 round -Casting Time: 7 -Area of Effect: 4-ft. radius -Saving Throw: None - -When cast, flames erupt from the target point, dealing 1d4 points of fire damage plus 1 point per level of the caster to all creatures within the spell's radius. Creatures will take damage once per round regardless of when they enter the area of effect.~ - @4210 = ~Static Charge~ - @4211 = ~Static Charge -(Alteration) - -Level: 4 -Sphere: Weather -Range: 0 -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: Visual range of the caster -Saving Throw: 1/2 - -Static Charge is similar to Call Lightning, except it can be used indoors. This spell allows the caster to generate a static charge around any creature within the area of effect, dealing 2d8 points of electrical damage plus an additional 1d8 points per level of the caster (save vs. Spell for half). The charge keeps going off once every turn for the duration of the spell.~ - @4212 = ~Discharge of static electricity~ - @4220 = ~Recitation~ - @4221 = ~Recitation -(Abjuration, Invocation/Evocation) - -Level: 4 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 7 -Area of Effect: 25-ft. radius -Saving Throw: None - -By reciting a sacred passage or declaration, the priest invokes deity's blessing upon self and allies while sowing confusion and weakness among enemies. The priest's allies gain a +2 bonus to their attack rolls and Saving Throws, and the priest's enemies receive a -2 penalty to the same. Recitation does not nullify a Prayer spell-the two can be cast in tandem, and the effects are cumulative.~ - @4230 = ~Blood Rage~ - @4231 = ~Blood Rage -(Alteration) - -Level: 4 -Sphere: Combat -Range: Visual range of the caster -Duration: 2 turns -Casting Time: 7 -Area of Effect: 1 creature -Saving Throw: None - -This spell works only on player characters or allied creatures. When cast, the target of this spell goes berserk, attacking the nearest creature until that creature is dead, then moving on to the next target. While under Blood Rage, the target is immune to charm, sleep, fear, hold, stunning, confusion, emotion, symbol spells, and related effects. In addition, the target gains +2 to hit, +3 to damage, +2 to Strength, +10 to maximum Hit Points, and +2 to movement rate. The spell has several disadvantages, however: The Hit Points of the target are masked for the duration of the spell, and the target cannot benefit from any effect that heals Hit Points. At the end of the spell's duration, the target becomes fatigued and Strength drops to 3 for 2 turns. Blood Rage cannot affect-and cannot be cast by-creatures of lawful alignment.~ - @4240 = ~Cloud of Pestilence~ - @4241 = ~Cloud of Pestilence -(Alteration) - -Level: 4 -Sphere: Combat, Elemental Air -Range: Visual range of the caster -Duration: 4 rounds -Casting Time: 7 -Area of Effect: 12-ft. radius -Saving Throw: Neg. - -This spell transforms the air in a 12-ft. radius into sickening, grayish mists. The caster and non-living creatures are immune to the effects of the cloud. For every round of exposure to the disease-ridden air, a creature must save vs. Breath or suffer 3 points of magic damage, blindness, and the loss of 3 points of Strength and Dexterity. The blindness and ability score penalties last 1 turn. Cloud of Pestilence can only be cast by evil-aligned characters.~ - @4250 = ~Unfailing Endurance~ - @4251 = ~Unfailing Endurance -(Necromancy) - -Level: 4 -Sphere: Necromantic -Range: Touch -Duration: Instant -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None - -This spell restores the stamina of the creature touched, eliminating any fatigue.~ - @4260 = ~Star Metal Cudgel~ - @4261 = ~Star Metal Cudgel -(Conjuration) - -Level: 4 -Sphere: Combat -Range: 0 -Duration: 3 turns -Casting Time: 7 -Area of Effect: The caster -Saving Throw: None - -This spell creates a meteoric iron magical club that deals 1d6+2 points of crushing damage, confers a +2 bonus to attack rolls, and is treated as a +4 weapon for purposes of what it can hit. Strength, proficiency, and specialization bonuses and penalties apply normally. The club deals an additional 2d6 points of crushing damage against unnatural creatures (undead, elementals, golems, outer-planar creatures, etc.).~ - @4270 = ~Smashing Wave~ - @4271 = ~Smashing Wave -(Invocation) - -Level: 4 -Sphere: Elemental Water -Range: 100 ft. -Duration: Instant -Casting Time: 9 -Area of Effect: Special -Saving Throw: Special - -This spell summons a 5-ft. wide wave of water that moves in the direction willed by the caster, striking all in its path with massive force. The wave deals 4d10 points of crushing damage; in addition, struck creatures may be either stunned (25% chance) or knocked unconscious (5% chance) for 2 rounds. If the creature struck makes a successful Save vs. Breath Weapon, the damage is reduced by half and the creature avoids being stunned or knocked unconscious.~ - @4280 = ~Thorn Spray~ - @4281 = ~Thorn Spray -(Alteration) - -Level: 4 -Sphere: Plant -Range: 30 ft. -Duration: Instant -Casting Time: 3 -Area of Effect: 17-ft. cone with 90-deg. arc -Saving Throw: 1/2 - -By means of this spell, the caster can cause a spray of barbs, spikes, thorns, and spines to spring forth from hand. The thorn spray covers a 17-ft.-long cone, inflicting 2d10 points of piercing damage to all creatures within the area of effect, or 1d10 points of damage if a Save vs. Death is successful.~ - @4290 = ~Wall of Moonlight~ - @4291 = ~Wall of Moonlight -(Invocation) - -Level: 4 -Sphere: Protection, Sun -Range: Visual range of the caster -Duration: 1 turn -Casting Time: 7 -Area of Effect: 8 ft. long, 2 ft. wide wall -Saving Throw: None - -This spell invokes a shimmering tapestry of blue-white force. This wall is intangible, requiring no physical anchor, and can easily be passed through. Evil creatures passing through the wall take 2d10 magic damage; evil undead creatures take 5d10. A creature that has passed through the wall can only take damage from it once.~ - @4300 = ~Righteous Wrath of the Faithful~ - @4301 = ~Righteous Wrath of the Faithful -(Enchantment/Charm) - -Level: 5 -Sphere: Combat -Range: 0 -Duration: 1 round/level -Casting Time: 8 -Area of Effect: 17-ft. radius -Saving Throw: None - -This spell bestows a form of divine madness upon the priest's allies, improving their combat skills. All the priest's allies in the area of effect gain a +1 to attack rolls and Saving Throws, plus 8 bonus Hit Points for the duration of the spell (these Hit Points can take a target beyond Hit Point maximum). Allies of the same alignment, however, gain an extra attack every round (canceling haste), a +2 bonus to their attack rolls, damage rolls, and Saving Throws, and immunity to charm and hold spells. Anyone affected by Righteous Wrath of the Faithful will suffer fatigue when the spell wears off.~ - @4310 = ~Spike Stones~ - @4311 = ~Spike Stones -(Alteration, Enchantment) - -Level: 5 -Sphere: Elemental Earth -Range: Visual range of the caster -Duration: 12 rounds -Casting Time: 6 -Area of Effect: 8-ft. radius -Saving Throw: Special - -This spell warps the surrounding rock, reshaping the terrain into spiked projections that blend into the background. Any creature entering the area takes 2d4 Hit Points of piercing damage per round and must make a Save vs. Spell or have its movement rate reduced by 30%.~ - @4320 = ~Shield of Lathander~ - @4321 = ~Shield of Lathander -(Conjuration) - -Level: 5 -Sphere: Guardian -Range: Touch -Duration: 2 rounds -Casting Time: 8 -Area of Effect: 1 creature -Saving Throw: None - -This spell grants the recipient immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Shield of Lathander. This spell cannot be cast by evil-aligned characters.~ - @4330 = ~Undead Ward~ - @4331 = ~Undead Ward -(Necromancy) - -Level: 5 -Sphere: Wards -Range: 0 -Duration: 1 turn -Casting Time: 7 -Area of Effect: 10-ft. radius -Saving Throw: None - -This spell amplifies the influence a priest has over undead, though it is tied to the area surrounding the priest at the moment of its casting and does not move. Any undead creature entering the area of effect is affected as if turned by the priest that cast this spell. If the turning fails, the undead creature is immune to further turning attempts by the spell unless it leaves and reenters the area of effect.~ - @4340 = ~Animal Rage~ - @4341 = ~Animal Rage -(Enchantment) - -Level: 5 -Sphere: Combat -Range: Touch -Duration: 15 rounds -Casting Time: 8 -Area of Effect: 1 creature -Saving Throw: None - -This spell imbues the target creature with animal ferocity. The target creature gains a Strength score of 19, +20 Hit Points, +20% movement rate, and a +2 bonus to all Saving Throws. The target loses the ability to cast spells while Animal Rage is in effect; when enemies are within sight, immediately attacks in melee, using whatever is in hand. While this spell is in effect, there is a 5% chance per round that the target will go berserk, attacking friend and foe alike.~ - @4350 = ~Mass Cause Light Wounds~ - @4351 = ~Mass Cause Light Wounds -(Necromancy) - -Level: 5 -Sphere: Healing -Range: 0 -Duration: Instant -Casting Time: 5 -Area of Effect: 15-ft. radius -Saving Throw: 1/2 - -By casting this spell, the priest deals 1d8 + 1/level points of damage to nearby enemies. A successful Save vs. Spell halves the damage. This spell has no effect on undead, constructs, or extraplanar creatures. It can only be cast by evil-aligned characters.~ - @4360 = ~Entropy Shield~ - @4361 = ~Entropy Shield -(Abjuration) - -Level: 6 -Sphere: Protection -Range: 0 -Duration: 1 round/level -Casting Time: 9 -Area of Effect: The caster -Saving Throw: None - -When cast, this spell surrounds the caster with a defensive maelstrom of energy that blocks or deflects many attacks. This gives the priest a +6 bonus to Armor Class, a +2 bonus to Saving Throws, and +50% resistance to electricity, fire, cold, and acid. The priest is also immune to Flamestrike and all missile-based attacks, including missiles created by spells such as Magic Missile.~ - @4370 = ~Whirlwind~ - @4371 = ~Whirlwind -(Invocation) - -Level: 6 -Sphere: Elemental Air -Range: Visual range of the caster -Duration: Special -Casting Time: 9 -Area of Effect: Special -Saving Throw: Special - -This spell creates a small whirlwind within the caster's sight. The whirlwind will fly around randomly, harming friend and foe alike. The caster is immune to own spell, and elementals and other huge creatures are also unaffected. If a creature is caught in the path of the whirlwind, it takes 2d8 crushing damage, 2d8 slashing damage, and must make a Save vs. Breath Weapon or be stunned for 2 rounds. Creatures with 2 or fewer Hit Dice are automatically killed by this spell. A maximum of 8 targets can be affected, after which the whirlwind will dissipate.~ - @4380 = ~Spiritual Wrath~ - @4381 = ~Spiritual Wrath -(Invocation) - -Level: 6 -Sphere: Combat -Range: Visual range of the caster -Duration: Instant -Casting Time: 2 -Area of Effect: Special -Saving Throw: 1/2 - -Upon completion of this spell, the priest becomes a focus of spiritual energy, which then shoots out from the caster in four directions, like lightning bolts. All creatures in the bolts' paths take 4d10 points of magic damage (save vs. Spell for half). Creatures of the same moral alignment (good, neutral, evil) as the caster are unaffected by the spell.~ - @4390 = ~Symbol, Pain~ - @4391 = ~Symbol, Pain -(Conjuration/Summoning) - -Level: 7 -Sphere: Guardian -Range: Visual range of the caster -Duration: 11 turns -Casting Time: 3 -Area of Effect: 15-ft. radius -Saving Throw: Neg. - -All enemies within 15 ft. of the symbol of pain at the moment it is invoked must make a Save vs. Spell. Those who fail their Saving Throws are overwhelmed by pain, suffering a -4 penalty to their attack rolls, a -2 penalty to their Dexterity scores, and a -2 penalty to their Armor Class.~ - @4392 = ~Wracking Pains~ - @4393 = ~Pain~ - @4400 = ~Symbol, Hopelessness~ - @4401 = ~Symbol, Hopelessness -(Conjuration/Summoning) - -Level: 7 -Sphere: Guardian -Range: Visual range of the caster -Duration: 2 turns -Casting Time: 3 -Area of Effect: 15-ft. radius -Saving Throw: Neg. - -Symbol, Hopelessness is a powerful enchantment that allows the priest to inscribe a symbol on the ground or any other surface. The symbol will remain there until an opponent comes too close, at which point it will explode, causing all enemies within the area of effect to make a Save vs. Spell with a -2 penalty or stand in place, overwhelmed by dejection and surrender. They will make no move to defend themselves from attack. This spell nullifies Emotion, Hope within the area of effect at the time of casting.~ - @4410 = ~Impervious Sanctity of Mind~ - @4411 = ~Impervious Sanctity of Mind -(Abjuration) - -Level: 7 -Sphere: Protection -Range: 0 -Duration: 1 turn/level -Casting Time: 9 -Area of Effect: The caster -Saving Throw: None - -This spell steels the caster's mind against any outside influence. Charm, confusion, fear, feeblemindedness, hold, sleep, maze, berserk, and intoxication will not affect the caster as long as this spell is in effect.~ - @4420 = ~Destruction~ - @4421 = ~Destruction -(Necromancy) - -Level: 7 -Sphere: Healing -Range: Touch -Duration: Instant -Casting Time: 9 -Area of Effect: The caster -Saving Throw: Special - -This spell instantly destroys a target, blasting it into small chunks. The victim is allowed a Save vs. Death at a penalty of -4; if successful, the target takes 8d6 points of magic damage instead of being destroyed. Destruction can only be cast by evil characters. Note that a character struck with a Destruction spell cannot be raised from the dead with a Raise Dead or Resurrection spell.~ - @4430 = ~Greater Shield of Lathander~ - @4431 = ~Greater Shield of Lathander -(Conjuration) - -Level: 7 -Sphere: Guardian -Range: Touch -Duration: 3 rounds -Casting Time: 9 -Area of Effect: 1 creature -Saving Throw: None - -This spell grants the recipient 100% Magic Resistance and immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Greater Shield of Lathander. This spell can only be cast by good-aligned characters.~ - @4440 = ~Mist of Eldath~ - @4441 = ~Mist of Eldath -(Invocation) - -Level: 7 -Sphere: Elemental -Range: Visual range of the caster -Duration: Instant -Casting Time: 9 -Area of Effect: 7-ft. radius -Saving Throw: None - -This spell blankets the area of effect with a silver-blue mist-any creature within the mist will be cured of disease and poison and healed 25 Hit Points.~ - @4450 = ~Stalker~ - @4451 = ~Stalker -(Conjuration) - -Level: 7 -Sphere: Plant -Range: Visual range of the caster -Duration: 8 hours -Casting Time: 9 -Area of Effect: Special -Saving Throw: None - -This spell creates two 11-HD shambling mounds. These creatures willingly aid the caster in combat or whatever other duties they are assigned and have the capability to carry out.~ - @4452 = ~Shambling Mound~ - @4460 = ~Energy Drain~ - @4461 = ~Energy Drain -(Necromancy) - -Level: 7 -Sphere: Necromantic -Range: Touch -Duration: Permanent -Casting Time: 3 -Area of Effect: 1 creature -Saving Throw: None - -Casting this spell opens a channel between the caster's plane and the Negative Energy Plane. The caster acts as a conduit between the two planes, sucking life from a victim and transferring it to the Negative Energy Plane, draining of 2 levels of experience. The target of this spell loses levels, Hit Dice, Hit Points, and abilities permanently. These levels can only be restored by a priest's Restoration spell. This spell has no effect on undead, constructs, or extraplanar creatures. It can only be cast by evil-aligned characters.~ - @4462 = ~Two Levels Drained~ - @5001 = ~The Ballad of Three Heroes - Combat Bonuses~ - @5002 = ~The Ballad of Three Heroes~ - @5003 = ~All allies gain +1 to hit, +1 to damage, and +1 to all their Saving Throws.~ - @5004 = ~The Tale of Curran Strongheart - Immunity Fear~ - @5005 = ~The Tale of Curran Strongheart~ - @5006 = ~All allies gain immunity to fear effects for as long as the song lasts, and any fear effects currently on them are removed.~ - @5007 = ~Tymora's Melody - Luck and Skill Bonuses~ - @5008 = ~Tymora's Melody~ - @5009 = ~All allies gain +1 to luck, +3 to Saving Throws, +10 to lore, and a +10% bonus to all of their thieving skills.~ - @5010 = ~The Song of Kaudies - Resistant to Sound Attacks~ - @5011 = ~The Song of Kaudies~ - @5012 = ~All allies have a 50% chance to shrug off the effects of spells such as Silence, Shout, Great Shout, Command, Greater Command, or any other sound-based attack.~ - @5013 = ~The Siren's Yearning - Enthralls Creatures~ - @5014 = ~The Siren's Yearning~ - @5015 = ~All enemies within 15 ft. must save vs. Spell or become enthralled, unable to take action until 1 round passes or they take damage.~ - @5016 = ~Enthralled~ - @5017 = ~War Chant of Sith - Armor Bonuses and Regeneration~ - @5018 = ~War Chant of Sith~ - @5019 = ~All allies gain a +2 bonus to Armor Class, +10% resistance to slashing, piercing, crushing, and missile damage, and the ability to regenerate 2 Hit Points per round.~ - @5020 = ~BARD: The Bard is a rogue, but is very different from the Thief. The Bard's strength is pleasant and charming personality. With it and wits, makes way through the world. A Bard is a talented musician and a walking storehouse of gossip, tall tales, and lore; learns a little bit about everything that crosses path and is a jack-of-all-trades but master of none. While many Bards are scoundrels, their stories and songs are welcome almost everywhere. -CLASS FEATURES: -- May not wear armor heavier than chain mail. (Spells cannot be cast while wearing armor.) -- May not equip shields larger than bucklers. -- May only become Proficient (one slot) in any weapon class. -- May only become Proficient (one slot) in any fighting style. -- Thieving abilities: Pick Pockets. -- Increased Lore score. -- May cast arcane spells starting at 2nd level. -- May use Bard Song ability to play any song from repertoire: - 1st level: Can play "The Ballad of Three Heroes." All allies within 30 ft. gain +1 to hit, +1 to damage, and +1 to all their Saving Throws. - 3rd level: Can play "The Tale of Curran Strongheart." All allies within 30 ft. gain immunity to fear effects for as long as the song lasts, and any fear effects currently on them are removed. - 5th level: Can play "Tymora's Melody." All allies within 30 ft. gain +1 to luck, +3 to Saving Throws, +10 to lore, and a +10% bonus to all of their thieving skills. - 7th level: Can play "The Song of Kaudies." All allies within 30 ft. have a 50% chance to shrug off the effects of spells such as Silence, Shout, Great Shout, Command, Greater Command, or any other sound-based attack. - 9th level: Can play "The Siren's Yearning." All enemies within 30 ft. must save vs. Spell or become enthralled, unable to take action until 1 round passes or they take damage. - 11th level: Can play "War Chant of Sith." All allies within 30 ft. gain a +2 bonus to Armor Class, +10% resistance to slashing, piercing, crushing, and missile damage, and the ability to regenerate 2 Hit Points per round. -- Alignment restricted to any neutral. -- Hit Die: d6~ - @6001 = ~Two Handed Axe~ - @6002 = ~This mighty weapon consists of a haft several feet long, topped with a heavy blade. The axe may be double-bitted, with blades on both sides of the haft, or it may only have a single blade. It is an unwieldy weapon, but a skilled warrior can strike blows of tremendous strength with it. - -STATISTICS: - -Damage: 1D10 -Damage type: Slashing -Weight: 10 -Speed Factor: 9 -Proficiency Type: Axe -Type: 2-handed -Requires: 10 Strength -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6003 = ~Two Handed Axe +1~ - @6004 = ~This mighty weapon consists of a haft several feet long, topped with a heavy blade. The axe may be double-bitted, with blades on both sides of the haft, or it may only have a single blade. This axe has also been bestowed with a small number of magical properties, however, thus making it more effective in combat. Its keen blade, for instance, will shear through your opponent's flesh to find the bone while its barbed tip will seek out gaps in their armor. - -STATISTICS: - -THAC0: +1 bonus -Damage: 1D10+1 -Damage type: Slashing -Weight: 9 -Speed Factor: 8 -Proficiency Type: Axe -Type: 2-handed -Requires: 10 Strength -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6005 = ~Two Handed Axe +2: Tremain's Tumbler~ - @6006 = ~Tremain Longaxe was an adventurer in the Ten Towns with a penchant for axes. While two-handed axes are generally slow and unwieldy, Tremain had this axe specially designed to trip opponents, allowing him to overcome foes with faster and lighter weapons. - -STATISTICS: -Combat Abilities: 10% chance with every hit to knock down opponent for one round - -THAC0: +2 bonus -Damage: 1D10+2 -Damage type: Slashing -Weight: 8 -Speed Factor: 7 -Proficiency Type: Axe -Type: 2-handed -Requires: 10 Strength -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6007 = ~Two Handed Axe +3~ - @6008 = ~This mighty weapon consists of a haft several feet long, topped with a heavy blade. The axe may be double-bitted, with blades on both sides of the haft, or it may only have a single blade. This axe has been imbued with several enchantments, however, thus making it more effective in combat. - -STATISTICS: - -THAC0: +3 bonus -Damage: 1D10+3 -Damage type: Slashing -Weight: 7 -Speed Factor: 6 -Proficiency Type: Axe -Type: 2-handed -Requires: 10 Strength -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6009 = ~Two Handed Axe +4: The Battle Standard~ - @6010 = ~Murzul Dul was a warchief under King Greneire who earned his fame as a skilled tactician. This immense axe doubled as his battle standard in combat and could strike down foes and rally his horde in equal measure. Like King Greniere himself and most of his horde, Dul was killed during the siege of the Citadel of Many Arrows when Emerus Warcrown swept away the battling hordes and the axe claimed as war spoils. The axe retains its ability to rally allies and shake foes by spiking the haft of the weapon into the ground. - -STATISTICS: -Combat Abilities: - Battle Standard twice per day - The axe can knock back foes in a small radius and grant allies +1 THAC0 and damage for two rounds - -THAC0: +4 bonus -Damage: 1D10+4 -Damage type: Slashing -Weight: 6 -Speed Factor: 5 -Proficiency Type: Axe -Type: 2-handed -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6011 = ~Two Handed Axe +5: The Battle Standard~ - @6012 = ~Murzul Dul was a warchief under King Greneire who earned his fame as a skilled tactician. This immense axe doubled as his battle standard in combat and could strike down foes and rally his horde in equal measure. Like King Greniere himself and most of his horde, Dul was killed during the siege of the Citadel of Many Arrows when Emerus Warcrown swept away the battling hordes and the axe claimed as war spoils. The axe retains its ability to rally allies and shake foes by spiking the haft of the weapon into the ground. Cespenar has further enhanced this axe. - -STATISTICS: -Combat Abilities: - Enhanced Battle Standard twice per day - By spiking the haft into the ground, the wielder can knock back foes in a small radius and grant allies +2 to saves, THAC0 and damage for two rounds - -THAC0: +5 bonus -Damage: 1D10+5 -Damage type: Slashing -Weight: 5 -Speed Factor: 4 -Proficiency Type: Axe -Type: 2-handed -Not Usable By: - Druid - Cleric - Mage - Thief~ - @6013 = ~Battle Standard~ - @6014 = ~Enhanced Battle Standard~ - @6015 = ~Ooh, big axe! Gots some woods to chop? Shiny, shiny!~ - @6016 = ~Recipe can make Battle Standard more Standard. 5,000 gold will do it.~ - @6017 = ~Let's see what else you got then.~ \ No newline at end of file diff --git a/iwdification/languages/english/game_strings.tra b/iwdification/languages/english/game_strings.tra index db18263..307619e 100644 --- a/iwdification/languages/english/game_strings.tra +++ b/iwdification/languages/english/game_strings.tra @@ -47,9 +47,9 @@ Number of Attacks: 1 Attack Damage: 5d4 slashing Special Abilities: -– Slashing Resistance: 50% -– Piercing Resistance: 50% -– Missile Resistance: 50% +– Slashing Resistance: 50% +– Piercing Resistance: 50% +– Missile Resistance: 50% The Druid is healed 12 Hit Points after using this ability.~ @3007 = ~Shapeshift: Polar Bear~ @@ -63,8 +63,8 @@ Number of Attacks: 3 Attack Damage: 1d12 slashing Special Abilities: -– Cold Resistance: 75% -– Fire Resistance: -25% +– Cold Resistance: 75% +– Fire Resistance: -25% The Druid is healed 12 Hit Points after using this ability.~ @3009 = ~Shapeshift: Winter Wolf~ @@ -90,8 +90,8 @@ Number of Attacks: 2 Attack Damage: 1d6 slashing Special Abilities: -– Cold Resistance: 75% -– Fire Resistance: -25% +– Cold Resistance: 75% +– Fire Resistance: -25% The Druid is healed 12 Hit Points after using this ability.~ @3013 = ~Boring Beetle~ diff --git a/iwdification/lib/cd_arcane.tpa b/iwdification/lib/cd_arcane.tpa deleted file mode 100644 index d6337f5..0000000 --- a/iwdification/lib/cd_arcane.tpa +++ /dev/null @@ -1,2445 +0,0 @@ -INCLUDE ~iwdification/lib/spell_prep.tpa~ - -///// \\\\\ -///// WIZARD_EMOTION_HOPELESSNESS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_COURAGE~) OR override_arcane) BEGIN // checking courage to see if emotion series is already present, since hopelessness is a vanilla bg2 spell - - ADD_PROJECTILE ~iwdification/pro/cdi255.pro~ - - COPY ~iwdification/spl/cdia411.spl~ ~override/spwi411.spl~ // hopelessness - SAY 0x08 @3001 - SAY 0x50 @3002 - SAY 0x18e @3003 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi255 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 1280 parameter1 = string_stunned END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - END - - COPY_EXISTING ~scrl5h.itm~ ~override~ - SAY 0x0c @3001 - SAY 0x54 @3002 - WRITE_BYTE 0x2d BIT3 // invoker flag - LPF ALTER_ITEM_HEADER INT_VAR range = 50 target = 4 END - - COPY ~iwdification/bam/cdia411a.bam~ ~override~ - ~iwdification/bam/cdia411b.bam~ ~override~ - ~iwdification/bam/cdia411c.bam~ ~override~ - ~iwdification/bam/cdienchx.bam~ ~override~ - ~iwdification/bam/cdiparal.bam~ ~override~ - ~iwdification/vvc/cdigench.vvc~ ~override~ - ~iwdification/vvc/cdiparal.vvc~ ~override~ - ~iwdification/wav/cdiarm21.wav~ ~override~ - ~iwdification/wav/cdiee05.wav~ ~override~ - ~iwdification/wav/cdiem05.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_POLYMORPH_SELF \\\\\ -///// \\\\\ - -// these generally 'clean out' the poly self subspells -COPY_EXISTING ~bhaal4a.spl~ ~override~ // resurrection - ~ohbraise.spl~ ~override~ // nsi - ~slayerw3.itm~ ~override~ // slater weapon - ~spja01.spl~ ~override~ // harper's call - ~sppr504.spl~ ~override~ // raise dead - ~sppr550.spl~ ~override~ // recall spirit - ~sppr712.spl~ ~override~ // resurrection - ~sppr729.spl~ ~override~ // mass raise dead - ~spwish10.spl~ ~override~ // mass raise dead - PATCH_IF anim_beetle BEGIN - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia480 END // boring beetle - END - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia481 END // polar bear - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia482 END // winter wolf - BUT_ONLY IF_EXISTS - -// add new forms to poly self -COPY_EXISTING ~spwi416.spl~ ~override~ // poly self - PATCH_IF anim_beetle BEGIN - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia480 END // boring beetle - SAY 0x50 @3004 - END ELSE BEGIN - SAY 0x50 @3014 - END - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia481 END // polar bear - LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia482 END // winter wolf - -COPY ~iwdification/spl/cdia481.spl~ ~override~ // polar bear - SAY 0x08 @3007 - SAY 0x50 @3008 - -COPY ~iwdification/spl/cdia482.spl~ ~override~ // winter wolf - SAY 0x08 @3009 - SAY 0x50 @3012 - -COPY_EXISTING ~cdia481.spl~ ~override~ - ~cdia482.spl~ ~override~ - PATCH_FOR_EACH res IN spin122 spin123 spin124 spin150 spin151 spin160 spin160 spin160 spin529 spin667 spin718 spinhum spmdslay spwi489 spwi490 spwi491 BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 172 STR_VAR match_resource = spin974 resource = EVAL ~%res%~ END - END - LPF ALTER_EFFECT INT_VAR match_opcode = 135 opcode = 171 timing = 1 STR_VAR resource = spwi490 END // move polymorph ops to the claws - LPF DELETE_EFFECT INT_VAR match_opcode = 144 END // move delete button to claws, too - -//LAF cd_animation STR_VAR code = 7203 END // 29187 MBER_PO bear_polar -COPY ~iwdification/cre/cdidrupb.cre~ ~override~ - SAY 0x08 @3015 - SAY 0x0c @3015 - -//LAF cd_animation STR_VAR code = 7b03 END // 31491 MWLF_WI wolf_winter -COPY ~iwdification/cre/cdidruww.cre~ ~override~ - WRITE_LONG 0x08 string_wwolf - WRITE_LONG 0x0c string_wwolf - -COPY ~iwdification/itm/cdiplypb.itm~ ~override~ - ~iwdification/itm/cdiplyww.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - -COPY_EXISTING ~cdiplypb.itm~ ~override~ - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidrupb END - -COPY_EXISTING ~cdiplyww.itm~ ~override~ - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidruww END - -COPY ~iwdification/bam/cdia481b.bam~ ~override~ - ~iwdification/bam/cdia482b.bam~ ~override~ - ~iwdification/bam/cdiplypb.bam~ ~override~ - ~iwdification/bam/cdiplyww.bam~ ~override~ - -ACTION_IF anim_beetle BEGIN - - COPY ~iwdification/spl/cdia480.spl~ ~override~ // boring beetle - SAY 0x08 @3005 - SAY 0x50 @3006 - PATCH_FOR_EACH res IN spin122 spin123 spin124 spin150 spin151 spin160 spin160 spin160 spin529 spin667 spin718 spinhum spmdslay spwi489 spwi490 spwi491 BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 172 STR_VAR match_resource = spin974 resource = EVAL ~%res%~ END - END - LPF ALTER_EFFECT INT_VAR match_opcode = 135 opcode = 171 timing = 1 STR_VAR resource = spwi490 END // move polymorph ops to the claws - LPF DELETE_EFFECT INT_VAR match_opcode = 144 END // move delete button to claws, too - - LAF cd_animation STR_VAR code = e220 END // 57888 MBBM beetle_black - COPY ~iwdification/cre/cdidrubb.cre~ ~override~ - SAY 0x08 @3013 - SAY 0x0c @3013 - WRITE_LONG 0x28 anim_beetle - - COPY ~iwdification/itm/cdiplybb.itm~ ~override~ - ~iwdification/itm/cdis5-20.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY_EXISTING ~cdiplybb.itm~ ~override~ - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidrubb END - - COPY ~iwdification/bam/cdia480b.bam~ ~override~ - ~iwdification/bam/cdiplybb.bam~ ~override~ - -END - -///// \\\\\ -///// WIZARD_EXPEDITIOUS_RETREAT \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EXPEDITIOUS_RETREAT~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia126.spl~ 2 1 WIZARD_EXPEDITIOUS_RETREAT - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3010 // name - SAY 0x50 @3011 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37787 parameter1 = string_slowed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37638 parameter1 = string_slow END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36035 parameter1 = string_hasted END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia126.itm~ - SAY 0x0c @3010 - SAY 0x54 @3011 - LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 5 range = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia126a.bam~ ~override~ - ~iwdification/bam/cdia126b.bam~ ~override~ - ~iwdification/bam/cdia126c.bam~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SNILLOCS_SNOWBALL_SWARM \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SNILLOCS_SNOWBALL_SWARM~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi217.pro~ - - ADD_SPELL ~iwdification/spl/cdia204.spl~ 2 2 WIZARD_SNILLOCS_SNOWBALL_SWARM - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3020 // name - SAY 0x50 @3021 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi217 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia204 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - LPF DELETE_EFFECT INT_VAR match_opcode = 12 multi_match = 1 END // delete one of these - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia204.itm~ - SAY 0x0c @3020 - SAY 0x54 @3021 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 900 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia204a.bam~ ~override~ - ~iwdification/bam/cdia204b.bam~ ~override~ - ~iwdification/bam/cdia204c.bam~ ~override~ - ~iwdification/vvc/cdissswa.vvc~ ~override~ // pro resources - ~iwdification/bam/cdiswarr.bam~ ~override~ - ~iwdification/bam/cdiswart.bam~ ~override~ - ~iwdification/bam/cdissswx.bam~ ~override~ - ~iwdification/wav/cdirngm2.wav~ ~override~ - ~iwdification/wav/cditra18.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY_EXISTING ~cdi217.pro~ ~override~ - WRITE_BYTE 0x217 14 - - END - -END - -///// \\\\\ -///// WIZARD_DECASTAVE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DECASTAVE~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia216.spl~ 2 2 WIZARD_DECASTAVE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3030 // name - SAY 0x50 @3031 // descript - - COPY ~iwdification/itm/blank.itm~ ~override/cdia216.itm~ - SAY 0x0c @3030 - SAY 0x54 @3031 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 5 range = 1 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdideca.itm~ ~override~ - SAY 0x08 @3030 - SAY 0x0c @3030 - PATCH_IF !ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 12 opcode = 146 parameter2 = 1 special = 0 dicenumber = 0 dicesize = 0 STR_VAR resource = cdideca END - END - - COPY ~iwdification/bam/cdia216a.bam~ ~override~ - ~iwdification/bam/cdia216b.bam~ ~override~ - ~iwdification/bam/cdia216c.bam~ ~override~ - ~iwdification/bam/cdideca.bam~ ~override~ - ~iwdification/bam/cdiinvoc.bam~ ~override~ - ~iwdification/vvc/cdiinvoc.vvc~ ~override~ - ~iwdification/wav/cdiee02.wav~ ~override~ - ~iwdification/wav/cdiem06.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/spl/cdideca.spl~ ~override~ - - END - -END - -///// \\\\\ -///// WIZARD_CATS_GRACE \\\\\ -///// \\\\\ - -ACTION_IF ((ee_game OR tobex_game) AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CATS_GRACE~) OR override_arcane)) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3040) STR_VAR bam_file = cdia225d RET icon END - - ADD_SPELL ~iwdification/spl/cdia225.spl~ 2 2 WIZARD_CATS_GRACE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3040 // name - SAY 0x50 @3041 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14024 parameter1 = string_dexmod END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia225 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 185 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 328 END - LPF CLONE_EFFECT INT_VAR match_opcode = 15 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia225.itm~ - SAY 0x0c @3040 - SAY 0x54 @3041 - LPF cd_scroll INT_VAR unusable2 = BIT6 range = 1 STR_VAR price = 200 spell = EVAL ~%current_spell_res%~ END - - ACTION_IF ee_game BEGIN - APPEND ~splstate.ids~ ~45 CATS_GRACE~ UNLESS ~^45[ %TAB%]+CATS_GRACE[ %TAB%%LNL%%MNL%%WNL%]+~ - END - - COPY ~iwdification/bam/cdia225a.bam~ ~override~ - ~iwdification/bam/cdia225b.bam~ ~override~ - ~iwdification/bam/cdia225c.bam~ ~override~ - ~iwdification/bam/cdia225d.bam~ ~override~ - ~iwdification/wav/cdiem08.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_ICELANCE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ICELANCE~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi251.pro~ - - ADD_SPELL ~iwdification/spl/cdia327.spl~ 2 3 WIZARD_ICELANCE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3050 // name - SAY 0x50 @3051 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi251 END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia327.itm~ - SAY 0x0c @3050 - SAY 0x54 @3051 - LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 900 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia327a.bam~ ~override~ - ~iwdification/bam/cdia327b.bam~ ~override~ - ~iwdification/bam/cdia327c.bam~ ~override~ - ~iwdification/bam/cdiiceln.bam~ ~override~ - ~iwdification/wav/cditra19.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_LANCE_OF_DISRUPTION \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_LANCE_OF_DISRUPTION~) OR override_arcane) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi313.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi313a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdia328.spl~ 2 3 WIZARD_LANCE_OF_DISRUPTION - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3060 // name - SAY 0x50 @3061 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia328 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi313 END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi313a END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 target = 1 parameter2 = 0 STR_VAR match_resource = cdia328 resource = EVAL ~%DEST_RES%~ END - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia328.itm~ - SAY 0x0c @3060 - SAY 0x54 @3061 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia328a.bam~ ~override~ - ~iwdification/bam/cdia328b.bam~ ~override~ - ~iwdification/bam/cdia328c.bam~ ~override~ - ~iwdification/bam/cdiinvoc.bam~ ~override~ - ~iwdification/bam/cdilodis.bam~ ~override~ - ~iwdification/vvc/cdiinvoc.vvc~ ~override~ - ~iwdification/wav/cdiem06.wav~ ~override~ - ~iwdification/wav/cditra59.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_BELTYNS_BURNING_BLOOD \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_BELTYNS_BURNING_BLOOD~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3070) STR_VAR bam_file = cdia422d RET icon END - - ADD_SPELL ~iwdification/spl/cdia422.spl~ 2 4 WIZARD_BELTYNS_BURNING_BLOOD - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3070 // name - SAY 0x50 @3071 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia422 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 66 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 66 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixa422 END // race = elemental - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa422 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa422 END // general = undead - LPF CD_CONVERT_333 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia422.itm~ - SAY 0x0c @3070 - SAY 0x54 @3071 - LPF cd_scroll INT_VAR unusable1 = BIT2 range = 200 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/spl/cdia422a.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37605 parameter1 = string_berserk END - - COPY ~iwdification/bam/cdia422a.bam~ ~override~ - ~iwdification/bam/cdia422b.bam~ ~override~ - ~iwdification/bam/cdia422c.bam~ ~override~ - ~iwdification/bam/cdia422d.bam~ ~override~ - ~iwdification/bam/cdinecro.bam~ ~override~ - ~iwdification/vvc/cdinecro.vvc~ ~override~ - ~iwdification/wav/cdiem07.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixa422.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// WIZARD_SHADOW_MONSTERS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHADOW_MONSTERS~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "SHADOW_MONSTERS" 2da_file = cdismons RET table END - - ADD_SPELL ~iwdification/spl/cdia426.spl~ 2 4 WIZARD_SHADOW_MONSTERS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3080 // name - SAY 0x50 @3081 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - READ_SHORT 0x68 abil_num - LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdismons END - FOR (index = 1 ; index < abil_num ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 7) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdismons END - END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia426.itm~ - SAY 0x0c @3080 - SAY 0x54 @3081 - LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1200 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e400 END // 58368 MGO1 goblin_axe - COPY ~iwdification/cre/cdis1gb1.cre~ ~override~ - ~iwdification/cre/cdis1gb2.cre~ ~override~ - ~iwdification/cre/cdis1gb3.cre~ ~override~ - WRITE_LONG 0x08 string_goblin - WRITE_LONG 0x0c string_goblin - - LAF cd_animation STR_VAR code = e510 END // 58640 MLI2 lizard_man - COPY ~iwdification/cre/cdis1lz3.cre~ ~override~ - ~iwdification/cre/cdis1lz4.cre~ ~override~ - SAY 0x08 @3082 - SAY 0x0c @3082 - WRITE_LONG 0x28 anim_lizman - - LAF cd_animation STR_VAR code = e0b0 END // 57520 MTRO troll_blue - MTRO doubles with bg2 troll - COPY ~iwdification/cre/cdis1tr6.cre~ ~override~ - ~iwdification/cre/cdis1tr7.cre~ ~override~ - ~iwdification/cre/cdis1tr8.cre~ ~override~ - WRITE_LONG 0x08 string_troll - WRITE_LONG 0x0c string_troll - WRITE_LONG 0x28 anim_btroll - - COPY ~iwdification/itm/cdim1d7s.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/2da/cdismons.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - - COPY ~iwdification/bam/cdia426a.bam~ ~override~ - ~iwdification/bam/cdia426b.bam~ ~override~ - ~iwdification/bam/cdia426c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/itm/cdisumrn.itm~ ~override~ - ~iwdification/itm/cditrn20.itm~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - -END - -///// \\\\\ -///// WIZARD_EMOTION_COURAGE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_COURAGE~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3092) STR_VAR bam_file = cdia427d RET icon END - - ADD_PROJECTILE ~iwdification/pro/cdi407.pro~ - - ADD_SPELL ~iwdification/spl/cdia427.spl~ 2 4 WIZARD_EMOTION_COURAGE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3090 // name - SAY 0x50 @3091 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi407 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia427 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 187 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 187 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia427.itm~ - SAY 0x0c @3090 - SAY 0x54 @3091 - LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia427a.bam~ ~override~ - ~iwdification/bam/cdia427b.bam~ ~override~ - ~iwdification/bam/cdia427c.bam~ ~override~ - ~iwdification/bam/cdia427d.bam~ ~override~ - ~iwdification/bam/cdiencha.bam~ ~override~ - ~iwdification/vvc/cdiencha.vvc~ ~override~ - ~iwdification/wav/cdiee03.wav~ ~override~ - ~iwdification/wav/cdiem05.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_EMOTION_FEAR \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_FEAR~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi255.pro~ - - ADD_SPELL ~iwdification/spl/cdia428.spl~ 2 4 WIZARD_EMOTION_FEAR - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3100 // name - SAY 0x50 @3101 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi255 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35484 parameter1 = string_panic END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia428.itm~ - SAY 0x0c @3100 - SAY 0x54 @3101 - LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia428a.bam~ ~override~ - ~iwdification/bam/cdia428b.bam~ ~override~ - ~iwdification/bam/cdia428c.bam~ ~override~ - ~iwdification/bam/cdiencha.bam~ ~override~ - ~iwdification/bam/cdienchx.bam~ ~override~ - ~iwdification/vvc/cdiencha.vvc~ ~override~ - ~iwdification/vvc/cdigench.vvc~ ~override~ - ~iwdification/wav/cdiarm21.wav~ ~override~ - ~iwdification/wav/cdiee05.wav~ ~override~ - ~iwdification/wav/cdiem05.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_EMOTION_HOPE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_HOPE~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3112) STR_VAR bam_file = cdia429d RET icon END - - ADD_PROJECTILE ~iwdification/pro/cdi407.pro~ - - ADD_SPELL ~iwdification/spl/cdia429.spl~ 2 4 WIZARD_EMOTION_HOPE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3110 // name - SAY 0x50 @3111 // descript - LPF DELETE_EFFECT INT_VAR match_opcode = 321 STR_VAR match_resource = spin115 END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi407 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 186 parameter2 = icon END - LPF ALTER_EFFECT STR_VAR match_resource = cdia429 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 186 parameter2 = 22 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia429.itm~ - SAY 0x0c @3110 - SAY 0x54 @3111 - LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia429a.bam~ ~override~ - ~iwdification/bam/cdia429b.bam~ ~override~ - ~iwdification/bam/cdia429c.bam~ ~override~ - ~iwdification/bam/cdia429d.bam~ ~override~ - ~iwdification/bam/cdiencha.bam~ ~override~ - ~iwdification/vvc/cdiencha.vvc~ ~override~ - ~iwdification/wav/cdiee03.wav~ ~override~ - ~iwdification/wav/cdiem05.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_MORDENKAINENS_FORCE_MISSILES \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MORDENKAINENS_FORCE_MISSILES~) OR override_arcane)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdimfm.pro~ - ADD_PROJECTILE ~iwdification/pro/cdimfm2.pro~ - - // ADD_PROJECTILE won't add multiple versions of the same projectile, but it's needed for MFM's special projectile chain - do it manually - OUTER_FOR (index = (cdimfm2 + 1) ; index < (cdimfm2 + 10) ; ++index) BEGIN - - APPEND ~projectl.ids~ ~%index% cdimfm2~ - - END - - ADD_SPELL ~iwdification/spl/cdia430.spl~ 2 4 WIZARD_MORDENKAINENS_FORCE_MISSILES - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3120 // name - SAY 0x50 @3121 // descript - LPF ALTER_SPELL_HEADER INT_VAR header = 1 projectile = (cdimfm + 0) END - LPF ALTER_SPELL_HEADER INT_VAR header = 2 projectile = (cdimfm + 0) END - LPF ALTER_SPELL_HEADER INT_VAR header = 3 projectile = (cdimfm + 0) END - LPF ALTER_SPELL_HEADER INT_VAR header = 4 projectile = (cdimfm + 1) END - LPF ALTER_SPELL_HEADER INT_VAR header = 5 projectile = (cdimfm + 1) END - LPF ALTER_SPELL_HEADER INT_VAR header = 6 projectile = (cdimfm + 1) END - LPF ALTER_SPELL_HEADER INT_VAR header = 7 projectile = (cdimfm + 2) END - LPF ALTER_SPELL_HEADER INT_VAR header = 8 projectile = (cdimfm + 2) END - LPF ALTER_SPELL_HEADER INT_VAR header = 9 projectile = (cdimfm + 2) END - LPF ALTER_SPELL_HEADER INT_VAR header = 10 projectile = (cdimfm + 3) END - LPF ALTER_SPELL_HEADER INT_VAR header = 11 projectile = (cdimfm + 3) END - LPF ALTER_SPELL_HEADER INT_VAR header = 12 projectile = (cdimfm + 3) END - LPF ALTER_SPELL_HEADER INT_VAR header = 13 projectile = (cdimfm + 4) END - LPF ALTER_SPELL_HEADER INT_VAR header = 14 projectile = (cdimfm + 4) END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia430.itm~ - SAY 0x0c @3120 - SAY 0x54 @3121 - LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia430a.bam~ ~override~ - ~iwdification/bam/cdia430b.bam~ ~override~ - ~iwdification/bam/cdia430c.bam~ ~override~ - ~iwdification/bam/cdimfmsx.bam~ ~override~ - ~iwdification/bam/cdimfmt.bam~ ~override~ - ~iwdification/spl/cdia430b.spl~ ~override~ - ~iwdification/vvc/cdimfmsx.vvc~ ~override~ - ~iwdification/wav/cdiarm02.wav~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - ~iwdification/wav/cditra55.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SHOUT \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHOUT~) OR override_arcane)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi315.pro~ - - ADD_SPELL ~iwdification/spl/cdia431.spl~ 2 4 WIZARD_SHOUT - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3130 // name - SAY 0x50 @3131 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi315 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia431.itm~ - SAY 0x0c @3130 - SAY 0x54 @3131 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 22 opcode = 148 target_eff = 1 price = 1200 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia431a.bam~ ~override~ - ~iwdification/bam/cdia431b.bam~ ~override~ - ~iwdification/bam/cdia431c.bam~ ~override~ - ~iwdification/bam/cdishout.bam~ ~override~ - ~iwdification/wav/cdiem100.wav~ ~override~ - ~iwdification/wav/cditra08.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_VITRIOLIC_SPHERE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_VITRIOLIC_SPHERE~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi316.pro~ - - ADD_SPELL ~iwdification/spl/cdia432.spl~ 2 4 WIZARD_VITRIOLIC_SPHERE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3140 // name - SAY 0x50 @3141 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi316 END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia432.itm~ - SAY 0x0c @3140 - SAY 0x54 @3141 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) range = 100 price = 1600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia432a.bam~ ~override~ - ~iwdification/bam/cdia432b.bam~ ~override~ - ~iwdification/bam/cdia432c.bam~ ~override~ - ~iwdification/bam/cdiacid.bam~ ~override~ - ~iwdification/bam/cdivitst.bam~ ~override~ - ~iwdification/bam/cdivitsx.bam~ ~override~ - ~iwdification/spl/cdia432y.spl~ ~override~ - ~iwdification/spl/cdia432z.spl~ ~override~ - ~iwdification/vvc/cdiacid.vvc~ ~override~ - ~iwdification/vvc/cdivitsx.vvc~ ~override~ - ~iwdification/wav/cdiem34.wav~ ~override~ - ~iwdification/wav/cdiem47.wav~ ~override~ - ~iwdification/wav/cditra60.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SHROUD_OF_FLAME \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHROUD_OF_FLAME~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3150) STR_VAR bam_file = cdia524d RET icon END - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdishrod.pro~ - - END ELSE BEGIN - - OUTER_SET cdishrod = 216 - - END - - ADD_SPELL ~iwdification/spl/cdia524.spl~ 2 5 WIZARD_SHROUD_OF_FLAME - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3150 // name - SAY 0x50 @3151 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia524 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdia524b END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 94 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 94 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 328 END - LPF CD_CONVERT_333 STR_VAR 333spell = cdia524b END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia524.itm~ - SAY 0x0c @3150 - SAY 0x54 @3151 - LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/spl/cdia524b.spl~ ~override~ - SAY 0x08 @3150 // name - SAY 0x50 @3151 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdishrod END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 328 END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/bam/cdia524a.bam~ ~override~ - ~iwdification/bam/cdia524b.bam~ ~override~ - ~iwdification/bam/cdia524c.bam~ ~override~ - ~iwdification/bam/cdia524d.bam~ ~override~ - ~iwdification/bam/cdisofl.bam~ ~override~ - ~iwdification/vvc/cdisofl.vvc~ ~override~ - -END - -///// \\\\\ -///// WIZARD_DEMI_SHADOW_MONSTERS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DEMI_SHADOW_MONSTERS~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "DEMI_SHADOW_MONSTERS" 2da_file = cdidsmon RET table END - - ADD_SPELL ~iwdification/spl/cdia525.spl~ 2 5 WIZARD_DEMI_SHADOW_MONSTERS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3160 // name - SAY 0x50 @3161 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - READ_SHORT 0x68 abil_num - LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdidsmon END - FOR (index = 1 ; index < abil_num ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 9) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdidsmon END - END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia525.itm~ - SAY 0x0c @3160 - SAY 0x54 @3161 - LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e420 END // 58400 MGO3 goblin_elite_axe - COPY ~iwdification/cre/cdis2gb1.cre~ ~override~ - ~iwdification/cre/cdis2gb2.cre~ ~override~ - ~iwdification/cre/cdis2gb3.cre~ ~override~ - SAY 0x08 @3162 - SAY 0x0c @3162 - - LAF cd_animation STR_VAR code = e500 END // 58624 MLIZ lizard_man_elite - COPY ~iwdification/cre/cdis2lz5.cre~ ~override~ - ~iwdification/cre/cdis2lz6.cre~ ~override~ - ~iwdification/cre/cdis2lz7.cre~ ~override~ - SAY 0x08 @3163 - SAY 0x0c @3163 - - COPY ~iwdification/bam/cdia525a.bam~ ~override~ - ~iwdification/bam/cdia525b.bam~ ~override~ - ~iwdification/bam/cdia525c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/itm/cdisumrn.itm~ ~override~ - ~iwdification/itm/cditrn40.itm~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - - COPY ~iwdification/2da/cdidsmon.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_SUMMON_SHADOW \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SUMMON_SHADOW~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "SUMMON_SHADOW" 2da_file = cdishadw RET table END - - ADD_SPELL ~iwdification/spl/cdia526.spl~ 2 5 WIZARD_SUMMON_SHADOW - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3170 // name - SAY 0x50 @3171 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 12 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishadw END // shadows are level 4, so p1=12 should mean 3 shadows - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia526.itm~ - SAY 0x0c @3170 - SAY 0x54 @3171 - LPF cd_scroll INT_VAR target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = ea20 END // 59936 MSH2 shadow_large - COPY ~iwdification/cre/cdisshad.cre~ ~override~ - WRITE_LONG 0x08 string_shadow - WRITE_LONG 0x0c string_shadow - WRITE_LONG 0x28 anim_shadow_lg - - COPY ~iwdification/itm/cdishdw1.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/spl/cdishdw1.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35593 parameter1 = string_diseased END - - COPY ~iwdification/bam/cdia526a.bam~ ~override~ - ~iwdification/bam/cdia526b.bam~ ~override~ - ~iwdification/bam/cdia526c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/bam/cdinecro.bam~ ~override~ - ~iwdification/itm/cditrn60.itm~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - ~iwdification/vvc/cdinecro.vvc~ ~override~ - - COPY ~iwdification/2da/cdishadw.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_CONTACT_OTHER_PLANE \\\\\ -///// \\\\\ - -/* awaiting dialogue for cdia528.d -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONTACT_OTHER_PLANE~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia528.spl~ 2 5 WIZARD_CONTACT_OTHER_PLANE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3180 // name - SAY 0x50 @3181 // descript - - COPY ~iwdification/itm/blank.itm~ ~override/cdia528.itm~ - SAY 0x0c @3180 - SAY 0x54 @3181 - LPF cd_scroll INT_VAR unusable2 = BIT7 target_hdr = 5 range = 1 target_eff = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e300 END // 58112 MGHO ghost - COPY ~iwdification/cre/cdia528.cre~ ~override~ - SAY 0x08 @3182 - SAY 0x0c @3182 - WRITE_LONG 0x28 anim_ghost - WRITE_ASCII 0x2cc ~cdia528~ #8 // dlg - - APPEND ~state.ids~ ~0x00000FC0 STATE_REALLY_DEAD~ UNLESS ~^0x00000FC0[ %TAB]+STATE_REALLY_DEAD[ %TAB%%LNL%%MNL%%WNL%]~ - - COMPILE ~iwdification/baf/cdia528.baf~ - ~iwdification/dlg/cdia528.d~ - - COPY ~iwdification/bam/cdia528a.bam~ ~override~ - ~iwdification/bam/cdia528b.bam~ ~override~ - ~iwdification/bam/cdia528c.bam~ ~override~ - ~iwdification/bam/cdidivin.bam~ ~override~ - ~iwdification/eff/cdia528.eff~ ~override~ - ~iwdification/vvc/cdidivin.vvc~ ~override~ - ~iwdification/wav/cdiem01.wav~ ~override~ - -END -*/ - -///// \\\\\ -///// WIZARD_CONJURE_FIRE_ELEMENTAL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_FIRE_ELEMENTAL~) OR override_arcane) BEGIN - - APPEND ~spell.ids~ ~2516 WIZARD_CONJURE_FIRE_ELEMENTAL~ // alternate identifier - - LAF cd_new_summon_table STR_VAR descript = "FIRE_ELEMENTAL_WIZ" 2da_file = cdifelmw RET table END - - COPY ~iwdification/spl/cdia531.spl~ ~override/spwi516.spl~ - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3190 // name - SAY 0x50 @3191 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdifelmw END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/scrl6x.itm~ - SAY 0x0c @3190 - SAY 0x54 @3191 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e24c END // 57932 MELF elemental_fire_iwd - COPY ~iwdification/cre/cdi8fire.cre~ ~override~ - SAY 0x08 @3192 - SAY 0x0c @3192 - WRITE_LONG 0x28 anim_felem - - COPY ~iwdification/itm/cdifel18.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia531a.bam~ ~override~ - ~iwdification/bam/cdia531b.bam~ ~override~ - ~iwdification/bam/cdia531c.bam~ ~override~ - ~iwdification/bam/cdicfelx.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/vvc/cdicfelx.vvc~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - - COPY ~iwdification/2da/cdifelmw.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_CONJURE_EARTH_ELEMENTAL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_EARTH_ELEMENTAL~) OR override_arcane) BEGIN - - APPEND ~spell.ids~ ~2521 WIZARD_CONJURE_EARTH_ELEMENTAL~ // alternate identifier - - LAF cd_new_summon_table STR_VAR descript = "EARTH_ELEMENTAL_WIZ" 2da_file = cdieelmw RET table END - - COPY ~iwdification/spl/cdia532.spl~ ~override/spwi521.spl~ - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3200 // name - SAY 0x50 @3201 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdieelmw END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/scrl7c.itm~ - SAY 0x0c @3200 - SAY 0x54 @3201 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e24b END // 57931 MELE elemental_earth_iwd - COPY ~iwdification/cre/cdi8erth.cre~ ~override~ - SAY 0x08 @3202 - SAY 0x0c @3202 - WRITE_LONG 0x28 anim_eelem - - COPY ~iwdification/itm/cdieelem.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia532a.bam~ ~override~ - ~iwdification/bam/cdia532b.bam~ ~override~ - ~iwdification/bam/cdia532c.bam~ ~override~ - ~iwdification/bam/cdiceelx.bam~ ~override~ - ~iwdification/bam/cdieelem.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/vvc/cdiceelx.vvc~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - - COPY ~iwdification/2da/cdieelmw.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_CONJURE_WATER_ELEMENTAL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_WATER_ELEMENTAL~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "WATER_ELEMENTAL_WIZ" 2da_file = cdiwelmw RET table END - - ADD_SPELL ~iwdification/spl/cdia533.spl~ 2 5 WIZARD_CONJURE_WATER_ELEMENTAL - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3220 // name - SAY 0x50 @3221 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiwelmw END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia533.itm~ - SAY 0x0c @3220 - SAY 0x54 @3221 - LPF cd_scroll INT_VAR unusable1 = BIT0 + BIT3 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e24d END // 57933 MELW elemental_water - COPY ~iwdification/cre/cdi8watr.cre~ ~override~ - SAY 0x08 @3222 - SAY 0x0c @3222 - WRITE_LONG 0x28 anim_welem - WRITE_ASCII 0x250 ~~ #8 // blank script that makes elementals ignore targets with SHLDBCH, as not relevant outside of IWD - - COPY ~iwdification/itm/cdiwelem.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia533a.bam~ ~override~ - ~iwdification/bam/cdia533b.bam~ ~override~ - ~iwdification/bam/cdia533c.bam~ ~override~ - ~iwdification/bam/cdicwelx.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdiwelem.bam~ ~override~ - ~iwdification/itm/cditrn4.itm~ ~override~ - ~iwdification/vvc/cdicwelx.vvc~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - - COPY ~iwdification/2da/cdiwelmw.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_CONJURE_AIR_ELEMENTAL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_AIR_ELEMENTAL~) OR override_arcane) BEGIN - - APPEND ~spell.ids~ ~2520 WIZARD_CONJURE_AIR_ELEMENTAL~ // alternate identifier - - LAF cd_new_summon_table STR_VAR descript = "AIR_ELEMENTAL_WIZ" 2da_file = cdiaelmw RET table END - - COPY ~iwdification/spl/cdia534.spl~ ~override/spwi520.spl~ - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3210 // name - SAY 0x50 @3211 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiaelmw END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/scrl7b.itm~ - SAY 0x0c @3210 - SAY 0x54 @3211 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END - -// LAF cd_animation STR_VAR code = 7320 END // 29472 MAIR elemental_air - COPY ~iwdification/cre/cdi8air.cre~ ~override~ - SAY 0x08 @3212 - SAY 0x0c @3212 - - COPY ~iwdification/itm/cdiaelem.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia534a.bam~ ~override~ - ~iwdification/bam/cdia534b.bam~ ~override~ - ~iwdification/bam/cdia534c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/itm/cditrn4.itm~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - - COPY ~iwdification/2da/cdiaelmw.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_ANTIMAGIC_SHELL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ANTIMAGIC_SHELL~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3230) STR_VAR bam_file = cdia610d RET icon END - - ADD_SPELL ~iwdification/spl/cdia610.spl~ 2 6 WIZARD_ANTIMAGIC_SHELL - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3230 // name - SAY 0x50 @3231 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35499 parameter1 = string_dispel END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 93 parameter2 = icon END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 93 parameter2 = 83 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia610.itm~ - SAY 0x0c @3230 - SAY 0x54 @3231 - LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia610a.bam~ ~override~ - ~iwdification/bam/cdia610b.bam~ ~override~ - ~iwdification/bam/cdia610c.bam~ ~override~ - ~iwdification/bam/cdia610d.bam~ ~override~ - ~iwdification/bam/cdishelc.bam~ ~override~ - ~iwdification/vvc/cdiamags.vvc~ ~override~ - ~iwdification/wav/cdiafm04.wav~ ~override~ - ~iwdification/wav/cdiee01.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_LICH_TOUCH \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_LICH_TOUCH~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia626.spl~ 2 6 WIZARD_LICH_TOUCH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3240 // name - SAY 0x50 @3241 // descript - - COPY ~iwdification/itm/blank.itm~ ~override/cdia626.itm~ - SAY 0x0c @3240 - SAY 0x54 @3241 - LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price= 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdiltou.itm~ ~override~ - SAY 0x08 @3240 - SAY 0x0c @3240 - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa626 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa626 END // general = undead - END - - COPY ~iwdification/spl/cdia626a.spl~ ~override~ - LPF ADD_SPELL_EFFECT INT_VAR opcode = 109 target = 2 parameter2 = 0 duration = 42 savingthrow = BIT2 STR_VAR END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 parameter2 = 0 timing = 1 savingthrow = BIT2 STR_VAR resource = cdinecro END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 174 target = 2 parameter2 = 0 timing = 1 savingthrow = BIT2 STR_VAR resource = cdiem07 END - - COPY ~iwdification/bam/cdia626a.bam~ ~override~ - ~iwdification/bam/cdia626b.bam~ ~override~ - ~iwdification/bam/cdia626c.bam~ ~override~ - ~iwdification/bam/cdiltou.bam~ ~override~ - ~iwdification/bam/cdinecro.bam~ ~override~ - ~iwdification/vvc/cdinecro.vvc~ ~override~ - ~iwdification/wav/cdiee04.wav~ ~override~ - ~iwdification/wav/cdiem07.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixa626.eff~ - WRITE_ASCII 0x30 ~cdia626a~ #8 - - END - -END - -///// \\\\\ -///// WIZARD_MONSTER_SUMMONING_4 \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_4~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_IV" 2da_file = cdimsum4 RET table END - - ADD_SPELL ~iwdification/spl/cdia627.spl~ 2 6 WIZARD_MONSTER_SUMMONING_4 - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3250 // name - SAY 0x50 @3251 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia627.itm~ - SAY 0x0c @3250 - SAY 0x54 @3251 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - LAF cd_animation STR_VAR code = e320 END // 58144 MGH3 ghast_greater - COPY ~iwdification/cre/cdi4ghst.cre~ ~override~ - WRITE_LONG 0x08 string_ghast - WRITE_LONG 0x0c string_ghast - WRITE_LONG 0x28 anim_ghast - -// LAF cd_animation STR_VAR code = 9000 END // 36864 MOGR ogre - COPY ~iwdification/cre/cdi4ogre.cre~ ~override~ - WRITE_LONG 0x08 string_ogre - WRITE_LONG 0x0c string_ogre - - COPY ~iwdification/2da/cdimsum4.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - PATCH_IF !anim_yeti BEGIN - REPLACE_TEXTUALLY ~^3[ %TAB%]+cdi4yeti[ %TAB%%LNL%%MNL%%WNL%]+~ ~~ // delete yeti line from msum table - END - END - - ACTION_IF anim_yeti BEGIN // yeti animation (e.g. ee or vanilla bg2 w/ infinity animations) - - LAF cd_animation STR_VAR code = e25d END // 57949 MYET tundra_yeti - COPY ~iwdification/cre/cdi4yeti.cre~ ~override~ - SAY 0x08 @3252 - SAY 0x0c @3252 - - END - - COPY ~iwdification/bam/cdia627a.bam~ ~override~ - ~iwdification/bam/cdia627b.bam~ ~override~ - ~iwdification/bam/cdia627c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - -END - -///// \\\\\ -///// WIZARD_OTILUKES_FREEZING_SPHERE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_OTILUKES_FREEZING_SPHERE~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi269.pro~ - - ADD_SPELL ~iwdification/spl/cdia628.spl~ 2 6 WIZARD_OTILUKES_FREEZING_SPHERE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3260 // name - SAY 0x50 @3261 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi269 END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia628.itm~ - SAY 0x0c @3260 - SAY 0x54 @3261 - LPF cd_scroll INT_VAR range = 40 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia628a.bam~ ~override~ - ~iwdification/bam/cdia628b.bam~ ~override~ - ~iwdification/bam/cdia628c.bam~ ~override~ - ~iwdification/bam/cdiofspt.bam~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SHADES \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHADES~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "Shades" 2da_file = cdishade RET table END - - ADD_SPELL ~iwdification/spl/cdia629.spl~ 2 6 WIZARD_SHADES - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3270 // name - SAY 0x50 @3271 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - READ_SHORT 0x68 abil_num - LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishade END - FOR (index = 1 ; index < abil_num ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 12) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishade END - END - LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia629.itm~ - SAY 0x0c @3270 - SAY 0x54 @3271 - LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - ACTION_IF ee_game BEGIN // use iwdee gaze for ee games - - ADD_PROJECTILE ~iwdification/pro/cdi281.pro~ - - COMPILE ~iwdification/baf/cdiuhgaz.baf~ - - COPY ~iwdification/spl/cdiumbr1.spl~ ~override~ // gaze staging - ~iwdification/spl/cditrdie.spl~ ~override~ // ee troll death - COPY ~iwdification/spl/cdiumbr2.spl~ ~override~ // actual gaze - SAY 0xce @3273 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi281 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37604 parameter1 = string_confused END - - END ELSE BEGIN - - COPY_EXISTING ~umbhul01.bcs~ ~override/cdiuhgaz.bcs~ // use bg2 umber hulk scripting - DECOMPILE_AND_PATCH BEGIN - REPLACE_TEXTUALLY ~AreaCheck("AR1106")~ ~False()~ - END - - END - - LAF cd_animation STR_VAR code = e420 END // 58400 MGO3 goblin_elite_axe - COPY ~iwdification/cre/cdis2gb2.cre~ ~override~ - ~iwdification/cre/cdis2gb3.cre~ ~override~ - SAY 0x08 @3162 - SAY 0x0c @3162 - - LAF cd_animation STR_VAR code = e500 END // 58624 MLIZ lizard_man_elite - COPY ~iwdification/cre/cdis2lz5.cre~ ~override~ - ~iwdification/cre/cdis2lz6.cre~ ~override~ - ~iwdification/cre/cdis2lz7.cre~ ~override~ - SAY 0x08 @3163 - SAY 0x0c @3163 - - LAF cd_animation STR_VAR code = e0b0 END // 57520 MTRO troll_blue - MTRO doubles with bg2 troll - COPY ~iwdification/cre/cdis3tr7.cre~ ~override~ - ~iwdification/cre/cdis3tr8.cre~ ~override~ - WRITE_LONG 0x08 string_troll - WRITE_LONG 0x0c string_troll - WRITE_LONG 0x28 anim_btroll - WRITE_ASCII 0x258 ~~ #8 // blank old die-revive troll script - - LAF cd_animation STR_VAR code = e0d0 END // 57552 MUMB umber_hulk_elder - MUMB doubles with bg2 umber hulk - COPY ~iwdification/cre/cdis3um8.cre~ ~override~ - ~iwdification/cre/cdis3um9.cre~ ~override~ - SAY 0x08 @3272 - SAY 0x0c @3272 - WRITE_LONG 0x28 anim_uhulk - - COPY ~iwdification/itm/cdiumbhk.itm~ ~override~ - ~iwdification/itm/cdim1d7s.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/itm/cdir1hp2.itm~ ~override~ - LPF DELETE_EFFECT INT_VAR match_opcode = 206 END // old iwd vorpal protections - LPF DELETE_EFFECT INT_VAR match_opcode = 267 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 232 STR_VAR resource = cditrdie END - END ELSE BEGIN - PATCH_FOR_EACH op IN 232 208 BEGIN // nuke everything but regen - LPF DELETE_EFFECT INT_VAR match_opcode = op END - END - END - - COPY ~iwdification/bam/cdia629a.bam~ ~override~ - ~iwdification/bam/cdia629b.bam~ ~override~ - ~iwdification/bam/cdia629c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/itm/cdisumam.itm~ ~override~ - ~iwdification/itm/cdisumrn.itm~ ~override~ - ~iwdification/itm/cditrn40.itm~ ~override~ - ~iwdification/itm/cditrn60.itm~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - - COPY ~iwdification/2da/cdishade.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_DARTS_OF_BONE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DARTS_OF_BONE~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia630.spl~ 2 6 WIZARD_DARTS_OF_BONE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3280 // name - SAY 0x50 @3281 // descript - - COPY ~iwdification/itm/blank.itm~ ~override/cdia630.itm~ - SAY 0x0c @3280 - SAY 0x54 @3281 - LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdidbone.itm~ ~override~ - SAY 0x08 @3280 - SAY 0x0c @3282 - - COPY ~iwdification/bam/cdia630a.bam~ ~override~ - ~iwdification/bam/cdia630b.bam~ ~override~ - ~iwdification/bam/cdia630c.bam~ ~override~ - ~iwdification/bam/cdidbone.bam~ ~override~ - ~iwdification/vvc/cdinecro.vvc~ ~override~ - ~iwdification/bam/cdinecro.bam~ ~override~ - ~iwdification/wav/cdiem07.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SOUL_EATER \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SOUL_EATER~) OR override_arcane)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi299.pro~ - - ADD_SPELL ~iwdification/spl/cdia631.spl~ 2 6 WIZARD_SOUL_EATER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3290 // name - SAY 0x50 @3291 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi299 END - LPF ALTER_EFFECT STR_VAR match_resource = cdia631 resource = EVAL ~%DEST_RES%~ END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia631.itm~ - SAY 0x0c @3290 - SAY 0x54 @3291 - LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COMPILE ~iwdification/baf/cdi3sklm.baf~ - - LAF cd_animation STR_VAR code = 6403 END // 25603 MSKL skeleton - COPY ~iwdification/cre/cdi3sklm.cre~ ~override~ - WRITE_LONG 0x08 string_skelly - WRITE_LONG 0x0c string_skelly - WRITE_ASCII 0x248 ~cdi3sklm~ #8 - - COPY ~iwdification/bam/cdia631a.bam~ ~override~ - ~iwdification/bam/cdia631b.bam~ ~override~ - ~iwdification/bam/cdia631c.bam~ ~override~ - ~iwdification/bam/cdiseata.bam~ ~override~ - ~iwdification/bam/cdiseath.bam~ ~override~ - ~iwdification/spl/cdi3sklm.spl~ ~override~ - ~iwdification/spl/cdia631b.spl~ ~override~ - ~iwdification/vvc/cdiseata.vvc~ ~override~ - ~iwdification/vvc/cdiseath.vvc~ ~override~ - ~iwdification/wav/cdiarm18.wav~ ~override~ - ~iwdification/wav/cdiem104.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_TROLLISH_FORTITUDE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_TROLLISH_FORTITUDE~) OR override_arcane) BEGIN - - ADD_SPELL ~iwdification/spl/cdia632.spl~ 2 6 WIZARD_TROLLISH_FORTITUDE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3300 // name - SAY 0x50 @3301 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia632 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 142 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia632.itm~ - SAY 0x0c @3300 - SAY 0x54 @3301 - LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia632a.bam~ ~override~ - ~iwdification/bam/cdia632b.bam~ ~override~ - ~iwdification/bam/cdia632c.bam~ ~override~ - ~iwdification/eff/cditroll.eff~ ~override~ - -END - -///// \\\\\ -///// WIZARD_MONSTER_SUMMONING_5 \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_5~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_V" 2da_file = cdimsum5 RET table END - - ADD_SPELL ~iwdification/spl/cdia706.spl~ 2 7 WIZARD_MONSTER_SUMMONING_5 - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3310 // name - SAY 0x50 @3311 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia706.itm~ - SAY 0x0c @3310 - SAY 0x54 @3311 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END - -// LAF cd_animation STR_VAR code = 7a00 END // 31232 MSPI_GI spider_giant - COPY ~iwdification/cre/cdi5gspi.cre~ ~override~ - WRITE_LONG 0x08 string_gspider - WRITE_LONG 0x0c string_gspider - - LAF cd_animation STR_VAR code = ee00 END // 60928 MZO2 zombie_yellow - COPY ~iwdification/cre/cdi5jzom.cre~ ~override~ - SAY 0x08 @3312 - SAY 0x0c @3312 - WRITE_LONG 0x28 anim_jzombie - - LAF cd_animation STR_VAR code = e070 END // 57456 MMIN minotaur - MMIN doubles with bg2 mindflayer - COPY ~iwdification/cre/cdi5mino.cre~ ~override~ - SAY 0x08 @3313 - SAY 0x0c @3313 - - COPY ~iwdification/itm/cdis18ml.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia706a.bam~ ~override~ - ~iwdification/bam/cdia706b.bam~ ~override~ - ~iwdification/bam/cdia706c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - - COPY ~iwdification/2da/cdimsum5.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// WIZARD_MALAVONS_RAGE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MALAVONS_RAGE~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi209.pro~ - - ADD_SPELL ~iwdification/spl/cdia709.spl~ 2 7 WIZARD_MALAVONS_RAGE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3320 // name - SAY 0x50 @3321 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi209 END - PATCH_IF !ee_game BEGIN - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia709.itm~ - SAY 0x0c @3320 - SAY 0x54 @3321 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 5 range = 50 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia709a.bam~ ~override~ - ~iwdification/bam/cdia709b.bam~ ~override~ - ~iwdification/bam/cdia709c.bam~ ~override~ - ~iwdification/bam/cdimagrx.bam~ ~override~ - ~iwdification/bam/cdimrage.bam~ ~override~ - ~iwdification/vvc/cdimalrg.vvc~ ~override~ - ~iwdification/vvc/cdimrage.vvc~ ~override~ - -END - -///// \\\\\ -///// WIZARD_ACID_STORM \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ACID_STORM~) OR override_arcane) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi211.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi211a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdia724.spl~ 2 7 WIZARD_ACID_STORM - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3330 // name - SAY 0x50 @3331 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi211 END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi211a END - LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 4 dicesize = 2 END - LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 6 dicesize = 3 END - LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 8 dicesize = 4 END - LPF CLONE_EFFECT INT_VAR match_opcode = 12 savingthrow = BIT24 END - PATCH_FOR_EACH res IN 0 1 2 3 4 5 6 7 8 9 x y z BEGIN // simulating clouds in bg2 sucks - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 resist_dispel = 3 STR_VAR resource = EVAL ~cdia724%res%~ END - END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia724.itm~ - SAY 0x0c @3330 - SAY 0x54 @3331 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia724a.bam~ ~override~ - ~iwdification/bam/cdia724b.bam~ ~override~ - ~iwdification/bam/cdia724c.bam~ ~override~ - ~iwdification/bam/cdiastra.bam~ ~override~ - ~iwdification/bam/cdiastrx.bam~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/vvc/cdia7240.vvc~ ~override~ - ~iwdification/vvc/cdia7241.vvc~ ~override~ - ~iwdification/vvc/cdia7242.vvc~ ~override~ - ~iwdification/vvc/cdia7243.vvc~ ~override~ - ~iwdification/vvc/cdia7244.vvc~ ~override~ - ~iwdification/vvc/cdia7245.vvc~ ~override~ - ~iwdification/vvc/cdia7246.vvc~ ~override~ - ~iwdification/vvc/cdia7247.vvc~ ~override~ - ~iwdification/vvc/cdia7248.vvc~ ~override~ - ~iwdification/vvc/cdia7249.vvc~ ~override~ - ~iwdification/vvc/cdia724x.vvc~ ~override~ - ~iwdification/vvc/cdia724y.vvc~ ~override~ - ~iwdification/vvc/cdia724z.vvc~ ~override~ - - END - -END - -///// \\\\\ -///// WIZARD_SEVEN_EYES \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHOUT~)) AND // eye of fortitude requires shout, no vanilla - (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SEVEN_EYES~) OR override_arcane)) BEGIN - - ADD_SPELL ~iwdification/spl/cdia725.spl~ 2 7 WIZARD_SEVEN_EYES - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3340 // name - SAY 0x50 @3341 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdia725 resource = EVAL ~%DEST_RES%~ END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia725.itm~ - SAY 0x0c @3340 - SAY 0x54 @3341 - LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/spl/cdia725t.spl~ ~override~ - SAY 0x08 @3342 // name - SAY 0x50 @3343 // descript - - COPY ~iwdification/spl/cdia725u.spl~ ~override~ - SAY 0x08 @3344 // name - SAY 0x50 @3345 // descript - - COPY ~iwdification/spl/cdia725v.spl~ ~override~ - SAY 0x08 @3346 // name - SAY 0x50 @3347 // descript - - COPY ~iwdification/spl/cdia725w.spl~ ~override~ - SAY 0x08 @3348 // name - SAY 0x50 @3349 // descript - - COPY ~iwdification/spl/cdia725x.spl~ ~override~ - SAY 0x08 @3350 // name - SAY 0x50 @3351 // descript - - COPY ~iwdification/spl/cdia725y.spl~ ~override~ - SAY 0x08 @3352 // name - SAY 0x50 @3353 // descript - - COPY ~iwdification/spl/cdia725z.spl~ ~override~ - SAY 0x08 @3354 // name - SAY 0x50 @3355 // descript - - COPY ~iwdification/2da/7eyes.2da~ ~override~ - REPLACE ~21648~ @3356 - REPLACE ~21649~ @3357 - REPLACE ~21650~ @3358 - REPLACE ~21651~ @3359 - REPLACE ~21652~ @3360 - REPLACE ~21653~ @3361 - REPLACE ~21654~ @3362 - - COPY ~iwdification/bam/cdia725a.bam~ ~override~ - ~iwdification/bam/cdia725b.bam~ ~override~ - ~iwdification/bam/cdia725c.bam~ ~override~ - ~iwdification/bam/cdi7eyc1.bam~ ~override~ - ~iwdification/bam/cdi7eyc2.bam~ ~override~ - ~iwdification/bam/cdia725t.bam~ ~override~ - ~iwdification/bam/cdia725u.bam~ ~override~ - ~iwdification/bam/cdia725v.bam~ ~override~ - ~iwdification/bam/cdia725w.bam~ ~override~ - ~iwdification/bam/cdia725x.bam~ ~override~ - ~iwdification/bam/cdia725y.bam~ ~override~ - ~iwdification/bam/cdia725z.bam~ ~override~ - ~iwdification/vvc/cdi7ey.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1a.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1b.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1c.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1d.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1e.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1f.vvc~ ~override~ - ~iwdification/vvc/cdi7ey1g.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2a.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2b.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2c.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2d.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2e.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2f.vvc~ ~override~ - ~iwdification/vvc/cdi7ey2g.vvc~ ~override~ - ~iwdification/wav/cdiafm13.wav~ ~override~ - ~iwdification/wav/cdiafm15.wav~ ~override~ - ~iwdification/wav/cdiafm16.wav~ ~override~ - ~iwdification/wav/cdiafm17.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_SUFFOCATE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SUFFOCATE~) OR override_arcane) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi317.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi317a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdia726.spl~ 2 7 WIZARD_SUFFOCATE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3370 // name - SAY 0x50 @3371 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi317 END - LPF ALTER_EFFECT STR_VAR match_resource = cdia726 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdia726 END - LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia726.itm~ - SAY 0x0c @3370 - SAY 0x54 @3371 - LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END - - - COPY ~iwdification/bam/cdia726a.bam~ ~override~ - ~iwdification/bam/cdia726b.bam~ ~override~ - ~iwdification/bam/cdia726c.bam~ ~override~ - ~iwdification/bam/cdisuffo.bam~ ~override~ - - ACTION_IF ee_game BEGIN - - APPEND ~clearair.2da~ ~Suffocate %cdi317%~ - - COPY ~iwdification/vvc/cdisuffo.vvc~ ~override~ - ~iwdification/wav/cdiafm18.wav~ ~override~ - - END ELSE BEGIN - - APPEND ~clearair.2da~ ~Suffocate %cdi317a%~ - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 60 zosa = 1 STR_VAR code = CDIA726 anim = cdisuffo END - - COPY ~iwdification/spl/cdia726.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi317a END - LPF CLONE_EFFECT INT_VAR match_opcode = 321 opcode = 206 duration = 6 STR_VAR insert = last END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixa726 END // race = elemental - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 27 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa726 END // race = golem - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 31 opcode = 177 parameter1 = 121 parameter2 = 4 STR_VAR resource = cdixa726 END // race = demonic - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 31 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa726 END // general = undead - LPF CD_SPLIT_SAVE_DAMAGE END - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixa726.eff~ - WRITE_ASCII 0x30 ~cdia726~ #8 - - END - -END - -///// \\\\\ -///// WIZARD_MONSTER_SUMMONING_6 \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_6~) OR override_arcane) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdisalau.pro~ - - LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_VI" 2da_file = cdimsum6 RET table END - - ADD_SPELL ~iwdification/spl/cdia801.spl~ 2 8 WIZARD_MONSTER_SUMMONING_6 - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3380 // name - SAY 0x50 @3381 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia801.itm~ - SAY 0x0c @3380 - SAY 0x54 @3381 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COMPILE ~iwdification/baf/cdisalfi.baf~ - ~iwdification/baf/cdisalfr.baf~ - ~iwdification/baf/cdipspid.baf~ - -// LAF cd_animation STR_VAR code = a100 END // 41216 MCAR carrion_crawler - COPY ~iwdification/cre/cdi6crwl.cre~ ~override~ - WRITE_LONG 0x08 string_crawler - WRITE_LONG 0x0c string_crawler - -// LAF cd_animation STR_VAR code = 7a02 END // 31234 MSPI_PH spider_phase - COPY ~iwdification/cre/cdi6pspi.cre~ ~override~ - WRITE_LONG 0x08 string_pspider - WRITE_LONG 0x0c string_pspider - - LAF cd_animation STR_VAR code = e910 END // 59664 MSA2 salamander_frost - COPY ~iwdification/cre/cdi6salc.cre~ ~override~ - SAY 0x08 @3383 - SAY 0x0c @3383 - - LAF cd_animation STR_VAR code = e900 END // 59648 MSAL salamander_fire - COPY ~iwdification/cre/cdi6salf.cre~ ~override~ - SAY 0x08 @3382 - SAY 0x0c @3382 - - COPY ~iwdification/itm/cdisalfi.itm~ ~override~ - ~iwdification/itm/cdisalfr.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - WRITE_ASCII 0x3a ~isper01~ #8 - WRITE_ASCII 0x76 ~isper01~ #8 - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 215 target = 1 parameter2 = 1 timing = 2 duration = 0 STR_VAR resource = EVAL ~%SOURCE_RES%~ END - - COPY ~iwdification/spl/cdifire6.spl~ ~override~ - ~iwdification/spl/cdifros6.spl~ ~override~ - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisalau END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - END - - COPY ~iwdification/spl/cdisalfi.spl~ ~override~ - ~iwdification/spl/cdisalfr.spl~ ~override~ - PATCH_IF !ee_game BEGIN // change from EE's 232 distance check to straight once-per-round spam; needs effs copied below - LPF ALTER_EFFECT INT_VAR match_opcode = 232 opcode = 272 target = 1 parameter1 = 6 parameter2 = 3 END - END - - COPY ~iwdification/bam/cdia801a.bam~ ~override~ - ~iwdification/bam/cdia801b.bam~ ~override~ - ~iwdification/bam/cdia801c.bam~ ~override~ - ~iwdification/bam/cdidoorh.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/bam/cdisalfi.bam~ ~override~ - ~iwdification/bam/cdisalfr.bam~ ~override~ - ~iwdification/spl/cdiphase.spl~ ~override~ - ~iwdification/vvc/cdidoorh.vvc~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - ~iwdification/vvc/cdisalfi.vvc~ ~override~ - ~iwdification/vvc/cdisalfr.vvc~ ~override~ - - COPY ~iwdification/2da/cdimsum6.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/spl/cdifire6.spl~ ~override/cdifire0.spl~ - ~iwdification/spl/cdifros6.spl~ ~override/cdifros0.spl~ - WRITE_BYTE 0x7e 1 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisalau END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 2 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%SOURCE_RES%~ END - - COPY ~iwdification/eff/cdifire6.eff~ ~override/cdifire6.eff~ - ~iwdification/eff/cdifire6.eff~ ~override/cdifros6.eff~ - WRITE_ASCIIE 0x30 ~%DEST_RES%~ #8 - WRITE_ASCII 0x37 ~0~ #1 - - COPY_EXISTING ~cdisalfi.itm~ ~override~ - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = cdifire6 END - - COPY_EXISTING ~cdisalfr.itm~ ~override~ - LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = cdifros6 END - - END - -END - -///// \\\\\ -///// WIZARD_MIND_BLANK \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MIND_BLANK~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3390) STR_VAR bam_file = cdia802d RET icon END - - ADD_SPELL ~iwdification/spl/cdia802.spl~ 2 8 WIZARD_MIND_BLANK - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3390 // name - SAY 0x50 @3391 // descript -// LPF ALTER_EFFECT STR_VAR match_resource = confush resource = cdiconfh END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 166 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 166 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia802.itm~ - SAY 0x0c @3390 - SAY 0x54 @3391 - LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia802a.bam~ ~override~ - ~iwdification/bam/cdia802b.bam~ ~override~ - ~iwdification/bam/cdia802c.bam~ ~override~ - ~iwdification/bam/cdia802d.bam~ ~override~ - ~iwdification/bam/cdiabjur.bam~ ~override~ - ~iwdification/vvc/cdiabjur.vvc~ ~override~ - ~iwdification/wav/cdiem02.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_GREAT_SHOUT \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_GREAT_SHOUT~) OR override_arcane)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi319.pro~ - - ADD_SPELL ~iwdification/spl/cdia806.spl~ 2 8 WIZARD_GREAT_SHOUT - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3400 // name - SAY 0x50 @3401 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi319 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37340 parameter1 = string_uncon END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END - PATCH_IF !ee_game BEGIN - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia806.itm~ - SAY 0x0c @3400 - SAY 0x54 @3401 - LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 22 opcode = 148 target_eff = 1 price = 2400 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdia806a.bam~ ~override~ - ~iwdification/bam/cdia806b.bam~ ~override~ - ~iwdification/bam/cdia806c.bam~ ~override~ - ~iwdification/bam/cdigshou.bam~ ~override~ - ~iwdification/wav/cdiem101.wav~ ~override~ - ~iwdification/wav/cditra08.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_IRON_BODY \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_IRON_BODY~) OR override_arcane) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3410) STR_VAR bam_file = cdia814d RET icon END - - ADD_SPELL ~iwdification/spl/cdia814.spl~ 2 8 WIZARD_IRON_BODY - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3410 // name - SAY 0x50 @3411 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37607 parameter1 = string_poisoned END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36317 parameter1 = string_poison END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35593 parameter1 = string_diseased END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 39752 parameter1 = string_stricken END - LPF CLONE_EFFECT INT_VAR match_opcode = 206 STR_VAR match_resource = spwi502 resource = spin673 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdia814 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 172 parameter2 = icon END - LPF CLONE_EFFECT INT_VAR match_opcode = 206 opcode = 318 parameter2 = 0 STR_VAR match_resource = spwi502 resource = wand13 END - END ELSE BEGIN // move spell effects to 'paw' - READ_LONG 0x6a fx_off - SET fx_num = ((SOURCE_SIZE - fx_off) / 0x30) - READ_ASCII fx_off fx (fx_num * 0x30) - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 111 target = 1 power = 8 duration = 120 STR_VAR resource = cdiibody END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 174 target = 1 power = 8 timing = 1 STR_VAR resource = cdiem102 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia814.itm~ - SAY 0x0c @3410 - SAY 0x54 @3411 - LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 5 range = 1 target_eff = 1 price = 800 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdiibody.itm~ ~override~ - SAY 0x08 @3412 - SAY 0x0c @3412 - PATCH_IF !ee_game BEGIN // move spell effects to 'paw' - READ_LONG 0x64 abil_off ELSE 0 - READ_SHORT 0x68 abil_num ELSE 0 - READ_LONG 0x6a fx_off - WRITE_SHORT 0x70 (THIS + fx_num) - FOR (index = 0 ; index < abil_num ; ++index) BEGIN // start iterating through abilities - WRITE_SHORT (abil_off + 0x20 + (0x28 * index)) (THIS + fx_num) - END - INSERT_BYTES fx_off (fx_num * 0x30) - WRITE_ASCIIE fx_off ~%fx%~ - PATCH_FOR_EACH op IN 321 111 174 BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = op END - END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 172 END - LPF DELETE_EFFECT INT_VAR match_opcode = 1 multi_match = 1 END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 END - LPF ALTER_EFFECT INT_VAR timing = 2 END - END - - COPY ~iwdification/bam/cdia814a.bam~ ~override~ - ~iwdification/bam/cdia814b.bam~ ~override~ - ~iwdification/bam/cdia814c.bam~ ~override~ - ~iwdification/bam/cdia814d.bam~ ~override~ - ~iwdification/bam/cdiibody.bam~ ~override~ - ~iwdification/wav/cdiem102.wav~ ~override~ - -END - -///// \\\\\ -///// WIZARD_MONSTER_SUMMONING_7 \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_7~) OR override_arcane) BEGIN - - LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_VII" 2da_file = cdimsum7 RET table END - - ADD_SPELL ~iwdification/spl/cdia901.spl~ 2 9 WIZARD_MONSTER_SUMMONING_7 - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @3420 // name - SAY 0x50 @3421 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 49 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum7 END - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum7 END - END - - COPY ~iwdification/itm/blank.itm~ ~override/cdia901.itm~ - SAY 0x0c @3420 - SAY 0x54 @3421 - LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - ACTION_IF ee_game BEGIN // use iwdee gaze for ee games - - ADD_PROJECTILE ~iwdification/pro/cdi281.pro~ - - COMPILE ~iwdification/baf/cdiuhgaz.baf~ - - COPY ~iwdification/spl/cdiumbr1.spl~ ~override~ // gaze staging - COPY ~iwdification/spl/cdiumbr2.spl~ ~override~ // actual gaze - SAY 0xce @3273 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi281 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37604 parameter1 = string_confused END - - END ELSE BEGIN - - COPY_EXISTING ~umbhul01.bcs~ ~override/cdiuhgaz.bcs~ // use bg2 umber hulk scripting - DECOMPILE_AND_PATCH BEGIN - REPLACE_TEXTUALLY ~AreaCheck("AR1106")~ ~False()~ - END - - END - - LAF cd_animation STR_VAR code = eb20 END // 60192 MSKB skeleton_fiend - COPY ~iwdification/cre/cdi7bgrd.cre~ ~override~ - SAY 0x08 @3422 - SAY 0x0c @3422 - - LAF cd_animation STR_VAR code = e0d0 END // 57552 MUMB umber_hulk_elder - MUMB doubles with bg2 umber hulk - COPY ~iwdification/cre/cdi7umbh.cre~ ~override~ - SAY 0x08 @3272 - SAY 0x0c @3272 - WRITE_LONG 0x28 anim_uhulk - - COPY ~iwdification/itm/cdiumbhk.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/bam/cdia901a.bam~ ~override~ - ~iwdification/bam/cdia901b.bam~ ~override~ - ~iwdification/bam/cdia901c.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdimsm1x.bam~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/vvc/cdimsm1x.vvc~ ~override~ - - COPY ~iwdification/2da/cdimsum7.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// arcane spell crosspatching \\\\\ -///// \\\\\ - -OUTER_SET NUM_a411 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_HOPELESSNESS~)) - 2000) -OUTER_SET NUM_a422 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_BELTYNS_BURNING_BLOOD~)) - 2000) -OUTER_SET NUM_a427 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_COURAGE~)) - 2000) -OUTER_SET NUM_a428 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_FEAR~)) - 2000) -OUTER_SET NUM_a429 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_HOPE~)) - 2000) -OUTER_SET NUM_a431 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SHOUT~)) - 2000) -OUTER_SET NUM_a432 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_VITRIOLIC_SPHERE~)) - 2000) -OUTER_SET NUM_a524 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SHROUD_OF_FLAME~)) - 2000) -OUTER_SET NUM_a610 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_ANTIMAGIC_SHELL~)) - 2000) -OUTER_SET NUM_a631 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SOUL_EATER~)) - 2000) -OUTER_SET NUM_a724 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_ACID_STORM~)) - 2000) -OUTER_SET NUM_a726 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SUFFOCATE~)) - 2000) -OUTER_SET NUM_a814 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_IRON_BODY~)) - 2000) - -ACTION_IF ((NUM_a411 > 0) AND (NUM_a429 > 0)) BEGIN - - COPY_EXISTING ~spwi%NUM_a411%.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia429 resource = EVAL ~spwi%NUM_a429%~ END - BUT_ONLY - - COPY_EXISTING ~spwi%NUM_a429%.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia411 resource = EVAL ~spwi%NUM_a411%~ END - BUT_ONLY - -END - -ACTION_IF ((NUM_a427 > 0) AND (NUM_a428 > 0)) BEGIN - - COPY_EXISTING ~spwi%NUM_a427%.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia428 resource = EVAL ~spwi%NUM_a428%~ END - BUT_ONLY - - COPY_EXISTING ~spwi%NUM_a428%.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia427 resource = EVAL ~spwi%NUM_a427%~ END - BUT_ONLY - -END - -ACTION_IF NUM_a610 > 0 BEGIN - - COPY_EXISTING ~spwi%NUM_a610%.spl~ ~override~ - PATCH_IF NUM_a726 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia726 resource = EVAL ~spwi%NUM_a726%~ END - END - PATCH_IF NUM_a724 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia724 resource = EVAL ~spwi%NUM_a724%~ END - END - PATCH_IF NUM_a631 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia631 resource = EVAL ~spwi%NUM_a631%~ END - END - PATCH_IF NUM_a524 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia524 resource = EVAL ~spwi%NUM_a524%~ END - END - PATCH_IF NUM_a432 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia432 resource = EVAL ~spwi%NUM_a432%~ END - END - BUT_ONLY - -END - -ACTION_IF NUM_a431 > 0 BEGIN - - COPY_EXISTING ~cdia725y.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia431 resource = EVAL ~spwi%NUM_a431%~ END - BUT_ONLY IF_EXISTS - -END - -ACTION_IF NUM_a814 > 0 BEGIN - - COPY_EXISTING ~spwi%NUM_a814%.spl~ ~override~ - PATCH_IF NUM_a726 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia726 resource = EVAL ~spwi%NUM_a726%~ END - END - PATCH_IF NUM_a422 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia724 resource = EVAL ~spwi%NUM_a422%~ END - END - BUT_ONLY - -END - -ACTION_IF !ee_game BEGIN - - COPY_EXISTING ~cdidbone.bam~ ~override~ - ~cdideca.bam~ ~override~ - ~cdiibody.bam~ ~override~ - ~cdiltou.bam~ ~override~ - ~cdiplybb.bam~ ~override~ - ~cdiplypb.bam~ ~override~ - ~cdiplyww.bam~ ~override~ - ~cdismcud.bam~ ~override~ - READ_LONG 0x0c frame_off - WRITE_LONG frame_off + 0x04 0 - IF_EXISTS - -END - -///// \\\\\ -///// arcane-divine cross-patching \\\\\ -///// \\\\\ - -ACTION_IF MOD_IS_INSTALLED ~IWDIFICATION/SETUP-IWDIFICATION.TP2~ ~40~ THEN BEGIN - - INCLUDE ~iwdification/lib/cross_patch_both.tpa~ - -END - -///// \\\\\ -///// add scrolls to stores \\\\\ -///// \\\\\ - -COPY_EXISTING_REGEXP GLOB ~^[_h]ighhedg\.sto$~ ~override~ // adds lev 1, 2 scrolls to High Hedge - ~^_?sto0703\.sto$~ ~override~ // adds lev 1, 2 scrolls to Sorcerous Sundries - ~^bdsorcsc\.sto$~ ~override~ // adds lev 1, 2 scrolls to SoD Sorcerous Sundries - ~^bdbeleg3\.sto$~ ~override~ // adds lev 1, 2 scrolls to SoD Quartermaster - ~^bpding01\.sto$~ ~override~ // adds lev 1, 2 scrolls to Dinguer the Mad (Black Pits) - PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84 _scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat - PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm - PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave - PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace - BUT_ONLY IF_EXISTS - -COPY_EXISTING_REGEXP GLOB ~^_?sto0703\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to Sorcerous Sundries - ~^bdsorcsc\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to SoD Sorcerous Sundries - ~^bdbeleg3\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to SoD Quartermaster - ~^bpding01\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to Dinguer the Mad (Black Pits) - PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1k _scrl1k~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance - PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1k _scrl1k~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption - PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood - PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage - PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear - PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope - PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles - PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // shroud of flame - PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Demi-Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Summon Shadow - PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // contact other plane - PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Conjure water elemental - BUT_ONLY IF_EXISTS - -COPY_EXISTING ~25spell.sto~ ~override~ // arcana archives - ~25spell2.sto~ ~override~ // arcana archives - ~ohbmhsm.sto~ ~override~ // Book Merchant (BG2EE Black Pits 2) - ~ohnmhsm.sto~ ~override~ // Book Merchant (BG2EE Neera's Quest) - PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat - PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm - PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave - PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace - PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance - PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption - PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood - PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage - PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear - PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope - PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles - PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shroud of Flame - PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Demi-Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow - PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Contact Other Plane - PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental - PATCH_IF FILE_EXISTS_IN_GAME cdia610.itm BEGIN ADD_STORE_ITEM ~cdia610~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Antimagic Shell - PATCH_IF FILE_EXISTS_IN_GAME cdia626.itm BEGIN ADD_STORE_ITEM ~cdia626~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lich Touch - PATCH_IF FILE_EXISTS_IN_GAME cdia627.itm BEGIN ADD_STORE_ITEM ~cdia627~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning IV - PATCH_IF FILE_EXISTS_IN_GAME cdia628.itm BEGIN ADD_STORE_ITEM ~cdia628~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Otiluke's Freezing Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia629.itm BEGIN ADD_STORE_ITEM ~cdia629~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shades - PATCH_IF FILE_EXISTS_IN_GAME cdia630.itm BEGIN ADD_STORE_ITEM ~cdia630~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Darts of Bone - PATCH_IF FILE_EXISTS_IN_GAME cdia631.itm BEGIN ADD_STORE_ITEM ~cdia631~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // soul eater - PATCH_IF FILE_EXISTS_IN_GAME cdia632.itm BEGIN ADD_STORE_ITEM ~cdia632~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Trollish Fortitude - PATCH_IF FILE_EXISTS_IN_GAME cdia706.itm BEGIN ADD_STORE_ITEM ~cdia706~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning V - PATCH_IF FILE_EXISTS_IN_GAME cdia709.itm BEGIN ADD_STORE_ITEM ~cdia709~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Malavon's Rage - PATCH_IF FILE_EXISTS_IN_GAME cdia724.itm BEGIN ADD_STORE_ITEM ~cdia724~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Acid Storm - PATCH_IF FILE_EXISTS_IN_GAME cdia725.itm BEGIN ADD_STORE_ITEM ~cdia725~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // seven eyes - PATCH_IF FILE_EXISTS_IN_GAME cdia726.itm BEGIN ADD_STORE_ITEM ~cdia726~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Suffocate - PATCH_IF FILE_EXISTS_IN_GAME cdia801.itm BEGIN ADD_STORE_ITEM ~cdia801~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VI - PATCH_IF FILE_EXISTS_IN_GAME cdia802.itm BEGIN ADD_STORE_ITEM ~cdia802~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Mind Blank - PATCH_IF FILE_EXISTS_IN_GAME cdia806.itm BEGIN ADD_STORE_ITEM ~cdia806~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // great shout - PATCH_IF FILE_EXISTS_IN_GAME cdia814.itm BEGIN ADD_STORE_ITEM ~cdia814~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Iron Body - PATCH_IF FILE_EXISTS_IN_GAME cdia901.itm BEGIN ADD_STORE_ITEM ~cdia901~ AFTER ~scrlb4~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VII - BUT_ONLY IF_EXISTS - -COPY_EXISTING ~scrolls.sto~ ~override~ // yuth - PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat - PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm - PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave - PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace - PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance - PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption - PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #3 END // Beltyn's Burning Blood - PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage - PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear - PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope - PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles - PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #4 END // Shroud of Flame - PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #3 END // Demi-Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow - PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Contact Other Plane - PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental - PATCH_IF FILE_EXISTS_IN_GAME cdia610.itm BEGIN ADD_STORE_ITEM ~cdia610~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Antimagic Shell - PATCH_IF FILE_EXISTS_IN_GAME cdia626.itm BEGIN ADD_STORE_ITEM ~cdia626~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lich Touch - PATCH_IF FILE_EXISTS_IN_GAME cdia627.itm BEGIN ADD_STORE_ITEM ~cdia627~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning IV - PATCH_IF FILE_EXISTS_IN_GAME cdia628.itm BEGIN ADD_STORE_ITEM ~cdia628~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Otiluke's Freezing Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia629.itm BEGIN ADD_STORE_ITEM ~cdia629~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shades - PATCH_IF FILE_EXISTS_IN_GAME cdia630.itm BEGIN ADD_STORE_ITEM ~cdia630~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Darts of Bone - PATCH_IF FILE_EXISTS_IN_GAME cdia631.itm BEGIN ADD_STORE_ITEM ~cdia631~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // soul eater - PATCH_IF FILE_EXISTS_IN_GAME cdia632.itm BEGIN ADD_STORE_ITEM ~cdia632~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Trollish Fortitude - PATCH_IF FILE_EXISTS_IN_GAME cdia706.itm BEGIN ADD_STORE_ITEM ~cdia706~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning V - PATCH_IF FILE_EXISTS_IN_GAME cdia709.itm BEGIN ADD_STORE_ITEM ~cdia709~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Malavon's Rage - PATCH_IF FILE_EXISTS_IN_GAME cdia724.itm BEGIN ADD_STORE_ITEM ~cdia724~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Acid Storm - PATCH_IF FILE_EXISTS_IN_GAME cdia725.itm BEGIN ADD_STORE_ITEM ~cdia725~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // seven eyes - PATCH_IF FILE_EXISTS_IN_GAME cdia726.itm BEGIN ADD_STORE_ITEM ~cdia726~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Suffocate - PATCH_IF FILE_EXISTS_IN_GAME cdia901.itm BEGIN ADD_STORE_ITEM ~cdia901~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VII - PATCH_IF FILE_EXISTS_IN_GAME cdia801.itm BEGIN ADD_STORE_ITEM ~cdia801~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VI - PATCH_IF FILE_EXISTS_IN_GAME cdia802.itm BEGIN ADD_STORE_ITEM ~cdia802~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #3 END // Mind Blank - PATCH_IF FILE_EXISTS_IN_GAME cdia806.itm BEGIN ADD_STORE_ITEM ~cdia806~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // great shout - PATCH_IF FILE_EXISTS_IN_GAME cdia814.itm BEGIN ADD_STORE_ITEM ~cdia814~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Iron Body - BUT_ONLY IF_EXISTS - -COPY_EXISTING ~shop08.sto~ ~override~ // galoomp - PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat - PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #4 END // Snilloc's Snowball Swarm - PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave - PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace - PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance - PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption - PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood - PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #3 END // Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage - PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear - PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope - PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles - PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #3 END // Vitriolic Sphere - PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #3 END // Shroud of Flame - PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Demi-Shadow Monsters - PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow - PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #1 END // Contact Other Plane - PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental - BUT_ONLY IF_EXISTS diff --git a/iwdification/lib/cd_bard.tpa b/iwdification/lib/cd_bard.tpa deleted file mode 100644 index 5cd2535..0000000 --- a/iwdification/lib/cd_bard.tpa +++ /dev/null @@ -1,203 +0,0 @@ -APPEND ~clabba01.2da~ ~ABILITYX AP_CDIBAR0 **** GA_CDIBAR1 **** **** **** **** **** **** **** **** CDREPLACE -ABILITYY **** **** GA_CDIBAR2 **** GA_CDIBAR3 **** GA_CDIBAR4 **** GA_CDIBAR5 **** GA_CDIBAR6 CDREPLACE~ - -COPY_EXISTING ~clabba01.2da~ ~override~ - COUNT_2DA_COLS cols - FOR (index = 13 ; index < cols ; ++index) BEGIN - REPLACE_TEXTUALLY ~CDREPLACE~ ~**** CDREPLACE~ - END - REPLACE_TEXTUALLY ~CDREPLACE~ ~****~ - SET "ability" = 0 - REPLACE_EVALUATE ~^\(ABILITY[0-9A-Z]+\)[ %TAB%]~ BEGIN - SET "ability" = ("%ability%" + 1) - END - ~ABILITY%ability% ~ - PRETTY_PRINT_2DA - -ACTION_IF FILE_EXISTS_IN_GAME luba0.2da THEN BEGIN - - COPY_EXISTING ~luba0.2da~ ~override~ // remove enhanced bard song from HLAs - REPLACE_TEXTUALLY ~^\([0-9]+[ %TAB%]+AP_SPCL920[ %TAB%]+\*[ %TAB%]+\*[ %TAB%]+[0-9]+[ %TAB%]+[0-9]+[ %TAB%]+[0-9]+[ %TAB%]+\)\*\([ %TAB%]+\*[ %TAB%]+\*\)~ - ~\1SPCL920\2~ // create self-reference, never allowing it to be selected - PRETTY_PRINT_2DA - -END - -ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ // visual range, non-party for siren's yearning - -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5002) STR_VAR bam_file = cdibar0 RET cdibarap = icon END -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5005) STR_VAR bam_file = cdibar0 RET cdibarbp = icon END -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5008) STR_VAR bam_file = cdibar0 RET cdibarcp = icon END -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5011) STR_VAR bam_file = cdibar0 RET cdibardp = icon END -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5014) STR_VAR bam_file = cdibar0 RET cdibarep = icon END -LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5018) STR_VAR bam_file = cdibar0 RET cdibarfp = icon END - -COPY ~iwdification/bam/cdibar0.bam~ ~override~ - ~iwdification/bam/cdibara.bam~ ~override~ - ~iwdification/bam/cdibarb.bam~ ~override~ - ~iwdification/bam/cdibarc.bam~ ~override~ - ~iwdification/bam/cdibard.bam~ ~override~ - ~iwdification/bam/cdibare.bam~ ~override~ - ~iwdification/bam/cdibarf.bam~ ~override~ - ~iwdification/spl/cdibar0.spl~ ~override~ - -ACTION_IF ee_game BEGIN - - STRING_SET 9562 @5020 - - COPY ~iwdification/bam/cdibar0.bam~ ~override~ - ~iwdification/spl/cdibare0.spl~ ~override~ - -END ELSE BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdibarex.eff~ - WRITE_ASCII 0x30 ~cdibare~ #8 - -END - -COPY ~iwdification/spl/cdibar1.spl~ ~override~ // The Ballad of Three Heroes - Combat Bonuses - SAY 0x08 @5001 - SAY 0x0c @5001 - SAY 0x50 @5003 - SAY 0x54 @5003 - -COPY ~iwdification/spl/cdibara.spl~ ~override~ - SAY 0x08 @5002 - SAY 0x0c @5002 - SAY 0x50 @5003 - SAY 0x54 @5003 - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 177 parameter2 = cdibarap END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 177 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END - -COPY ~iwdification/spl/cdibar2.spl~ ~override~ // The Tale of Curran Strongheart - Immunity Fear - SAY 0x08 @5004 - SAY 0x0c @5004 - SAY 0x50 @5006 - SAY 0x54 @5006 - -COPY ~iwdification/spl/cdibarb.spl~ ~override~ - SAY 0x08 @5005 - SAY 0x0c @5005 - SAY 0x50 @5006 - SAY 0x54 @5006 - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 111111 parameter1 = string_mf_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 222222 parameter1 = string_panic END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 178 parameter2 = cdibarbp END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 178 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END - -COPY ~iwdification/spl/cdibar3.spl~ ~override~ // Tymora's Melody - Luck and Skill Bonuses - SAY 0x08 @5007 - SAY 0x0c @5007 - SAY 0x50 @5009 - SAY 0x54 @5009 - -COPY ~iwdification/spl/cdibarc.spl~ ~override~ - SAY 0x08 @5008 - SAY 0x0c @5008 - SAY 0x50 @5009 - SAY 0x54 @5009 - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 179 parameter2 = cdibarcp END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 179 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END - -COPY ~iwdification/spl/cdibar4.spl~ ~override~ // The Song of Kaudies - Resistant to Sound Attacks - SAY 0x08 @5010 - SAY 0x0c @5010 - SAY 0x50 @5012 - SAY 0x54 @5012 - -COPY ~iwdification/spl/cdibard.spl~ ~override~ - SAY 0x08 @5011 - SAY 0x0c @5011 - SAY 0x50 @5012 - SAY 0x54 @5012 - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14002 parameter1 = string_silence END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14676 parameter1 = string_silenced END - LPF ALTER_EFFECT INT_VAR match_opcode = 206 match_parameter1 = 4742 parameter1 = string_ineffective END - PATCH_FOR_EACH res IN - POWERWORD_KILL POWERWORD_STUN POWERWORD_BLIND PLAYER1_WORD_OF_POWER IRENICUS_WORD_OF_POWER DEMILICH_DEATH MOON_DOG_FEAR BANSHEE_WAIL ELVEN_GUARD_WAIL // bg2ee, bgee - WIZARD_SHOUT WIZARD_GREAT_SHOUT INNATE_MOURNFUL_WAIL INNATE_DEATH_KNELL INNATE_WAR_CRY INNATE_UNDYING_LAMENT INNATE_GREAT_ROAR INNATE_HARPY_WAIL_INTERNAL // iwdee, iwdification - BEGIN - SET num = IDS_OF_SYMBOL (~spell~ ~%res%~) - PATCH_IF num > 3999 BEGIN SET num -= 4000 SPRINT prefix spcl END - PATCH_IF num > 2999 BEGIN SET num -= 3000 SPRINT prefix spin END - PATCH_IF num > 1999 BEGIN SET num -= 2000 SPRINT prefix spwi END - PATCH_IF num > 999 BEGIN SET num -= 1000 SPRINT prefix sppr END - PATCH_IF num > 0 BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 3 parameter1 = string_ineffective duration = 7 probability1 = 50 STR_VAR resource = EVAL ~%prefix%%num%~ END - END - END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 180 parameter2 = cdibardp END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 180 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END - -COPY ~iwdification/spl/cdibar5.spl~ ~override~ // The Siren's Yearning - Enthralls Creatures - SAY 0x08 @5013 - SAY 0x0c @5013 - SAY 0x50 @5015 - SAY 0x54 @5015 - -COPY ~iwdification/spl/cdibare.spl~ ~override~ - SAY 0x08 @5014 - SAY 0x0c @5014 - SAY 0x50 @5015 - SAY 0x54 @5015 - SAY 0x2ae @5016 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END - LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 267 match_parameter1 = 1280 parameter1 = string_stunned END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 181 parameter2 = cdibarep END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdibarex END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdibarex END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 15 opcode = 177 parameter1 = 2 parameter2 = 4 STR_VAR resource = cdibarex END // race = elf - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 19 opcode = 177 parameter1 = 3 parameter2 = 4 STR_VAR resource = cdibarex END // race = halfelf - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF DELETE_EFFECT INT_VAR match_opcode = 232 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 181 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END - -COPY ~iwdification/spl/cdibar6.spl~ ~override~ // War Chant of Sith - Armor Bonuses and Regeneration - SAY 0x08 @5017 - SAY 0x0c @5017 - SAY 0x50 @5019 - SAY 0x54 @5019 - -COPY ~iwdification/spl/cdibarf.spl~ ~override~ - SAY 0x08 @5018 - SAY 0x0c @5018 - SAY 0x50 @5019 - SAY 0x54 @5019 - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 182 parameter2 = cdibarfp END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 182 parameter2 = 40 END - LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END - END diff --git a/iwdification/lib/cd_divine.tpa b/iwdification/lib/cd_divine.tpa deleted file mode 100644 index f93aaf1..0000000 --- a/iwdification/lib/cd_divine.tpa +++ /dev/null @@ -1,2283 +0,0 @@ -INCLUDE ~iwdification/lib/spell_prep.tpa~ - -///// \\\\\ -///// CLERIC_CURSE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CURSE~) OR override_divine) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi237.pro~ - - ADD_SPELL ~iwdification/spl/cdid112.spl~ 1 1 CLERIC_CURSE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4010 // name - SAY 0x50 @4011 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14406 parameter1 = string_cursed END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi237 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid112 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid112.itm~ - SAY 0x0c @4010 - SAY 0x54 @4011 - LPF cd_scroll INT_VAR target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid112a.bam~ ~override~ - ~iwdification/bam/cdid112b.bam~ ~override~ - ~iwdification/bam/cdid112c.bam~ ~override~ - ~iwdification/bam/cdiare1x.bam~ ~override~ - ~iwdification/bam/cdicurse.bam~ ~override~ - ~iwdification/vvc/cdibless.vvc~ ~override~ - ~iwdification/vvc/cdicurse.vvc~ ~override~ - ~iwdification/wav/cdiee04.wav~ ~override~ - ~iwdification/wav/cdiep32.wav~ ~override~ - ~iwdification/wav/cdiep99.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_CAUSE_LIGHT_WOUNDS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_LIGHT_WOUNDS~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid114.spl~ 1 1 CLERIC_CAUSE_LIGHT_WOUNDS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4020 // name - SAY 0x50 @4021 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid114 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd114 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd114 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd114 END // race = parameter1 - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid114.itm~ - SAY 0x0c @4020 - SAY 0x54 @4021 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good, cleric - - COPY ~iwdification/bam/cdid114a.bam~ ~override~ - ~iwdification/bam/cdid114b.bam~ ~override~ - ~iwdification/bam/cdid114c.bam~ ~override~ - ~iwdification/bam/cdicldam.bam~ ~override~ - ~iwdification/vvc/cdicldam.vvc~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd114.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_SUNSCORCH \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SUNSCORCH~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdisunsc.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid115.spl~ 1 1 CLERIC_SUNSCORCH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4030 // name - SAY 0x50 @4031 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisunsc END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 326 opcode = 177 parameter1 = 4 parameter2 = 3 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 326 opcode = 177 parameter1 = 164 parameter2 = 4 END // race = myconid - READ_SHORT 0x68 abil_num - FOR (index = 0 ; index < abil_num ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 parameter1 = ((index + 1) / 2) dicesize = 3 special = 0 END - LPF CLONE_EFFECT INT_VAR header = index match_opcode = 12 parameter1 = ((index + 0) / 2) savingthrow = 0 END - END - PATCH_FOR_EACH res IN cdid1151 cdid1152 cdid1153 cdid1154 BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 power = 1 timing = 1 resist_dispel = 3 STR_VAR resource = EVAL ~%res%~ END - END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid115.itm~ - SAY 0x0c @4030 - SAY 0x54 @4031 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 100 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid115a.bam~ ~override~ - ~iwdification/bam/cdid115b.bam~ ~override~ - ~iwdification/bam/cdid115c.bam~ ~override~ - ~iwdification/bam/cdisunsc.bam~ ~override~ - ~iwdification/spl/cdid115d.spl~ ~override~ - ~iwdification/wav/cdiep39.wav~ ~override~ - - ACTION_IF ee_game BEGIN - - COPY ~iwdification/vvc/cdisunsc.vvc~ ~override~ - - END ELSE BEGIN - - COPY ~iwdification/vvc/cdid1151.vvc~ ~override~ - ~iwdification/vvc/cdid1152.vvc~ ~override~ - ~iwdification/vvc/cdid1153.vvc~ ~override~ - ~iwdification/vvc/cdid1154.vvc~ ~override~ - - COPY ~iwdification/eff/326.eff~ ~override/cdid115d.eff~ - WRITE_ASCII 0x30 ~cdid115d~ - - END - -END - -///// \\\\\ -///// CLERIC_CURE_MODERATE_WOUNDS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CURE_MODERATE_WOUNDS~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid217.spl~ 1 2 CLERIC_CURE_MODERATE_WOUNDS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4040 // name - SAY 0x50 @4041 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid217 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 61 END - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd114 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd114 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd114 END // race = parameter1 - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid217.itm~ - SAY 0x0c @4040 - SAY 0x54 @4041 - LPF cd_scroll INT_VAR range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid217a.bam~ ~override~ - ~iwdification/bam/cdid217b.bam~ ~override~ - ~iwdification/bam/cdid217c.bam~ ~override~ - ~iwdification/bam/cdicmwou.bam~ ~override~ - ~iwdification/vvc/cdicmwou.vvc~ ~override~ - ~iwdification/wav/cdiep26.wav~ ~override~ - - // add as option to temples that offer cure light wounds - OUTER_SET desc = RESOLVE_STR_REF(@4042) - APPEND ~speldesc.2da~ ~sppr217 %desc%~ - COPY_EXISTING_REGEXP GLOB ~^.+\.sto$~ ~override~ - READ_LONG 0x70 cure_off - READ_LONG 0x74 cure_num - SET insert_cost = 0 - SET insert_off = 0 - FOR (index = 0 ; index < cure_num ; ++index) BEGIN - READ_ASCII (cure_off + (index * 0x0c)) spell - PATCH_IF ("%spell%" STRING_COMPARE_REGEXP "sppr1[0-9][0-9]" = 0) BEGIN - SET insert_off = (cure_off + ((index + 1) * 0x0c)) - PATCH_IF ("%spell%" STRING_COMPARE_CASE "sppr103" = 0) BEGIN - READ_LONG (cure_off + 0x08 + (index * 0x0c)) insert_cost - END - END - END - PATCH_IF insert_off AND insert_cost BEGIN - INSERT_BYTES (insert_off ) 0x0c - WRITE_ASCIIE (insert_off ) ~%current_spell_res%~ #8 - WRITE_LONG (insert_off + 0x08) (insert_cost * 2) - WRITE_LONG 0x74 (THIS + 1) - PATCH_FOR_EACH off IN 0x2c 0x34 0x4c BEGIN // item, sale, drink offsets - READ_LONG off val // read offset - PATCH_IF val > cure_off BEGIN // if after cure list... - WRITE_LONG off (THIS + 0x0c) // push back for new cure - END - END - END - BUT_ONLY - -END - -///// \\\\\ -///// CLERIC_ALICORN_LANCE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ALICORN_LANCE~) OR override_divine) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi298.pro~ - - ADD_SPELL ~iwdification/spl/cdid218.spl~ 1 2 CLERIC_ALICORN_LANCE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4050 // name - SAY 0x50 @4051 // descript - SAY 0x2ae @4052 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi298 END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid218 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid218.itm~ - SAY 0x0c @4050 - SAY 0x54 @4051 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 100 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid218a.bam~ ~override~ - ~iwdification/bam/cdid218b.bam~ ~override~ - ~iwdification/bam/cdid218c.bam~ ~override~ - ~iwdification/bam/cdilanct.bam~ ~override~ - ~iwdification/wav/cdiee08.wav~ ~override~ - ~iwdification/wav/cditra57.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_BEAST_CLAW \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_BEAST_CLAW~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid219.spl~ 1 2 CLERIC_BEAST_CLAW - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4060 // name - SAY 0x50 @4061 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid219.itm~ - SAY 0x0c @4060 - SAY 0x54 @4061 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdibclaw.itm~ ~override~ - SAY 0x08 @4060 - SAY 0x0c @4060 - - COPY ~iwdification/bam/cdid219a.bam~ ~override~ - ~iwdification/bam/cdid219b.bam~ ~override~ - ~iwdification/bam/cdid219c.bam~ ~override~ - ~iwdification/bam/cdialter.bam~ ~override~ - ~iwdification/bam/cdibclaw.bam~ ~override~ - ~iwdification/vvc/cdialter.vvc~ ~override~ - ~iwdification/wav/cdiep07.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_CAUSE_MODERATE_WOUNDS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_MODERATE_WOUNDS~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid220.spl~ 1 2 CLERIC_CAUSE_MODERATE_WOUNDS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4070 // name - SAY 0x50 @4071 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid220 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd220 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd220 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd220 END // race = parameter1 - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid220.itm~ - SAY 0x0c @4070 - SAY 0x54 @4071 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric - - COPY ~iwdification/bam/cdid220a.bam~ ~override~ - ~iwdification/bam/cdid220b.bam~ ~override~ - ~iwdification/bam/cdid220c.bam~ ~override~ - ~iwdification/bam/cdicmdam.bam~ ~override~ - ~iwdification/vvc/cdicmdam.vvc~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd220.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_PRAYER \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_PRAYER~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4080) STR_VAR bam_file = cdid316d RET icon END - - ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ - ADD_PROJECTILE ~iwdification/pro/cdivrpo.pro~ - - ADD_SPELL ~iwdification/spl/cdid316.spl~ 1 3 CLERIC_PRAYER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4080 // name - SAY 0x50 @4081 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid316.itm~ - SAY 0x0c @4080 - SAY 0x54 @4081 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/spl/cdid316b.spl~ ~override~ - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40257 parameter1 = RESOLVE_STR_REF(@4082) END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid316b END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/spl/cdid316g.spl~ ~override~ - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrpo END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40256 parameter1 = RESOLVE_STR_REF(@4083) END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 183 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 183 parameter2 = 18 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid316g END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/bam/cdid316a.bam~ ~override~ - ~iwdification/bam/cdid316b.bam~ ~override~ - ~iwdification/bam/cdid316c.bam~ ~override~ - ~iwdification/bam/cdid316d.bam~ ~override~ - ~iwdification/bam/cdiprayh.bam~ ~override~ - ~iwdification/vvc/cdiprayg.vvc~ ~override~ - ~iwdification/vvc/cdiprayh.vvc~ ~override~ - ~iwdification/wav/cdiep31.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_CAUSE_DISEASE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_DISEASE~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid320.spl~ 1 3 CLERIC_CAUSE_DISEASE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4090 // name - SAY 0x50 @4091 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid320 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd320 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd320 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd320 END // race = parameter1 - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid320.itm~ - SAY 0x0c @4090 - SAY 0x54 @4091 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric - - COPY ~iwdification/bam/cdid320a.bam~ ~override~ - ~iwdification/bam/cdid320b.bam~ ~override~ - ~iwdification/bam/cdid320c.bam~ ~override~ - ~iwdification/bam/cdidise.bam~ ~override~ - ~iwdification/vvc/cdidise.vvc~ ~override~ - ~iwdification/wav/cdiep108.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd320.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_EXALTATION \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_EXALTATION~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4100) STR_VAR bam_file = cdid321d RET icon END - - ADD_SPELL ~iwdification/spl/cdid321.spl~ 1 3 CLERIC_EXALTATION - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4100 // name - SAY 0x50 @4101 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid321 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 174 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 174 END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 206 target = 1 parameter1 = 0 parameter2 = 0 END // prevent self-cast - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid321.itm~ - SAY 0x0c @4100 - SAY 0x54 @4101 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/bam/cdid321a.bam~ ~override~ - ~iwdification/bam/cdid321b.bam~ ~override~ - ~iwdification/bam/cdid321c.bam~ ~override~ - ~iwdification/bam/cdid321d.bam~ ~override~ - ~iwdification/bam/cdiexalt.bam~ ~override~ - ~iwdification/vvc/cdiexalt.vvc~ ~override~ - ~iwdification/wav/cdiep106.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_MOONBLADE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MOONBLADE~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid322.spl~ 1 3 CLERIC_MOONBLADE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4110 // name - SAY 0x50 @4111 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid322.itm~ - SAY 0x0c @4110 - SAY 0x54 @4111 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/itm/cdimoonb.itm~ ~override~ - SAY 0x08 @4110 - SAY 0x0c @4110 - LPF ALTER_EFFECT STR_VAR match_resource = moonbla resource = cdimoonb END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 12 match_parameter1 = 0 END // delete undead damage, since it's going through an EFF - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 177 parameter1 = 4 parameter2 = 3 timing = 1 duration = 0 END - END - - COPY ~iwdification/bam/cdid322a.bam~ ~override~ - ~iwdification/bam/cdid322b.bam~ ~override~ - ~iwdification/bam/cdid322c.bam~ ~override~ - ~iwdification/bam/cdiinvoc.bam~ ~override~ - ~iwdification/bam/cdimoonb.bam~ ~override~ - ~iwdification/vvc/cdiinvoc.vvc~ ~override~ - ~iwdification/wav/cdiem06.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/cdimoonb.eff~ ~override~ - - END - -END - -///// \\\\\ -///// CLERIC_CIRCLE_OF_BONES \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CIRCLE_OF_BONES~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid323.spl~ 1 3 CLERIC_CIRCLE_OF_BONES - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4120 // name - SAY 0x50 @4121 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 126 opcode = 176 END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid323.itm~ - SAY 0x0c @4120 - SAY 0x54 @4121 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric - - COPY ~iwdification/bam/cdid323a.bam~ ~override~ - ~iwdification/bam/cdid323b.bam~ ~override~ - ~iwdification/bam/cdid323c.bam~ ~override~ - ~iwdification/bam/cdibone1.bam~ ~override~ - ~iwdification/bam/cdibone2.bam~ ~override~ - ~iwdification/spl/cdid323d.spl~ ~override~ - ~iwdification/vvc/cdibone1.vvc~ ~override~ - ~iwdification/vvc/cdibone2.vvc~ ~override~ - ~iwdification/wav/cdiafp22.wav~ ~override~ - ~iwdification/wav/cdiarp21.wav~ ~override~ - ~iwdification/wav/cdiep101.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_SPIKE_GROWTH \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIKE_GROWTH~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi300.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi300a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid324.spl~ 1 3 CLERIC_SPIKE_GROWTH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4130 // name - SAY 0x50 @4131 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300 END - END ELSE BEGIN - LPF DELETE_EFFECT END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300a END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 timing = 1 parameter2 = 2 STR_VAR resource = cdid324 END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 timing = 1 STR_VAR resource = cdisgrwa END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid324.itm~ - SAY 0x0c @4130 - SAY 0x54 @4131 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid324a.bam~ ~override~ - ~iwdification/bam/cdid324b.bam~ ~override~ - ~iwdification/bam/cdid324c.bam~ ~override~ - ~iwdification/bam/cdisgrwa.bam~ ~override~ - ~iwdification/bam/cdisgrwx.bam~ ~override~ - ~iwdification/vvc/cdisgrwa.vvc~ ~override~ - ~iwdification/vvc/cdisgrwx.vvc~ ~override~ - ~iwdification/wav/cdiafp24.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 60 STR_VAR code = cdid324 anim = cdisgrwa END - - COPY ~iwdification/spl/cdid324.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300a END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 duration = 3 STR_VAR resource = cdisgrwx END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid324 END - - END - -END - -///// \\\\\ -///// CLERIC_CLOUDBURST \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CLOUDBURST~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi301.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi301a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid325.spl~ 1 3 CLERIC_CLOUDBURST - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4140 // name - SAY 0x50 @4141 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301 END - PATCH_FOR_EACH res IN firau1d2 firau3d6 frostd10 spin187 spin128 BEGIN // leftover iwdee references - LPF DELETE_EFFECT STR_VAR match_resource = EVAL ~%res%~ END - END - LPF ALTER_EFFECT STR_VAR match_resource = cdid325 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT STR_VAR match_resource = fsalring resource = cdisalfi END // iwdifcation moves aura visuals to weapons - LPF ALTER_EFFECT STR_VAR match_resource = csalring resource = cdisalfr END // iwdifcation moves aura visuals to weapons - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301a END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid325 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid325.itm~ - SAY 0x0c @4140 - SAY 0x54 @4141 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid325a.bam~ ~override~ - ~iwdification/bam/cdid325b.bam~ ~override~ - ~iwdification/bam/cdid325c.bam~ ~override~ - ~iwdification/wav/cdiarp24.wav~ ~override~ - - ACTION_IF ee_game BEGIN - - COPY ~iwdification/bam/cdibacld.bam~ ~override~ - ~iwdification/bam/cdibhcld.bam~ ~override~ - ~iwdification/vvc/cdibhcld.vvc~ ~override~ - - END ELSE BEGIN - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 1 cloud_dur = 12 zosa = 1 STR_VAR code = cdid325 anim = cdibacld END - - COPY_EXISTING ~iwdification/spl/cdid325.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301a END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - LPF DELETE_EFFECT INT_VAR match_opcode = 206 END - LPF CD_SPLIT_SAVE_DAMAGE END - PATCH_FOR_EACH res IN cdifire6 cdifros6 cdia524 cdia524b BEGIN // leftover iwdee references - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = EVAL ~%res%~ END - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 3 parameter1 = 187 parameter2 = 5 timing = 1 resist_dispel = 1 STR_VAR resource = cdid325c END // extra dam for class: fire elemental - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 3 parameter1 = 146 parameter2 = 5 timing = 1 resist_dispel = 1 STR_VAR resource = cdid325c END // extra dam for class: winter wolf - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid325 END - - COPY ~iwdification/bam/cdid325v.bam~ ~override/cdibacld.bam~ - ~iwdification/eff/cdid325c.eff~ ~override~ - - END - -END - -///// \\\\\ -///// CLERIC_MOLD_TOUCH \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MOLD_TOUCH~) OR override_divine)) BEGIN - - ADD_SPELL ~iwdification/spl/cdid326.spl~ 1 3 CLERIC_MOLD_TOUCH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4150 // name - SAY 0x50 @4151 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid326 resource = EVAL ~%DEST_RES%~ END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid326.itm~ - SAY 0x0c @4150 - SAY 0x54 @4151 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid326a.bam~ ~override~ - ~iwdification/bam/cdid326b.bam~ ~override~ - ~iwdification/bam/cdid326c.bam~ ~override~ - ~iwdification/bam/cdimoldt.bam~ ~override~ - ~iwdification/vvc/cdimoldt.vvc~ ~override~ - ~iwdification/wav/cdiep107.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_STORM_SHELL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STORM_SHELL~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4160) STR_VAR bam_file = cdid327d RET icon END - - ADD_SPELL ~iwdification/spl/cdid327.spl~ 1 3 CLERIC_STORM_SHELL - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4160 // name - SAY 0x50 @4161 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 140 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 140 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid327.itm~ - SAY 0x0c @4160 - SAY 0x54 @4161 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid327a.bam~ ~override~ - ~iwdification/bam/cdid327b.bam~ ~override~ - ~iwdification/bam/cdid327c.bam~ ~override~ - ~iwdification/bam/cdid327d.bam~ ~override~ - ~iwdification/bam/cdisshel.bam~ ~override~ - ~iwdification/vvc/cdistorm.vvc~ ~override~ - ~iwdification/wav/cdiafp25.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_CAUSE_MEDIUM_WOUNDS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_MEDIUM_WOUNDS~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid330.spl~ 1 3 CLERIC_CAUSE_MEDIUM_WOUNDS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4170 // name - SAY 0x50 @4171 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid330 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd330 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd330 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd330 END // race = parameter1 - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid330.itm~ - SAY 0x0c @4170 - SAY 0x54 @4171 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric - - COPY ~iwdification/bam/cdid330a.bam~ ~override~ - ~iwdification/bam/cdid330b.bam~ ~override~ - ~iwdification/bam/cdid330c.bam~ ~override~ - ~iwdification/bam/cdicmdam.bam~ ~override~ - ~iwdification/vvc/cdicmdam.vvc~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd330.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_FAVOR_OF_ILMATER \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_FAVOR_OF_ILMATER~) OR override_divine)) BEGIN - - ADD_SPELL ~iwdification/spl/cdid331.spl~ 1 3 CLERIC_FAVOR_OF_ILMATER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4180 // name - SAY 0x50 @4181 // descript - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = sppr315 resource = EVAL ~%DEST_RES%~ END // iwdee nightly has bug here - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid331 resource = EVAL ~%DEST_RES%~ END // for when bug is fixed - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid331.itm~ - SAY 0x0c @4180 - SAY 0x54 @4181 - LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT12 + BIT21 + BIT30) range = 1 opcode = 146 target_eff = 2 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-evil cleric - - COPY ~iwdification/bam/cdid331a.bam~ ~override~ - ~iwdification/bam/cdid331b.bam~ ~override~ - ~iwdification/bam/cdid331c.bam~ ~override~ - ~iwdification/bam/cdicmdam.bam~ ~override~ - ~iwdification/bam/cdicmwou.bam~ ~override~ - ~iwdification/vvc/cdicmdam.vvc~ ~override~ - ~iwdification/vvc/cdicmwou.vvc~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - ~iwdification/wav/cdiep26.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_GIANT_INSECT \\\\\ -///// \\\\\ - -ACTION_IF (anim_beetle AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_GIANT_INSECT~) OR override_divine)) BEGIN // requires beetle animation, either EE or vanilla + infinity animations - - ADD_PROJECTILE ~iwdification/pro/cdi282.pro~ - - LAF cd_new_summon_table STR_VAR descript = "Giant_insect" 2da_file = cdiinsct RET table END - - ADD_SPELL ~iwdification/spl/cdid418.spl~ 1 4 CLERIC_GIANT_INSECT - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4190 // name - SAY 0x50 @4191 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 49 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END - LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END - LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid418.itm~ - SAY 0x0c @4190 - SAY 0x54 @4191 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY_EXISTING ~cdi282.pro~ ~override~ - SAY 0x30 @4193 - - COMPILE ~iwdification/baf/cdibbcld.baf~ - - COPY ~iwdification/spl/cdibombb.spl~ ~override~ - SAY 0xce @4193 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi282 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END - - LAF cd_animation STR_VAR code = e220 END // 57888 MBBM beetle_black - COPY ~iwdification/cre/cdiibomb.cre~ ~override~ - SAY 0x08 @4192 - SAY 0x0c @4192 - WRITE_LONG 0x28 anim_beetle - - COPY ~iwdification/cre/cdiiborb.cre~ ~override~ - SAY 0x08 @3013 - SAY 0x0c @3013 - WRITE_LONG 0x28 anim_beetle - - COPY ~iwdification/itm/cdis5-20.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - - COPY ~iwdification/itm/cdifring.itm~ ~override~ - LPF ALTER_EFFECT STR_VAR match_resource = spin191 resource = cdibombb END - - COPY ~iwdification/bam/cdid418a.bam~ ~override~ - ~iwdification/bam/cdid418b.bam~ ~override~ - ~iwdification/bam/cdid418c.bam~ ~override~ - ~iwdification/bam/cdiasm1x.bam~ ~override~ - ~iwdification/bam/cdimsm1h.bam~ ~override~ - ~iwdification/bam/cdisclda.bam~ ~override~ - ~iwdification/bam/cdiscldr.bam~ ~override~ - ~iwdification/vvc/cdiasm1x.vvc~ ~override~ - ~iwdification/vvc/cdimsm1h.vvc~ ~override~ - ~iwdification/wav/cdiem47.wav~ ~override~ - - COPY ~iwdification/2da/cdiinsct.2da~ ~override~ - PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables - REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ - REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ - END - -END - -///// \\\\\ -///// CLERIC_PRODUCE_FIRE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_PRODUCE_FIRE~) OR override_divine) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi215.pro~ - - ADD_SPELL ~iwdification/spl/cdid419.spl~ 1 4 CLERIC_PRODUCE_FIRE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4200 // name - SAY 0x50 @4201 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi215 END - LPF ALTER_EFFECT STR_VAR match_resource = cdid419 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 timing = 1 resist_dispel = 3 STR_VAR resource = cdiprfir END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid419.itm~ - SAY 0x0c @4200 - SAY 0x54 @4201 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid419a.bam~ ~override~ - ~iwdification/bam/cdid419b.bam~ ~override~ - ~iwdification/bam/cdid419c.bam~ ~override~ - ~iwdification/bam/cdipfira.bam~ ~override~ - ~iwdification/bam/cdipfirx.bam~ ~override~ - ~iwdification/vvc/cdiprfir.vvc~ ~override~ - ~iwdification/wav/cdiarp03.wav~ ~override~ - ~iwdification/wav/cdiep45.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY_EXISTING ~cdi215.pro~ ~override~ - WRITE_BYTE 0x217 255 - - END - -END - -///// \\\\\ -///// CLERIC_STATIC_CHARGE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STATIC_CHARGE~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4210) STR_VAR bam_file = cdid420d RET icon END - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdistatc.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid420.spl~ 1 4 CLERIC_STATIC_CHARGE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4210 // name - SAY 0x50 @4211 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid420 resource = EVAL ~%DEST_RES%~ END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdid420b END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 42 parameter2 = icon END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR target = 1 projectile = 1 range = 30 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 42 END - LPF ALTER_EFFECT INT_VAR target = 2 dicenumber = 0 dicesize = 0 END - LPF CD_CONVERT_333 STR_VAR 333spell = cdid420b END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid420.itm~ - SAY 0x0c @4210 - SAY 0x54 @4211 - PATCH_IF ee_game BEGIN - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - END ELSE BEGIN - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 1 range = 30 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - END - - COPY ~iwdification/spl/cdid420b.spl~ ~override~ - SAY 0x9e @4212 - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdistatc END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR target = 1 projectile = 1 range = 30 END - LPF ALTER_EFFECT INT_VAR match_opcode = 12 dicenumber = 4 dicesize = 8 special = 0 END - LPF CLONE_EFFECT INT_VAR match_opcode = 12 dicenumber = 5 savingthrow = 0 END - LPF CD_EXTEND-O-MATIC INT_VAR base_dur = 0 step_dur = 0 level_cap = 20 min_lev_alt = 7 END - READ_SHORT 0x68 abil_num - FOR (index = 0 ; index < abil_num ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 match_savingthrow = 0 dicenumber = ((index + 9) / 2) END - LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 match_savingthrow = BIT0 dicenumber = ((index + 10) / 2) END - END - END - - COPY ~iwdification/bam/cdid420a.bam~ ~override~ - ~iwdification/bam/cdid420b.bam~ ~override~ - ~iwdification/bam/cdid420c.bam~ ~override~ - ~iwdification/bam/cdid420d.bam~ ~override~ - ~iwdification/bam/cdistath.bam~ ~override~ - ~iwdification/vvc/cdistath.vvc~ ~override~ - ~iwdification/wav/cdiep42.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_RECITATION \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_RECITATION~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4220) STR_VAR bam_file = cdid316d RET icon END - - ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ - ADD_PROJECTILE ~iwdification/pro/cdivrpo.pro~ - - ADD_SPELL ~iwdification/spl/cdid421.spl~ 1 4 CLERIC_RECITATION - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4220 // name - SAY 0x50 @4221 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid421.itm~ - SAY 0x0c @4220 - SAY 0x54 @4221 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/spl/cdid421b.spl~ ~override~ - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40257 parameter1 = RESOLVE_STR_REF(@4082) END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid421b END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/spl/cdid421g.spl~ ~override~ - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrpo END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40256 parameter1 = RESOLVE_STR_REF(@4083) END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 175 parameter2 = icon END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 175 parameter2 = 18 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid421g END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/bam/cdid421a.bam~ ~override~ - ~iwdification/bam/cdid421b.bam~ ~override~ - ~iwdification/bam/cdid421c.bam~ ~override~ - ~iwdification/bam/cdid316d.bam~ ~override~ - ~iwdification/bam/cdirecih.bam~ ~override~ - ~iwdification/vvc/cdirecig.vvc~ ~override~ - ~iwdification/vvc/cdirecih.vvc~ ~override~ - ~iwdification/wav/cdiep44.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_BLOOD_RAGE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_BLOOD_RAGE~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4230) STR_VAR bam_file = cdid422d RET icon END - - ADD_SPELL ~iwdification/spl/cdid422.spl~ 1 4 CLERIC_BLOOD_RAGE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4230 // name - SAY 0x50 @4231 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid422 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 1280 parameter1 = string_stunned END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14022 parameter1 = string_healed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14043 parameter1 = string_stun END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35473 parameter1 = string_healed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END - PATCH_IF ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 318 STR_VAR match_resource = cdid422 END // should be last - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 176 parameter2 = icon END - LPF CLONE_EFFECT INT_VAR match_opcode = 324 opcode = 318 match_parameter2 = 50 parameter2 = 0 STR_VAR insert = last END // reinserting as last - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 opcode = 206 match_parameter2 = 50 parameter2 = 0 STR_VAR insert = last END // reinserting as last - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF DELETE_EFFECT INT_VAR match_opcode = 328 END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 176 parameter2 = 4 END - PATCH_FOR_EACH ea IN 0 1 28 29 30 31 126 128 199 200 201 202 254 255 BEGIN // all ea values except charmed, controlled, ally, familiar, pc - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 4 parameter1 = ea parameter2 = 2 resist_dispel = 3 duration = 120 insert_point = 0 STR_VAR resource = cdixd422 END - END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 4 parameter1 = 16 parameter2 = 8 resist_dispel = 3 duration = 120 insert_point = 0 STR_VAR resource = cdixd422 END // lawful - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid422.itm~ - SAY 0x0c @4230 - SAY 0x54 @4231 - LPF cd_scroll INT_VAR unusable0 = (BIT4 + BIT12 + BIT21 + BIT30) price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-lawful cleric - - COPY ~iwdification/bam/cdid422a.bam~ ~override~ - ~iwdification/bam/cdid422b.bam~ ~override~ - ~iwdification/bam/cdid422c.bam~ ~override~ - ~iwdification/bam/cdid422d.bam~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd422.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_CLOUD_OF_PESTILENCE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CLOUD_OF_PESTILENCE~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi309.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi309a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid423.spl~ 1 4 CLERIC_CLOUD_OF_PESTILENCE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4240 // name - SAY 0x50 @4241 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309 END - LPF ALTER_EFFECT STR_VAR match_resource = cdid423 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309a END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid423 END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 duration = 24 STR_VAR resource = cdid423 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid423.itm~ - SAY 0x0c @4240 - SAY 0x54 @4241 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3 + BIT12 + BIT21 + BIT30) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil cleric - - COPY ~iwdification/bam/cdid423a.bam~ ~override~ - ~iwdification/bam/cdid423b.bam~ ~override~ - ~iwdification/bam/cdid423c.bam~ ~override~ - ~iwdification/bam/cdicopes.bam~ ~override~ - ~iwdification/wav/cdiarp25.wav~ ~override~ - - ACTION_IF ee_game BEGIN - - APPEND ~clearair.2da~ ~Cloud_of_Pest %cdi309%~ - - END ELSE BEGIN - - APPEND ~clearair.2da~ ~Cloud_of_Pest %cdi309a%~ - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 9 cloud_dur = 24 zosa = 1 STR_VAR code = cdid423 anim = cdicopes END - - COPY ~iwdification/spl/cdid423.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309a END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid423 END - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 39 END // class = paladin, but bg2 paladins don't have disease immunity - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixd423 END // race = elemental - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 27 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd423 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 1 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd423 END // general = undead - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd423.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_UNFAILING_ENDURANCE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_UNFAILING_ENDURANCE~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid424.spl~ 1 4 CLERIC_UNFAILING_ENDURANCE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4250 // name - SAY 0x50 @4251 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid424.itm~ - SAY 0x0c @4250 - SAY 0x54 @4251 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/bam/cdid424a.bam~ ~override~ - ~iwdification/bam/cdid424b.bam~ ~override~ - ~iwdification/bam/cdid424c.bam~ ~override~ - ~iwdification/bam/cdinecro.bam~ ~override~ - ~iwdification/vvc/cdinecro.vvc~ ~override~ - ~iwdification/wav/cdiep112.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_STAR_METAL_CUDGEL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STAR_METAL_CUDGEL~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid425.spl~ 1 4 CLERIC_STAR_METAL_CUDGEL - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4260 // name - SAY 0x50 @4261 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid425.itm~ - SAY 0x0c @4260 - SAY 0x54 @4261 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/itm/cdismcud.itm~ ~override~ - SAY 0x08 @4260 - SAY 0x0c @4260 - - COPY ~iwdification/bam/cdid425a.bam~ ~override~ - ~iwdification/bam/cdid425b.bam~ ~override~ - ~iwdification/bam/cdid425c.bam~ ~override~ - ~iwdification/bam/cdiconju.bam~ ~override~ - ~iwdification/bam/cdismcud.bam~ ~override~ - ~iwdification/eff/cdismcud.eff~ ~override~ - ~iwdification/vvc/cdiconju.vvc~ ~override~ - ~iwdification/wav/cdiep02.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_SMASHING_WAVE \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SMASHING_WAVE~) OR override_divine)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdiswave.pro~ - - ADD_SPELL ~iwdification/spl/cdid426.spl~ 1 4 CLERIC_SMASHING_WAVE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4270 // name - SAY 0x50 @4271 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiswave END - LPF ALTER_EFFECT STR_VAR match_resource = cdid426 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37340 parameter1 = string_uncon END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 20438 parameter1 = string_uncon END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid426.itm~ - SAY 0x0c @4270 - SAY 0x54 @4271 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid426a.bam~ ~override~ - ~iwdification/bam/cdid426b.bam~ ~override~ - ~iwdification/bam/cdid426c.bam~ ~override~ - ~iwdification/bam/cdiswavh.bam~ ~override~ - ~iwdification/bam/cdiswavx.bam~ ~override~ - ~iwdification/vvc/cdiswavh.vvc~ ~override~ - ~iwdification/wav/cdiep110.wav~ ~override~ - ~iwdification/wav/cditra56.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_THORN_SPRAY \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_THORN_SPRAY~) OR override_divine) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi303.pro~ - - ADD_SPELL ~iwdification/spl/cdid427.spl~ 1 4 CLERIC_THORN_SPRAY - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4280 // name - SAY 0x50 @4281 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi303 END - PATCH_IF !ee_game BEGIN - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid427.itm~ - SAY 0x0c @4280 - SAY 0x54 @4281 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 30 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid427a.bam~ ~override~ - ~iwdification/bam/cdid427b.bam~ ~override~ - ~iwdification/bam/cdid427c.bam~ ~override~ - ~iwdification/bam/cditspra.bam~ ~override~ - ~iwdification/wav/cditra61.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY_EXISTING ~cdi303.pro~ ~override~ - WRITE_BYTE 0x217 11 // re-use cone of cold - WRITE_BYTE 0x218 0 - - END - -END - -///// \\\\\ -///// CLERIC_WALL_OF_MOONLIGHT \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_WALL_OF_MOONLIGHT~) OR override_divine)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdiwallm.pro~ - - ADD_SPELL ~iwdification/spl/cdid428.spl~ 1 4 CLERIC_WALL_OF_MOONLIGHT - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4290 // name - SAY 0x50 @4291 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwallm END - LPF ALTER_EFFECT STR_VAR match_resource = cdid428 resource = EVAL ~%DEST_RES%~ END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid428.itm~ - SAY 0x0c @4290 - SAY 0x54 @4291 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/bam/cdid428a.bam~ ~override~ - ~iwdification/bam/cdid428b.bam~ ~override~ - ~iwdification/bam/cdid428c.bam~ ~override~ - ~iwdification/bam/cdimoonx.bam~ ~override~ - ~iwdification/spl/cdid428a.spl~ ~override~ - ~iwdification/spl/cdid428b.spl~ ~override~ - ~iwdification/vvc/cdimoonx.vvc~ ~override~ - ~iwdification/wav/cdiafp21.wav~ ~override~ - ~iwdification/wav/cdiarp22.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4300) STR_VAR bam_file = cdid316d RET icon END - - ADD_PROJECTILE ~iwdification/pro/cdi266.pro~ - - ADD_SPELL ~iwdification/spl/cdid518.spl~ 1 5 CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4300 // name - SAY 0x50 @4301 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi266 END - PATCH_IF !ee_game BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = cdirwf00 END - PATCH_FOR_EACH align IN 17 18 19 33 34 35 49 50 51 BEGIN - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 power = 5 parameter1 = align parameter2 = 8 timing = 1 resist_dispel = 3 STR_VAR resource = EVAL ~cdirwf%align%~ END - END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid518.itm~ - SAY 0x0c @4300 - SAY 0x54 @4301 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/spl/cdirwf00.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36035 parameter1 = string_hasted END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 parameter2 = icon END - END ELSE BEGIN // in non-ee, characters will get 00 AND 99 if matching alignment, so need to strip out anything already covered in 99 - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 END - PATCH_FOR_EACH op IN 321 8 174 215 18 93 BEGIN // cosmetics, sound, fatigue, hp bonus - LPF DELETE_EFFECT INT_VAR match_opcode = op END - END - PATCH_FOR_EACH op IN 54 33 34 35 36 37 BEGIN // already get +1 from 99, so only bump another +1 here - LPF ALTER_EFFECT INT_VAR match_opcode = op parameter1 = 1 END - END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdirwf00 END - END - - COPY ~iwdification/spl/cdirwf99.spl~ ~override~ - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdirwf99 END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/bam/cdid518a.bam~ ~override~ - ~iwdification/bam/cdid518b.bam~ ~override~ - ~iwdification/bam/cdid518c.bam~ ~override~ - ~iwdification/bam/cdid316d.bam~ ~override~ - ~iwdification/bam/cdiabjux.bam~ ~override~ - ~iwdification/bam/cdirwtfh.bam~ ~override~ - ~iwdification/vvc/cdigabju.vvc~ ~override~ - ~iwdification/vvc/cdirwtfg.vvc~ ~override~ - ~iwdification/vvc/cdirwtfh.vvc~ ~override~ - ~iwdification/wav/cdiarm20.wav~ ~override~ - ~iwdification/wav/cdiee01.wav~ ~override~ - ~iwdification/wav/cdiep36.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/cdirwf17.eff~ ~override/cdirwf00.eff~ - WRITE_ASCIIE 0x30 ~cdirwf00~ - - ACTION_FOR_EACH align IN 17 18 19 33 34 35 49 50 51 BEGIN - - COPY ~iwdification/eff/cdirwf17.eff~ ~override/cdirwf%align%.eff~ - WRITE_ASCIIE 0x30 ~cdirwf%align%~ - - COPY ~iwdification/spl/cdirwf17.spl~ ~override/cdirwf%align%.spl~ - WRITE_LONG 0x9e align - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi266 END - - END - - END - -END - -///// \\\\\ -///// CLERIC_SPIKE_STONES \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIKE_STONES~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi213.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi213a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid519.spl~ 1 5 CLERIC_SPIKE_STONES - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4310 // name - SAY 0x50 @4311 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213 END - LPF DELETE_EFFECT STR_VAR match_resource = ~#sston~ END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213a END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid519 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid519.itm~ - SAY 0x0c @4310 - SAY 0x54 @4311 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid only - - COPY ~iwdification/bam/cdid519a.bam~ ~override~ - ~iwdification/bam/cdid519b.bam~ ~override~ - ~iwdification/bam/cdid519c.bam~ ~override~ - ~iwdification/bam/cdistone.bam~ ~override~ - ~iwdification/vvc/cdistone.vvc~ ~override~ - ~iwdification/wav/cdiarp04.wav~ ~override~ - ~iwdification/wav/cdicp03.wav~ ~override~ - ~iwdification/wav/cdiep48.wav~ ~override~ - - ACTION_IF ee_game BEGIN - - COPY ~iwdification/vvc/cdistone.vvc~ ~override~ - - END ELSE BEGIN - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 72 STR_VAR code = cdid519 anim = cdistone END - - COPY ~iwdification/spl/cdid519.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213a END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid519 END - - END - -END - -///// \\\\\ -///// CLERIC_SHIELD_OF_LATHANDER \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SHIELD_OF_LATHANDER~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4320) STR_VAR bam_file = cdid520d RET icon END - - ADD_SPELL ~iwdification/spl/cdid520.spl~ 1 5 CLERIC_SHIELD_OF_LATHANDER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4320 // name - SAY 0x50 @4321 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 324 STR_VAR resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 164 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 164 END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 3 parameter2 = 8 STR_VAR resource = cdixd520 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid520.itm~ - SAY 0x0c @4320 - SAY 0x54 @4321 - LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT12 + BIT21 + BIT30) range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-evil cleric - - COPY ~iwdification/bam/cdid520a.bam~ ~override~ - ~iwdification/bam/cdid520b.bam~ ~override~ - ~iwdification/bam/cdid520c.bam~ ~override~ - ~iwdification/bam/cdid520d.bam~ ~override~ - ~iwdification/bam/cdisol1.bam~ ~override~ - ~iwdification/bam/cdisol2.bam~ ~override~ - ~iwdification/vvc/cdilatl1.vvc~ ~override~ - ~iwdification/vvc/cdilatl2.vvc~ ~override~ - ~iwdification/wav/cdiafp20.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd520.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_UNDEAD_WARD \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_UNDEAD_WARD~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdiuward.pro~ - - END ELSE BEGIN - - OUTER_SET cdiuward = 1 - - END - - ADD_SPELL ~iwdification/spl/cdid521.spl~ 1 5 CLERIC_UNDEAD_WARD - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4330 // name - SAY 0x50 @4331 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiuward END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid521 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 power = 5 resist_dispel = 2 duration = 60 STR_VAR resource = cdiuwrdx END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 power = 5 parameter2 = 2 resist_dispel = 2 duration = 60 END - LPF CD_EXTEND-O-MATIC INT_VAR base_dur = 60 step_dur = 0 level_cap = 30 min_lev_alt = 9 END - READ_SHORT 0x68 abil_num - FOR (index = 9 ; index < (abil_num + 9) ; ++index) BEGIN - LPF ALTER_EFFECT INT_VAR header = (index - 9) match_opcode = 177 STR_VAR resource = EVAL ~cdiuwr%index%~ END - END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid521.itm~ - SAY 0x0c @4330 - SAY 0x54 @4331 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/bam/cdid521a.bam~ ~override~ - ~iwdification/bam/cdid521b.bam~ ~override~ - ~iwdification/bam/cdid521c.bam~ ~override~ - ~iwdification/bam/cdiuwrdx.bam~ ~override~ - ~iwdification/vvc/cdiuwrdx.vvc~ ~override~ - ~iwdification/wav/cdiafp27.wav~ ~override~ - ~iwdification/wav/cdiarp28.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COMPILE ~iwdification/baf/cdid521.baf~ - - OUTER_FOR (index = 9 ; index < 31 ; ++index) BEGIN - - COPY ~iwdification/eff/cdiuwr9.eff~ ~override/cdiuwr%index%.eff~ - WRITE_ASCIIE 0x30 "%DEST_RES%" #8 - - COPY ~iwdification/cre/cdiuwr9.cre~ ~override/cdiuwr%index%.cre~ - WRITE_BYTE 0x234 index - - END - - END - -END - -///// \\\\\ -///// CLERIC_ANIMAL_RAGE \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ANIMAL_RAGE~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4340) STR_VAR bam_file = cdid522d RET icon END - - ADD_SPELL ~iwdification/spl/cdid522.spl~ 1 5 CLERIC_ANIMAL_RAGE - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4340 // name - SAY 0x50 @4341 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid522 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 173 parameter2 = icon END - LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdid522b END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 173 parameter2 = 83 END - LPF CLONE_EFFECT INT_VAR match_opcode = 33 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - LPF CD_CONVERT_333 STR_VAR 333spell = cdid522b END - LPF CD_CONVERT_9_255 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid522.itm~ - SAY 0x0c @4340 - SAY 0x54 @4341 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid - - COPY ~iwdification/spl/cdid522b.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37605 parameter1 = string_berserk END - - COPY ~iwdification/bam/cdid522a.bam~ ~override~ - ~iwdification/bam/cdid522b.bam~ ~override~ - ~iwdification/bam/cdid522c.bam~ ~override~ - ~iwdification/bam/cdid522d.bam~ ~override~ - -END - -///// \\\\\ -///// CLERIC_MASS_CAUSE_LIGHT_WOUNDS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MASS_CAUSE_LIGHT_WOUNDS~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid523.spl~ 1 5 CLERIC_MASS_CAUSE_LIGHT_WOUNDS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4350 // name - SAY 0x50 @4351 // descript - LPF ALTER_EFFECT STR_VAR match_resource = cdid523 resource = EVAL ~%DEST_RES%~ END - PATCH_IF !ee_game BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd523 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd523 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd523 END // race = parameter1 - LPF CD_SPLIT_SAVE_DAMAGE END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid523.itm~ - SAY 0x0c @4350 - SAY 0x54 @4351 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3) target_hdr = 5 range = 20 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil only - - COPY ~iwdification/bam/cdid523a.bam~ ~override~ - ~iwdification/bam/cdid523b.bam~ ~override~ - ~iwdification/bam/cdid523c.bam~ ~override~ - ~iwdification/bam/cdicldam.bam~ ~override~ - ~iwdification/vvc/cdicldam.vvc~ ~override~ - ~iwdification/wav/cdiem103.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd523.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_ENTROPY_SHIELD \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ENTROPY_SHIELD~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4360) STR_VAR bam_file = cdid615d RET icon END - - ADD_SPELL ~iwdification/spl/cdid615.spl~ 1 6 CLERIC_ENTROPY_SHIELD - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4360 // name - SAY 0x50 @4361 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid615 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 56 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 56 END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 END - LPF CLONE_EFFECT INT_VAR match_opcode = 30 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - // iwdee/bgee/bg2ee/vanilla all match in projectiles until the 1pp slots for EE, so remove 1pp refs for vanilla (EEs all match, fortunately) - FOR (index = 282 ; index < 319 ; ++index) BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 83 match_parameter2 = index END - END - PATCH_IF FILE_EXISTS_IN_GAME ~1arow01.pro~ BEGIN // if 1pp is installed, re-add the references manually since they still may not sync with EE - PATCH_FOR_EACH proj IN // 1pp stuff - 1stafm0c 1arow01 1arow02 1arow03 1arow04 1arow05 1arow07 1arow10 1arow11 1arow15 1axe05 1axe08 1axe09 1axe10 1axe16 1bolt01 1bolt02 1bolt03 1bolt04 - 1bolt05 1bolt06 1bolt09 1bull02 1bull03 1bull04 1bull05 1bull06 1dagg05 1dagg11 1dagg12 1dagg16 1dart01 1dart02 1dart03 1dart04 1dart05 1dart08 - BEGIN - SET projids = IDS_OF_SYMBOL (~projectl~ ~%proj%~) - PATCH_IF projids > 0 BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 83 match_parameter2 = 1 parameter2 = projids END - END - END - END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid615.itm~ - SAY 0x0c @4360 - SAY 0x54 @4361 - LPF cd_scroll INT_VAR target_hdr = 5 range = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid615a.bam~ ~override~ - ~iwdification/bam/cdid615b.bam~ ~override~ - ~iwdification/bam/cdid615c.bam~ ~override~ - ~iwdification/bam/cdid615d.bam~ ~override~ - ~iwdification/bam/cdiabjur.bam~ ~override~ - ~iwdification/bam/cdieshld.bam~ ~override~ - ~iwdification/vvc/cdiabjur.vvc~ ~override~ - ~iwdification/vvc/cdientro.vvc~ ~override~ - ~iwdification/wav/cdiafp03.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_WHIRLWIND \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_WHIRLWIND~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdiwhirl.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdiwhira.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid617.spl~ 1 6 CLERIC_WHIRLWIND - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4370 // name - SAY 0x50 @4371 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwhirl END - LPF ALTER_EFFECT STR_VAR match_resource = cdid617 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 resist_dispel = 2 duration = 120 STR_VAR resource = cdid617 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid617.itm~ - SAY 0x0c @4370 - SAY 0x54 @4371 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid617a.bam~ ~override~ - ~iwdification/bam/cdid617b.bam~ ~override~ - ~iwdification/bam/cdid617c.bam~ ~override~ - ~iwdification/bam/cdiwhirx.bam~ ~override~ - ~iwdification/wav/cdiep105.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/spl/cdid617.spl~ ~override/cdid617b.spl~ - WRITE_LONG 0x08 "-1" - LPF DELETE_EFFECT INT_VAR match_opcode = 318 END - LPF DELETE_EFFECT INT_VAR match_opcode = 324 END - LPF ALTER_EFFECT STR_VAR match_resource = cdid617 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwhira END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 265 target = 1 parameter1 = 1 timing = 1 insert_point = 0 STR_VAR resource = cdizosa END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 273 target = 1 timing = 1 resist_dispel = 3 insert_point = 0 STR_VAR resource = cdizosa END - PATCH_FOR_EACH race IN 146 118 119 142 101 102 145 144 127 199 BEGIN // dragon, syverns, slimes, giants, ankheg, basilisk, elemental, golem, otyugh, ettin - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 parameter1 = race parameter2 = 4 duration = 1 insert_point = 0 STR_VAR resource = cdixd617 END - END - - COMPILE ~iwdification/baf/cdid617.baf~ - - COPY ~iwdification/cre/cdid617.cre~ ~override~ - ~iwdification/eff/cdid617.eff~ ~override~ - ~iwdification/eff/cdid617b.eff~ ~override~ - ~iwdification/vvc/cdiwhirx.vvc~ ~override~ - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd617.eff~ - WRITE_ASCII 0x30 ~cdid617b~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_SPIRITUAL_WRATH \\\\\ -///// \\\\\ - -ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIRITUAL_WRATH~) OR override_divine)) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi207.pro~ - ADD_PROJECTILE ~iwdification/pro/cdi312.pro~ - - ADD_SPELL ~iwdification/spl/cdid618.spl~ 1 6 CLERIC_SPIRITUAL_WRATH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4380 // name - SAY 0x50 @4381 // descript - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi312 END - LPF ALTER_EFFECT STR_VAR match_resource = cdid618 resource = EVAL ~%DEST_RES%~ END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid618.itm~ - SAY 0x0c @4380 - SAY 0x54 @4381 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 100 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY_EXISTING ~cdi312.pro~ ~override~ - WRITE_SHORT 0x21a cdi207 - - COPY ~iwdification/bam/cdid618a.bam~ ~override~ - ~iwdification/bam/cdid618b.bam~ ~override~ - ~iwdification/bam/cdid618c.bam~ ~override~ - ~iwdification/bam/cdiliten.bam~ ~override~ - ~iwdification/vvc/cdiinvoc.vvc~ ~override~ - ~iwdification/wav/cdiep05.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_SYMBOL_OF_PAIN \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SYMBOL_OF_PAIN~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4393) STR_VAR bam_file = cdid714d RET icon END - - ADD_SPELL ~iwdification/spl/cdid714.spl~ 1 7 CLERIC_SYMBOL_OF_PAIN - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4390 // name - SAY 0x50 @4391 // descript - SAY 0x21e @4392 - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid714 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 169 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF DELETE_EFFECT INT_VAR match_opcode = 328 END - LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid714.itm~ - SAY 0x0c @4390 - SAY 0x54 @4391 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 4 range = 35 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // unusable by druid - - COPY ~iwdification/bam/cdid714a.bam~ ~override~ - ~iwdification/bam/cdid714b.bam~ ~override~ - ~iwdification/bam/cdid714c.bam~ ~override~ - ~iwdification/bam/cdid714d.bam~ ~override~ - ~iwdification/wav/cdiee04.wav~ ~override~ - ~iwdification/wav/cdiep02.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_SYMBOL_OF_HOPELESSNESS \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SYMBOL_OF_HOPELESSNESS~) OR override_divine) BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi277.pro~ - - ADD_SPELL ~iwdification/spl/cdid716.spl~ 1 7 CLERIC_SYMBOL_OF_HOPELESSNESS - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4400 // name - SAY 0x50 @4401 // descript - SAY 0x1be @3003 - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi277 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 1280 parameter1 = string_stunned END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid716.itm~ - SAY 0x0c @4400 - SAY 0x54 @4401 - LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 4 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric - - COPY ~iwdification/bam/cdid716a.bam~ ~override~ - ~iwdification/bam/cdid716b.bam~ ~override~ - ~iwdification/bam/cdid716c.bam~ ~override~ - ~iwdification/bam/cdiparal.bam~ ~override~ - ~iwdification/bam/cdishglp.bam~ ~override~ - ~iwdification/bam/cdisohx.bam~ ~override~ - ~iwdification/vvc/cdiparal.vvc~ ~override~ - ~iwdification/vvc/cdishglp.vvc~ ~override~ - ~iwdification/vvc/cdisohx.vvc~ ~override~ - ~iwdification/wav/cdiee04.wav~ ~override~ - ~iwdification/wav/cdiep02.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_IMPERVIOUS_SANCTITY_OF_MIND \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_IMPERVIOUS_SANCTITY_OF_MIND~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4410) STR_VAR bam_file = cdid733d RET icon END - - ADD_SPELL ~iwdification/spl/cdid733.spl~ 1 7 CLERIC_IMPERVIOUS_SANCTITY_OF_MIND - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4410 // name - SAY 0x50 @4411 // descript - LPF ALTER_EFFECT INT_VAR match_opcode = 206 match_parameter1 = 4742 parameter1 = 0 END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END - LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 170 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 170 END - LPF DELETE_EFFECT INT_VAR match_opcode = 321 END - LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid733.itm~ - SAY 0x0c @4410 - SAY 0x54 @4411 - LPF cd_scroll INT_VAR target_hdr = 5 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid733a.bam~ ~override~ - ~iwdification/bam/cdid733b.bam~ ~override~ - ~iwdification/bam/cdid733c.bam~ ~override~ - ~iwdification/bam/cdid733d.bam~ ~override~ - ~iwdification/bam/cdiabjur.bam~ ~override~ - ~iwdification/vvc/cdiabjur.vvc~ ~override~ - ~iwdification/wav/cdiee03.wav~ ~override~ - ~iwdification/wav/cdiep01.wav~ ~override~ - -END - -///// \\\\\ -///// CLERIC_DESTRUCTION \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_DESTRUCTION~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid734.spl~ 1 7 CLERIC_DESTRUCTION - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4420 // name - SAY 0x50 @4421 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid734 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd734 END // undead are immune - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid734.itm~ - SAY 0x0c @4420 - SAY 0x54 @4421 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil - - COPY ~iwdification/bam/cdid734a.bam~ ~override~ - ~iwdification/bam/cdid734b.bam~ ~override~ - ~iwdification/bam/cdid734c.bam~ ~override~ - ~iwdification/bam/cdidestr.bam~ ~override~ - ~iwdification/vvc/cdidestr.vvc~ ~override~ - ~iwdification/wav/cdiep113.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd734.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_GREATER_SHIELD_OF_LATHANDER \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_GREATER_SHIELD_OF_LATHANDER~) OR override_divine) BEGIN - - LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4430) STR_VAR bam_file = cdid735d RET icon END - - ADD_SPELL ~iwdification/spl/cdid735.spl~ 1 7 CLERIC_GREATER_SHIELD_OF_LATHANDER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4430 // name - SAY 0x50 @4431 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid735 resource = EVAL ~%DEST_RES%~ END - LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 165 parameter2 = icon END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 165 END - LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 3 parameter2 = 8 STR_VAR resource = cdixd735 END // evil are immune - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid735.itm~ - SAY 0x0c @4430 - SAY 0x54 @4431 - LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT3 + BIT12 + BIT21 + BIT30) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // good cleric - - COPY ~iwdification/bam/cdid735a.bam~ ~override~ - ~iwdification/bam/cdid735b.bam~ ~override~ - ~iwdification/bam/cdid735c.bam~ ~override~ - ~iwdification/bam/cdid735d.bam~ ~override~ - ~iwdification/bam/cdigsol1.bam~ ~override~ - ~iwdification/bam/cdigsol2.bam~ ~override~ - ~iwdification/vvc/cdilatg1.vvc~ ~override~ - ~iwdification/vvc/cdilatg2.vvc~ ~override~ - ~iwdification/wav/cdiafp26.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd735.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_MIST_OF_ELDATH \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MIST_OF_ELDATH~) OR override_divine) BEGIN - - ACTION_IF ee_game BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi307.pro~ - - END ELSE BEGIN - - ADD_PROJECTILE ~iwdification/pro/cdi307a.pro~ - - END - - ADD_SPELL ~iwdification/spl/cdid736.spl~ 1 7 CLERIC_MIST_OF_ELDATH - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4440 // name - SAY 0x50 @4441 // descript - PATCH_IF ee_game BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307 END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END - END ELSE BEGIN - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307a END - LPF DELETE_EFFECT END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid736 END - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid736.itm~ - SAY 0x0c @4440 - SAY 0x54 @4441 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid736a.bam~ ~override~ - ~iwdification/bam/cdid736b.bam~ ~override~ - ~iwdification/bam/cdid736c.bam~ ~override~ - ~iwdification/bam/cdimoeld.bam~ ~override~ - ~iwdification/wav/cdiep104.wav~ ~override~ - - ACTION_IF !ee_game BEGIN - - LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 7 cloud_dur = 6 zosa = 1 STR_VAR code = cdid736 anim = cdimoeld END - - COPY ~iwdification/spl/cdid736.spl~ ~override~ - WRITE_LONG 0x08 "-1" // name - LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307a END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END - LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid736 END - - END - -END - -///// \\\\\ -///// CLERIC_STALKER \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STALKER~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid737.spl~ 1 7 CLERIC_STALKER - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4450 // name - SAY 0x50 @4451 // descript - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid737.itm~ - SAY 0x0c @4450 - SAY 0x54 @4451 - LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COMPILE ~iwdification/baf/cdishamb.baf~ - - LAF cd_animation STR_VAR code = 7302 END // 29442 MEAE_SH shambling_mound - COPY ~iwdification/cre/cdishamb.cre~ ~override~ - SAY 0x08 @4452 - SAY 0x0c @4452 - - COPY ~iwdification/itm/cdishmbl.itm~ ~override~ - WRITE_LONG 0x08 string_attack - WRITE_LONG 0x0c string_attack - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = shmblr resource = cdishmbl END - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37709 parameter1 = string_entangled savingthrow = BIT1 END - LPF ALTER_EFFECT INT_VAR match_opcode = 12 savingthrow = BIT1 END - END ELSE BEGIN - LPF DELETE_EFFECT INT_VAR check_globals = 0 END - LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd737 END // general = undead - LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd737 END // race = golem - LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixd737 END // race = elemental - LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 164 parameter2 = 4 STR_VAR resource = cdixd737 END // race = myconid - LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 146 target = 2 parameter2 = 1 STR_VAR resource = cdishmbl END - END - - COPY ~iwdification/bam/cdid737a.bam~ ~override~ - ~iwdification/bam/cdid737b.bam~ ~override~ - ~iwdification/bam/cdid737c.bam~ ~override~ - ~iwdification/bam/cdishmbl.bam~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/spl/cdishmbl.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37709 parameter1 = string_entangled END - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd737.eff~ - WRITE_ASCII 0x30 ~cdishmbl~ #8 - - END - -END - -///// \\\\\ -///// CLERIC_ENERGY_DRAIN \\\\\ -///// \\\\\ - -ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ENERGY_DRAIN~) OR override_divine) BEGIN - - ADD_SPELL ~iwdification/spl/cdid739.spl~ 1 7 CLERIC_ENERGY_DRAIN - SPRINT current_spell_res "%DEST_RES%" - SAY 0x08 @4460 // name - SAY 0x50 @4461 // descript - SAY 0x2ae @4462 - PATCH_IF ee_game BEGIN - LPF ALTER_EFFECT STR_VAR match_resource = cdid739 resource = EVAL ~%DEST_RES%~ END - END ELSE BEGIN - LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd739 END // race = golem - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd739 END // general = undead - LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd739 END // race = parameter1 - END - - COPY ~iwdification/itm/blankpr.itm~ ~override/cdid739.itm~ - SAY 0x0c @4460 - SAY 0x54 @4461 - LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3 + BIT12 + BIT21 + BIT30) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END - - COPY ~iwdification/bam/cdid739a.bam~ ~override~ - ~iwdification/bam/cdid739b.bam~ ~override~ - ~iwdification/bam/cdid739c.bam~ ~override~ - - ACTION_IF !ee_game BEGIN - - COPY ~iwdification/eff/immunity.eff~ ~override/cdixd739.eff~ - WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 - - END - -END - -///// \\\\\ -///// joinable spellbook adjustments \\\\\ -///// \\\\\ - -OUTER_SET NUM_d112 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CURSE~)) - 1000) -OUTER_SET NUM_d114 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_LIGHT_WOUNDS~)) - 1000) -OUTER_SET NUM_d115 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SUNSCORCH~)) - 1000) -OUTER_SET NUM_d217 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CURE_MODERATE_WOUNDS~)) - 1000) -OUTER_SET NUM_d218 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ALICORN_LANCE~)) - 1000) -OUTER_SET NUM_d219 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_BEAST_CLAW~)) - 1000) -OUTER_SET NUM_d220 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_MODERATE_WOUNDS~)) - 1000) -OUTER_SET NUM_d316 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_PRAYER~)) - 1000) -OUTER_SET NUM_d320 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_DISEASE~)) - 1000) -OUTER_SET NUM_d321 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_EXALTATION~)) - 1000) -OUTER_SET NUM_d322 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MOONBLADE~)) - 1000) -OUTER_SET NUM_d323 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CIRCLE_OF_BONES~)) - 1000) -OUTER_SET NUM_d324 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIKE_GROWTH~)) - 1000) -OUTER_SET NUM_d325 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CLOUDBURST~)) - 1000) -OUTER_SET NUM_d326 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MOLD_TOUCH~)) - 1000) -OUTER_SET NUM_d327 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STORM_SHELL~)) - 1000) -OUTER_SET NUM_d330 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_MEDIUM_WOUNDS~)) - 1000) -OUTER_SET NUM_d331 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_FAVOR_OF_ILMATER~)) - 1000) -OUTER_SET NUM_d418 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_GIANT_INSECT~)) - 1000) -OUTER_SET NUM_d419 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_PRODUCE_FIRE~)) - 1000) -OUTER_SET NUM_d420 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STATIC_CHARGE~)) - 1000) -OUTER_SET NUM_d421 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_RECITATION~)) - 1000) -OUTER_SET NUM_d422 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_BLOOD_RAGE~)) - 1000) -OUTER_SET NUM_d423 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CLOUD_OF_PESTILENCE~)) - 1000) -OUTER_SET NUM_d424 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_UNFAILING_ENDURANCE~)) - 1000) -OUTER_SET NUM_d425 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STAR_METAL_CUDGEL~)) - 1000) -OUTER_SET NUM_d426 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SMASHING_WAVE~)) - 1000) -OUTER_SET NUM_d427 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_THORN_SPRAY~)) - 1000) -OUTER_SET NUM_d428 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_WALL_OF_MOONLIGHT~)) - 1000) -OUTER_SET NUM_d518 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL~)) - 1000) -OUTER_SET NUM_d519 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIKE_STONES~)) - 1000) -OUTER_SET NUM_d520 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SHIELD_OF_LATHANDER~)) - 1000) -OUTER_SET NUM_d521 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_UNDEAD_WARD~)) - 1000) -OUTER_SET NUM_d522 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ANIMAL_RAGE~)) - 1000) -OUTER_SET NUM_d523 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MASS_CAUSE_LIGHT_WOUNDS~)) - 1000) -OUTER_SET NUM_d615 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ENTROPY_SHIELD~)) - 1000) -OUTER_SET NUM_d617 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_WHIRLWIND~)) - 1000) -OUTER_SET NUM_d618 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIRITUAL_WRATH~)) - 1000) -OUTER_SET NUM_d714 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SYMBOL_OF_PAIN~)) - 1000) -OUTER_SET NUM_d716 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SYMBOL_OF_HOPELESSNESS~)) - 1000) -OUTER_SET NUM_d733 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_IMPERVIOUS_SANCTITY_OF_MIND~)) - 1000) -OUTER_SET NUM_d734 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_DESTRUCTION~)) - 1000) -OUTER_SET NUM_d735 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_GREATER_SHIELD_OF_LATHANDER~)) - 1000) -OUTER_SET NUM_d736 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MIST_OF_ELDATH~)) - 1000) -OUTER_SET NUM_d737 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STALKER~)) - 1000) -OUTER_SET NUM_d739 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ENERGY_DRAIN~)) - 1000) - -ACTION_FOR_EACH scroll IN - 112 114 115 217 218 219 220 316 320 321 322 323 324 325 326 327 330 331 418 419 420 421 422 423 424 425 426 427 428 518 519 520 521 522 523 615 617 618 714 716 734 735 736 737 738 -BEGIN - - ACTION_IF FILE_EXISTS_IN_GAME ~cdid%scroll%.itm~ BEGIN - - COPY ~iwdification/lib/divine_spellbooks.tpa~ ~iwdification/lib/divine_spellbooks.tpa~ - REPLACE_TEXTUALLY ~//NUM_d%scroll% ~ ~~ // could I be more lazy? maaaaaaybe. - - END - -END - -REINCLUDE ~iwdification/lib/divine_spellbooks.tpa~ - -COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~ - READ_LONG 0x1cc bio - PATCH_IF ((bio > 0) AND (bio < 999999)) BEGIN // joinable...ish - LPF CD_IWDIFICATION_SPELLBOOKS END - END - BUT_ONLY - -///// \\\\\ -///// divine spell crosspatching \\\\\ -///// \\\\\ - -ACTION_IF NUM_d422 > 0 BEGIN - - COPY_EXISTING ~sppr%NUM_d422%.spl~ ~override~ - PATCH_IF NUM_d714 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid714 resource = EVAL ~sppr%NUM_d714%~ END - END - PATCH_IF NUM_d716 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid716 resource = EVAL ~sppr%NUM_d716%~ END - END - BUT_ONLY - - ACTION_IF NUM_d321 > 0 BEGIN - - COPY_EXISTING ~sppr%NUM_d321%.spl~ ~override~ - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid422 resource = EVAL ~sppr%NUM_a422%~ END - BUT_ONLY - - END - -END - -ACTION_IF NUM_d733 > 0 BEGIN - - COPY_EXISTING ~sppr%NUM_d733%.spl~ ~override~ - PATCH_IF NUM_d422 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid422 resource = EVAL ~sppr%NUM_d422%~ END - END - PATCH_IF NUM_d716 > 0 BEGIN - LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid716 resource = EVAL ~sppr%NUM_d716%~ END - END - BUT_ONLY - -END - -ACTION_IF !ee_game BEGIN - - COPY_EXISTING ~cdibclaw.bam~ ~override~ - ~cdimoonb.bam~ ~override~ - ~cdismcud.bam~ ~override~ - READ_LONG 0x0c frame_off - WRITE_LONG frame_off + 0x04 0 - IF_EXISTS - -END - -///// \\\\\ -///// arcane-divine cross-patching \\\\\ -///// \\\\\ - -ACTION_IF MOD_IS_INSTALLED ~IWDIFICATION/SETUP-IWDIFICATION.TP2~ ~30~ THEN BEGIN - - INCLUDE ~iwdification/lib/cross_patch_both.tpa~ - -END diff --git a/iwdification/setup-iwdification.tp2 b/iwdification/setup-iwdification.tp2 index 972a73c..74280b0 100644 --- a/iwdification/setup-iwdification.tp2 +++ b/iwdification/setup-iwdification.tp2 @@ -1,8 +1,7 @@ BACKUP ~iwdification/backup~ // location to store files for uninstall purposes AUTHOR ~pcamagna@yahoo.com~ // email address displayed if install fails -AUTO_EVAL_STRINGS -VERSION ~Beta 6-DW edits~ +VERSION ~Beta 4~ README ~iwdification/readme-iwdification.html~ @@ -35,20 +34,6 @@ ALWAYS LAF HANDLE_CHARSETS INT_VAR infer_charset = 1 STR_VAR tra_path = ~iwdification/languages~ reload_array = cdreload noconvert_array = cdnoconvert END LOAD_TRA ~iwdification/languages/english/game_strings_ee.tra~ - // David string settings - OUTER_SPRINT scsroot iwdification - OUTER_SPRINT resource_loc "iwdification/dw/copyover" - OUTER_SPRINT iwdspells_data "dw/data" - OUTER_SPRINT iwdspells_lib "dw/lib" - OUTER_SPRINT iwdspells_resource "dw/resource" - OUTER_SPRINT iwdspells_trabase languages - OUTER_SPRINT sfo_loc "dw/sfo" - OUTER_SPRINT ssl_loc "dw/ssl" - OUTER_SPRINT inifile "%scsroot%/dw/dw_iwdspells.ini" - - - - END END @@ -144,85 +129,4960 @@ COPY_EXISTING ~randcolr.2da~ ~override~ BEGIN @3000 DESIGNATED 30 -ACTION_IF ee_game BEGIN - INCLUDE ~%scsroot%/%iwdspells_lib%/always.tph~ - LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END - LAF install_iwd_spell_resources - STR_VAR - scroll_shadow_list=iwd_arcane.2da - spell_list=arcane_resrefs.txt - lookup=iwd_strref.txt - smtables_list=arcane_smtable.txt - proj_list=arcane_proj.txt - tra=iwdspells.tra - biff="dw#iwdm" - afterwards="arcane_spells_postproduction" - afterwards_tra="dw_iwdspells_arcane.tra" - bam_copy="bam_copy_arcane.2da" - green_bams="green_spells_arcane.2da" - ds="%iwdspells_data%/ds_iwd_arcane.2da" - END -END ELSE BEGIN - INCLUDE "iwdification/lib/cd_arcane.tpa" +INCLUDE ~iwdification/lib/spell_prep.tpa~ + +///// \\\\\ +///// WIZARD_EMOTION_HOPELESSNESS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_COURAGE~) OR override_arcane) BEGIN // checking courage to see if emotion series is already present, since hopelessness is a vanilla bg2 spell + + ADD_PROJECTILE ~iwdification/pro/cdi255.pro~ + + COPY ~iwdification/spl/cdia411.spl~ ~override/spwi411.spl~ // hopelessness + SAY 0x08 @3001 + SAY 0x50 @3002 + SAY 0x18e @3003 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi255 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 1280 parameter1 = string_stunned END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + END + + COPY_EXISTING ~scrl5h.itm~ ~override~ + SAY 0x0c @3001 + SAY 0x54 @3002 + WRITE_BYTE 0x2d BIT3 // invoker flag + LPF ALTER_ITEM_HEADER INT_VAR range = 50 target = 4 END + + COPY ~iwdification/bam/cdia411a.bam~ ~override~ + ~iwdification/bam/cdia411b.bam~ ~override~ + ~iwdification/bam/cdia411c.bam~ ~override~ + ~iwdification/bam/cdienchx.bam~ ~override~ + ~iwdification/bam/cdiparal.bam~ ~override~ + ~iwdification/vvc/cdigench.vvc~ ~override~ + ~iwdification/vvc/cdiparal.vvc~ ~override~ + ~iwdification/wav/cdiarm21.wav~ ~override~ + ~iwdification/wav/cdiee05.wav~ ~override~ + ~iwdification/wav/cdiem05.wav~ ~override~ + END -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ -///// IWD divine spell pack \\\\\ +///// WIZARD_POLYMORPH_SELF \\\\\ ///// \\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -BEGIN @4000 DESIGNATED 40 +// these generally 'clean out' the poly self subspells +COPY_EXISTING ~bhaal4a.spl~ ~override~ // resurrection + ~ohbraise.spl~ ~override~ // nsi + ~slayerw3.itm~ ~override~ // slater weapon + ~spja01.spl~ ~override~ // harper's call + ~sppr504.spl~ ~override~ // raise dead + ~sppr550.spl~ ~override~ // recall spirit + ~sppr712.spl~ ~override~ // resurrection + ~sppr729.spl~ ~override~ // mass raise dead + ~spwish10.spl~ ~override~ // mass raise dead + PATCH_IF anim_beetle BEGIN + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia480 END // boring beetle + END + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia481 END // polar bear + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia482 END // winter wolf + BUT_ONLY IF_EXISTS + +// add new forms to poly self +COPY_EXISTING ~spwi416.spl~ ~override~ // poly self + PATCH_IF anim_beetle BEGIN + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia480 END // boring beetle + SAY 0x50 @3004 + END ELSE BEGIN + SAY 0x50 @3014 + END + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia481 END // polar bear + LPF CLONE_EFFECT STR_VAR match_resource = spwi499 resource = cdia482 END // winter wolf + +COPY ~iwdification/spl/cdia481.spl~ ~override~ // polar bear + SAY 0x08 @3007 + SAY 0x50 @3008 + +COPY ~iwdification/spl/cdia482.spl~ ~override~ // winter wolf + SAY 0x08 @3009 + SAY 0x50 @3012 + +COPY_EXISTING ~cdia481.spl~ ~override~ + ~cdia482.spl~ ~override~ + PATCH_FOR_EACH res IN spin122 spin123 spin124 spin150 spin151 spin160 spin160 spin160 spin529 spin667 spin718 spinhum spmdslay spwi489 spwi490 spwi491 BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 172 STR_VAR match_resource = spin974 resource = EVAL ~%res%~ END + END + LPF ALTER_EFFECT INT_VAR match_opcode = 135 opcode = 171 timing = 1 STR_VAR resource = spwi490 END // move polymorph ops to the claws + LPF DELETE_EFFECT INT_VAR match_opcode = 144 END // move delete button to claws, too + +//LAF cd_animation STR_VAR code = 7203 END // 29187 MBER_PO bear_polar +COPY ~iwdification/cre/cdidrupb.cre~ ~override~ + SAY 0x08 @3015 + SAY 0x0c @3015 + +//LAF cd_animation STR_VAR code = 7b03 END // 31491 MWLF_WI wolf_winter +COPY ~iwdification/cre/cdidruww.cre~ ~override~ + WRITE_LONG 0x08 string_wwolf + WRITE_LONG 0x0c string_wwolf + +COPY ~iwdification/itm/cdiplypb.itm~ ~override~ + ~iwdification/itm/cdiplyww.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + +COPY_EXISTING ~cdiplypb.itm~ ~override~ + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidrupb END + +COPY_EXISTING ~cdiplyww.itm~ ~override~ + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidruww END + +COPY ~iwdification/bam/cdia481b.bam~ ~override~ + ~iwdification/bam/cdia482b.bam~ ~override~ + ~iwdification/bam/cdiplypb.bam~ ~override~ + ~iwdification/bam/cdiplyww.bam~ ~override~ + +ACTION_IF anim_beetle BEGIN + + COPY ~iwdification/spl/cdia480.spl~ ~override~ // boring beetle + SAY 0x08 @3005 + SAY 0x50 @3006 + PATCH_FOR_EACH res IN spin122 spin123 spin124 spin150 spin151 spin160 spin160 spin160 spin529 spin667 spin718 spinhum spmdslay spwi489 spwi490 spwi491 BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 172 STR_VAR match_resource = spin974 resource = EVAL ~%res%~ END + END + LPF ALTER_EFFECT INT_VAR match_opcode = 135 opcode = 171 timing = 1 STR_VAR resource = spwi490 END // move polymorph ops to the claws + LPF DELETE_EFFECT INT_VAR match_opcode = 144 END // move delete button to claws, too + + LAF cd_animation STR_VAR code = e220 END // 57888 MBBM beetle_black + COPY ~iwdification/cre/cdidrubb.cre~ ~override~ + SAY 0x08 @3013 + SAY 0x0c @3013 + WRITE_LONG 0x28 anim_beetle + + COPY ~iwdification/itm/cdiplybb.itm~ ~override~ + ~iwdification/itm/cdis5-20.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY_EXISTING ~cdiplybb.itm~ ~override~ + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 144 target = 1 parameter2 = 7 timing = 2 END + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 135 target = 1 timing = 2 STR_VAR resource = cdidrubb END + + COPY ~iwdification/bam/cdia480b.bam~ ~override~ + ~iwdification/bam/cdiplybb.bam~ ~override~ -ACTION_IF ee_game BEGIN - INCLUDE ~%scsroot%/%iwdspells_lib%/always.tph~ - LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END - LAF install_iwd_spell_resources - STR_VAR - spell_list=divine_resrefs.txt - lookup=iwd_strref.txt - proj_list=divine_proj.txt - smtables_list=divine_smtable.txt - tra=iwdspells.tra - biff="dw#iwdp" - afterwards="divine_spells_postproduction" - afterwards_tra="dw_iwdspells_divine.tra" - bam_copy="bam_copy_divine.2da" - ds="%iwdspells_data%/ds_iwd_divine.2da" - END -END ELSE BEGIN - INCLUDE "iwdification/lib/cd_divine.tpa" END -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ -///// bard song \\\\\ +///// WIZARD_EXPEDITIOUS_RETREAT \\\\\ ///// \\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ -BEGIN @5000 DESIGNATED 50 +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EXPEDITIOUS_RETREAT~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia126.spl~ 2 1 WIZARD_EXPEDITIOUS_RETREAT + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3010 // name + SAY 0x50 @3011 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37787 parameter1 = string_slowed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37638 parameter1 = string_slow END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36035 parameter1 = string_hasted END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia126.itm~ + SAY 0x0c @3010 + SAY 0x54 @3011 + LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 5 range = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia126a.bam~ ~override~ + ~iwdification/bam/cdia126b.bam~ ~override~ + ~iwdification/bam/cdia126c.bam~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SNILLOCS_SNOWBALL_SWARM \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SNILLOCS_SNOWBALL_SWARM~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi217.pro~ + + ADD_SPELL ~iwdification/spl/cdia204.spl~ 2 2 WIZARD_SNILLOCS_SNOWBALL_SWARM + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3020 // name + SAY 0x50 @3021 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi217 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia204 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + LPF DELETE_EFFECT INT_VAR match_opcode = 12 multi_match = 1 END // delete one of these + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia204.itm~ + SAY 0x0c @3020 + SAY 0x54 @3021 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 900 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia204a.bam~ ~override~ + ~iwdification/bam/cdia204b.bam~ ~override~ + ~iwdification/bam/cdia204c.bam~ ~override~ + ~iwdification/vvc/cdissswa.vvc~ ~override~ // pro resources + ~iwdification/bam/cdiswarr.bam~ ~override~ + ~iwdification/bam/cdiswart.bam~ ~override~ + ~iwdification/bam/cdissswx.bam~ ~override~ + ~iwdification/wav/cdirngm2.wav~ ~override~ + ~iwdification/wav/cditra18.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY_EXISTING ~cdi217.pro~ ~override~ + WRITE_BYTE 0x217 14 + + END + +END + +///// \\\\\ +///// WIZARD_DECASTAVE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DECASTAVE~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia216.spl~ 2 2 WIZARD_DECASTAVE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3030 // name + SAY 0x50 @3031 // descript + + COPY ~iwdification/itm/blank.itm~ ~override/cdia216.itm~ + SAY 0x0c @3030 + SAY 0x54 @3031 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 5 range = 1 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdideca.itm~ ~override~ + SAY 0x08 @3030 + SAY 0x0c @3030 + PATCH_IF !ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 12 opcode = 146 parameter2 = 1 special = 0 dicenumber = 0 dicesize = 0 STR_VAR resource = cdideca END + END + + COPY ~iwdification/bam/cdia216a.bam~ ~override~ + ~iwdification/bam/cdia216b.bam~ ~override~ + ~iwdification/bam/cdia216c.bam~ ~override~ + ~iwdification/bam/cdideca.bam~ ~override~ + ~iwdification/bam/cdiinvoc.bam~ ~override~ + ~iwdification/vvc/cdiinvoc.vvc~ ~override~ + ~iwdification/wav/cdiee02.wav~ ~override~ + ~iwdification/wav/cdiem06.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/spl/cdideca.spl~ ~override~ + + END + +END + +///// \\\\\ +///// WIZARD_CATS_GRACE \\\\\ +///// \\\\\ + +ACTION_IF ((ee_game OR tobex_game) AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CATS_GRACE~) OR override_arcane)) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3040) STR_VAR bam_file = cdia225d RET icon END + + ADD_SPELL ~iwdification/spl/cdia225.spl~ 2 2 WIZARD_CATS_GRACE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3040 // name + SAY 0x50 @3041 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14024 parameter1 = string_dexmod END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia225 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 185 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 328 END + LPF CLONE_EFFECT INT_VAR match_opcode = 15 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia225.itm~ + SAY 0x0c @3040 + SAY 0x54 @3041 + LPF cd_scroll INT_VAR unusable2 = BIT6 range = 1 STR_VAR price = 200 spell = EVAL ~%current_spell_res%~ END + + ACTION_IF ee_game BEGIN + APPEND ~splstate.ids~ ~45 CATS_GRACE~ UNLESS ~^45[ %TAB%]+CATS_GRACE[ %TAB%%LNL%%MNL%%WNL%]+~ + END + + COPY ~iwdification/bam/cdia225a.bam~ ~override~ + ~iwdification/bam/cdia225b.bam~ ~override~ + ~iwdification/bam/cdia225c.bam~ ~override~ + ~iwdification/bam/cdia225d.bam~ ~override~ + ~iwdification/wav/cdiem08.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_ICELANCE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ICELANCE~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi251.pro~ + + ADD_SPELL ~iwdification/spl/cdia327.spl~ 2 3 WIZARD_ICELANCE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3050 // name + SAY 0x50 @3051 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi251 END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia327.itm~ + SAY 0x0c @3050 + SAY 0x54 @3051 + LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 900 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia327a.bam~ ~override~ + ~iwdification/bam/cdia327b.bam~ ~override~ + ~iwdification/bam/cdia327c.bam~ ~override~ + ~iwdification/bam/cdiiceln.bam~ ~override~ + ~iwdification/wav/cditra19.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_LANCE_OF_DISRUPTION \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_LANCE_OF_DISRUPTION~) OR override_arcane) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi313.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi313a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdia328.spl~ 2 3 WIZARD_LANCE_OF_DISRUPTION + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3060 // name + SAY 0x50 @3061 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia328 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi313 END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi313a END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 target = 1 parameter2 = 0 STR_VAR match_resource = cdia328 resource = EVAL ~%DEST_RES%~ END + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia328.itm~ + SAY 0x0c @3060 + SAY 0x54 @3061 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia328a.bam~ ~override~ + ~iwdification/bam/cdia328b.bam~ ~override~ + ~iwdification/bam/cdia328c.bam~ ~override~ + ~iwdification/bam/cdiinvoc.bam~ ~override~ + ~iwdification/bam/cdilodis.bam~ ~override~ + ~iwdification/vvc/cdiinvoc.vvc~ ~override~ + ~iwdification/wav/cdiem06.wav~ ~override~ + ~iwdification/wav/cditra59.wav~ ~override~ -ACTION_IF ee_game BEGIN - INCLUDE ~%scsroot%/%iwdspells_lib%/always.tph~ - LAF include STR_VAR file=install_iwd_spell_resources.tpa location="%iwdspells_lib%" END - LAF install_iwd_spell_resources - STR_VAR - spell_list=bardic_resrefs.txt - lookup=iwd_strref.txt - proj_list=bardic_proj.txt - smtables_list=bardic_smtable.txt - tra=iwdspells.tra - biff="dw#iwdb" - afterwards="bardsong_postproduction" - END -END ELSE BEGIN - INCLUDE "iwdification/lib/cd_bard.tpa" END +///// \\\\\ +///// WIZARD_BELTYNS_BURNING_BLOOD \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_BELTYNS_BURNING_BLOOD~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3070) STR_VAR bam_file = cdia422d RET icon END + + ADD_SPELL ~iwdification/spl/cdia422.spl~ 2 4 WIZARD_BELTYNS_BURNING_BLOOD + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3070 // name + SAY 0x50 @3071 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia422 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 66 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 66 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixa422 END // race = elemental + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa422 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa422 END // general = undead + LPF CD_CONVERT_333 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia422.itm~ + SAY 0x0c @3070 + SAY 0x54 @3071 + LPF cd_scroll INT_VAR unusable1 = BIT2 range = 200 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/spl/cdia422a.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37605 parameter1 = string_berserk END + + COPY ~iwdification/bam/cdia422a.bam~ ~override~ + ~iwdification/bam/cdia422b.bam~ ~override~ + ~iwdification/bam/cdia422c.bam~ ~override~ + ~iwdification/bam/cdia422d.bam~ ~override~ + ~iwdification/bam/cdinecro.bam~ ~override~ + ~iwdification/vvc/cdinecro.vvc~ ~override~ + ~iwdification/wav/cdiem07.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixa422.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// WIZARD_SHADOW_MONSTERS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHADOW_MONSTERS~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "SHADOW_MONSTERS" 2da_file = cdismons RET table END + + ADD_SPELL ~iwdification/spl/cdia426.spl~ 2 4 WIZARD_SHADOW_MONSTERS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3080 // name + SAY 0x50 @3081 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + READ_SHORT 0x68 abil_num + LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdismons END + FOR (index = 1 ; index < abil_num ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 7) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdismons END + END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia426.itm~ + SAY 0x0c @3080 + SAY 0x54 @3081 + LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1200 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e400 END // 58368 MGO1 goblin_axe + COPY ~iwdification/cre/cdis1gb1.cre~ ~override~ + ~iwdification/cre/cdis1gb2.cre~ ~override~ + ~iwdification/cre/cdis1gb3.cre~ ~override~ + WRITE_LONG 0x08 string_goblin + WRITE_LONG 0x0c string_goblin + + LAF cd_animation STR_VAR code = e510 END // 58640 MLI2 lizard_man + COPY ~iwdification/cre/cdis1lz3.cre~ ~override~ + ~iwdification/cre/cdis1lz4.cre~ ~override~ + SAY 0x08 @3082 + SAY 0x0c @3082 + WRITE_LONG 0x28 anim_lizman + + LAF cd_animation STR_VAR code = e0b0 END // 57520 MTRO troll_blue - MTRO doubles with bg2 troll + COPY ~iwdification/cre/cdis1tr6.cre~ ~override~ + ~iwdification/cre/cdis1tr7.cre~ ~override~ + ~iwdification/cre/cdis1tr8.cre~ ~override~ + WRITE_LONG 0x08 string_troll + WRITE_LONG 0x0c string_troll + WRITE_LONG 0x28 anim_btroll + + COPY ~iwdification/itm/cdim1d7s.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/2da/cdismons.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + + COPY ~iwdification/bam/cdia426a.bam~ ~override~ + ~iwdification/bam/cdia426b.bam~ ~override~ + ~iwdification/bam/cdia426c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/itm/cdisumrn.itm~ ~override~ + ~iwdification/itm/cditrn20.itm~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + +END + +///// \\\\\ +///// WIZARD_EMOTION_COURAGE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_COURAGE~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3092) STR_VAR bam_file = cdia427d RET icon END + + ADD_PROJECTILE ~iwdification/pro/cdi407.pro~ + + ADD_SPELL ~iwdification/spl/cdia427.spl~ 2 4 WIZARD_EMOTION_COURAGE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3090 // name + SAY 0x50 @3091 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi407 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia427 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 187 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 187 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia427.itm~ + SAY 0x0c @3090 + SAY 0x54 @3091 + LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia427a.bam~ ~override~ + ~iwdification/bam/cdia427b.bam~ ~override~ + ~iwdification/bam/cdia427c.bam~ ~override~ + ~iwdification/bam/cdia427d.bam~ ~override~ + ~iwdification/bam/cdiencha.bam~ ~override~ + ~iwdification/vvc/cdiencha.vvc~ ~override~ + ~iwdification/wav/cdiee03.wav~ ~override~ + ~iwdification/wav/cdiem05.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_EMOTION_FEAR \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_FEAR~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi255.pro~ + + ADD_SPELL ~iwdification/spl/cdia428.spl~ 2 4 WIZARD_EMOTION_FEAR + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3100 // name + SAY 0x50 @3101 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi255 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35484 parameter1 = string_panic END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia428.itm~ + SAY 0x0c @3100 + SAY 0x54 @3101 + LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia428a.bam~ ~override~ + ~iwdification/bam/cdia428b.bam~ ~override~ + ~iwdification/bam/cdia428c.bam~ ~override~ + ~iwdification/bam/cdiencha.bam~ ~override~ + ~iwdification/bam/cdienchx.bam~ ~override~ + ~iwdification/vvc/cdiencha.vvc~ ~override~ + ~iwdification/vvc/cdigench.vvc~ ~override~ + ~iwdification/wav/cdiarm21.wav~ ~override~ + ~iwdification/wav/cdiee05.wav~ ~override~ + ~iwdification/wav/cdiem05.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_EMOTION_HOPE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_EMOTION_HOPE~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3112) STR_VAR bam_file = cdia429d RET icon END + + ADD_PROJECTILE ~iwdification/pro/cdi407.pro~ + + ADD_SPELL ~iwdification/spl/cdia429.spl~ 2 4 WIZARD_EMOTION_HOPE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3110 // name + SAY 0x50 @3111 // descript + LPF DELETE_EFFECT INT_VAR match_opcode = 321 STR_VAR match_resource = spin115 END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi407 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 186 parameter2 = icon END + LPF ALTER_EFFECT STR_VAR match_resource = cdia429 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 186 parameter2 = 22 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia429.itm~ + SAY 0x0c @3110 + SAY 0x54 @3111 + LPF cd_scroll INT_VAR unusable1 = BIT3 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia429a.bam~ ~override~ + ~iwdification/bam/cdia429b.bam~ ~override~ + ~iwdification/bam/cdia429c.bam~ ~override~ + ~iwdification/bam/cdia429d.bam~ ~override~ + ~iwdification/bam/cdiencha.bam~ ~override~ + ~iwdification/vvc/cdiencha.vvc~ ~override~ + ~iwdification/wav/cdiee03.wav~ ~override~ + ~iwdification/wav/cdiem05.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_MORDENKAINENS_FORCE_MISSILES \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MORDENKAINENS_FORCE_MISSILES~) OR override_arcane)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdimfm.pro~ + ADD_PROJECTILE ~iwdification/pro/cdimfm2.pro~ + + // ADD_PROJECTILE won't add multiple versions of the same projectile, but it's needed for MFM's special projectile chain - do it manually + OUTER_FOR (index = (cdimfm2 + 1) ; index < (cdimfm2 + 10) ; ++index) BEGIN + + APPEND ~projectl.ids~ ~%index% cdimfm2~ + + END + + ADD_SPELL ~iwdification/spl/cdia430.spl~ 2 4 WIZARD_MORDENKAINENS_FORCE_MISSILES + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3120 // name + SAY 0x50 @3121 // descript + LPF ALTER_SPELL_HEADER INT_VAR header = 1 projectile = (cdimfm + 0) END + LPF ALTER_SPELL_HEADER INT_VAR header = 2 projectile = (cdimfm + 0) END + LPF ALTER_SPELL_HEADER INT_VAR header = 3 projectile = (cdimfm + 0) END + LPF ALTER_SPELL_HEADER INT_VAR header = 4 projectile = (cdimfm + 1) END + LPF ALTER_SPELL_HEADER INT_VAR header = 5 projectile = (cdimfm + 1) END + LPF ALTER_SPELL_HEADER INT_VAR header = 6 projectile = (cdimfm + 1) END + LPF ALTER_SPELL_HEADER INT_VAR header = 7 projectile = (cdimfm + 2) END + LPF ALTER_SPELL_HEADER INT_VAR header = 8 projectile = (cdimfm + 2) END + LPF ALTER_SPELL_HEADER INT_VAR header = 9 projectile = (cdimfm + 2) END + LPF ALTER_SPELL_HEADER INT_VAR header = 10 projectile = (cdimfm + 3) END + LPF ALTER_SPELL_HEADER INT_VAR header = 11 projectile = (cdimfm + 3) END + LPF ALTER_SPELL_HEADER INT_VAR header = 12 projectile = (cdimfm + 3) END + LPF ALTER_SPELL_HEADER INT_VAR header = 13 projectile = (cdimfm + 4) END + LPF ALTER_SPELL_HEADER INT_VAR header = 14 projectile = (cdimfm + 4) END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia430.itm~ + SAY 0x0c @3120 + SAY 0x54 @3121 + LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia430a.bam~ ~override~ + ~iwdification/bam/cdia430b.bam~ ~override~ + ~iwdification/bam/cdia430c.bam~ ~override~ + ~iwdification/bam/cdimfmsx.bam~ ~override~ + ~iwdification/bam/cdimfmt.bam~ ~override~ + ~iwdification/spl/cdia430b.spl~ ~override~ + ~iwdification/vvc/cdimfmsx.vvc~ ~override~ + ~iwdification/wav/cdiarm02.wav~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + ~iwdification/wav/cditra55.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SHOUT \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHOUT~) OR override_arcane)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi315.pro~ + + ADD_SPELL ~iwdification/spl/cdia431.spl~ 2 4 WIZARD_SHOUT + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3130 // name + SAY 0x50 @3131 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi315 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia431.itm~ + SAY 0x0c @3130 + SAY 0x54 @3131 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 22 opcode = 148 target_eff = 1 price = 1200 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia431a.bam~ ~override~ + ~iwdification/bam/cdia431b.bam~ ~override~ + ~iwdification/bam/cdia431c.bam~ ~override~ + ~iwdification/bam/cdishout.bam~ ~override~ + ~iwdification/wav/cdiem100.wav~ ~override~ + ~iwdification/wav/cditra08.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_VITRIOLIC_SPHERE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_VITRIOLIC_SPHERE~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi316.pro~ + + ADD_SPELL ~iwdification/spl/cdia432.spl~ 2 4 WIZARD_VITRIOLIC_SPHERE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3140 // name + SAY 0x50 @3141 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi316 END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia432.itm~ + SAY 0x0c @3140 + SAY 0x54 @3141 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) range = 100 price = 1600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia432a.bam~ ~override~ + ~iwdification/bam/cdia432b.bam~ ~override~ + ~iwdification/bam/cdia432c.bam~ ~override~ + ~iwdification/bam/cdiacid.bam~ ~override~ + ~iwdification/bam/cdivitst.bam~ ~override~ + ~iwdification/bam/cdivitsx.bam~ ~override~ + ~iwdification/spl/cdia432y.spl~ ~override~ + ~iwdification/spl/cdia432z.spl~ ~override~ + ~iwdification/vvc/cdiacid.vvc~ ~override~ + ~iwdification/vvc/cdivitsx.vvc~ ~override~ + ~iwdification/wav/cdiem34.wav~ ~override~ + ~iwdification/wav/cdiem47.wav~ ~override~ + ~iwdification/wav/cditra60.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SHROUD_OF_FLAME \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHROUD_OF_FLAME~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3150) STR_VAR bam_file = cdia524d RET icon END + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdishrod.pro~ + + END ELSE BEGIN + + OUTER_SET cdishrod = 216 + + END + + ADD_SPELL ~iwdification/spl/cdia524.spl~ 2 5 WIZARD_SHROUD_OF_FLAME + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3150 // name + SAY 0x50 @3151 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia524 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdia524b END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 94 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 94 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 328 END + LPF CD_CONVERT_333 STR_VAR 333spell = cdia524b END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia524.itm~ + SAY 0x0c @3150 + SAY 0x54 @3151 + LPF cd_scroll INT_VAR unusable1 = BIT1 range = 100 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/spl/cdia524b.spl~ ~override~ + SAY 0x08 @3150 // name + SAY 0x50 @3151 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdishrod END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 328 END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/bam/cdia524a.bam~ ~override~ + ~iwdification/bam/cdia524b.bam~ ~override~ + ~iwdification/bam/cdia524c.bam~ ~override~ + ~iwdification/bam/cdia524d.bam~ ~override~ + ~iwdification/bam/cdisofl.bam~ ~override~ + ~iwdification/vvc/cdisofl.vvc~ ~override~ + +END + +///// \\\\\ +///// WIZARD_DEMI_SHADOW_MONSTERS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DEMI_SHADOW_MONSTERS~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "DEMI_SHADOW_MONSTERS" 2da_file = cdidsmon RET table END + + ADD_SPELL ~iwdification/spl/cdia525.spl~ 2 5 WIZARD_DEMI_SHADOW_MONSTERS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3160 // name + SAY 0x50 @3161 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + READ_SHORT 0x68 abil_num + LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdidsmon END + FOR (index = 1 ; index < abil_num ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 9) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdidsmon END + END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia525.itm~ + SAY 0x0c @3160 + SAY 0x54 @3161 + LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e420 END // 58400 MGO3 goblin_elite_axe + COPY ~iwdification/cre/cdis2gb1.cre~ ~override~ + ~iwdification/cre/cdis2gb2.cre~ ~override~ + ~iwdification/cre/cdis2gb3.cre~ ~override~ + SAY 0x08 @3162 + SAY 0x0c @3162 + + LAF cd_animation STR_VAR code = e500 END // 58624 MLIZ lizard_man_elite + COPY ~iwdification/cre/cdis2lz5.cre~ ~override~ + ~iwdification/cre/cdis2lz6.cre~ ~override~ + ~iwdification/cre/cdis2lz7.cre~ ~override~ + SAY 0x08 @3163 + SAY 0x0c @3163 + + COPY ~iwdification/bam/cdia525a.bam~ ~override~ + ~iwdification/bam/cdia525b.bam~ ~override~ + ~iwdification/bam/cdia525c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/itm/cdisumrn.itm~ ~override~ + ~iwdification/itm/cditrn40.itm~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + + COPY ~iwdification/2da/cdidsmon.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_SUMMON_SHADOW \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SUMMON_SHADOW~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "SUMMON_SHADOW" 2da_file = cdishadw RET table END + + ADD_SPELL ~iwdification/spl/cdia526.spl~ 2 5 WIZARD_SUMMON_SHADOW + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3170 // name + SAY 0x50 @3171 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 12 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishadw END // shadows are level 4, so p1=12 should mean 3 shadows + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia526.itm~ + SAY 0x0c @3170 + SAY 0x54 @3171 + LPF cd_scroll INT_VAR target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = ea20 END // 59936 MSH2 shadow_large + COPY ~iwdification/cre/cdisshad.cre~ ~override~ + WRITE_LONG 0x08 string_shadow + WRITE_LONG 0x0c string_shadow + WRITE_LONG 0x28 anim_shadow_lg + + COPY ~iwdification/itm/cdishdw1.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/spl/cdishdw1.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35593 parameter1 = string_diseased END + + COPY ~iwdification/bam/cdia526a.bam~ ~override~ + ~iwdification/bam/cdia526b.bam~ ~override~ + ~iwdification/bam/cdia526c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/bam/cdinecro.bam~ ~override~ + ~iwdification/itm/cditrn60.itm~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + ~iwdification/vvc/cdinecro.vvc~ ~override~ + + COPY ~iwdification/2da/cdishadw.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_CONTACT_OTHER_PLANE \\\\\ +///// \\\\\ + +/* awaiting dialogue for cdia528.d +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONTACT_OTHER_PLANE~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia528.spl~ 2 5 WIZARD_CONTACT_OTHER_PLANE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3180 // name + SAY 0x50 @3181 // descript + + COPY ~iwdification/itm/blank.itm~ ~override/cdia528.itm~ + SAY 0x0c @3180 + SAY 0x54 @3181 + LPF cd_scroll INT_VAR unusable2 = BIT7 target_hdr = 5 range = 1 target_eff = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e300 END // 58112 MGHO ghost + COPY ~iwdification/cre/cdia528.cre~ ~override~ + SAY 0x08 @3182 + SAY 0x0c @3182 + WRITE_LONG 0x28 anim_ghost + WRITE_ASCII 0x2cc ~cdia528~ #8 // dlg + + APPEND ~state.ids~ ~0x00000FC0 STATE_REALLY_DEAD~ UNLESS ~^0x00000FC0[ %TAB]+STATE_REALLY_DEAD[ %TAB%%LNL%%MNL%%WNL%]~ + + COMPILE ~iwdification/baf/cdia528.baf~ + ~iwdification/dlg/cdia528.d~ + + COPY ~iwdification/bam/cdia528a.bam~ ~override~ + ~iwdification/bam/cdia528b.bam~ ~override~ + ~iwdification/bam/cdia528c.bam~ ~override~ + ~iwdification/bam/cdidivin.bam~ ~override~ + ~iwdification/eff/cdia528.eff~ ~override~ + ~iwdification/vvc/cdidivin.vvc~ ~override~ + ~iwdification/wav/cdiem01.wav~ ~override~ + +END +*/ + +///// \\\\\ +///// WIZARD_CONJURE_FIRE_ELEMENTAL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_FIRE_ELEMENTAL~) OR override_arcane) BEGIN + + APPEND ~spell.ids~ ~2516 WIZARD_CONJURE_FIRE_ELEMENTAL~ // alternate identifier + + LAF cd_new_summon_table STR_VAR descript = "FIRE_ELEMENTAL_WIZ" 2da_file = cdifelmw RET table END + + COPY ~iwdification/spl/cdia531.spl~ ~override/spwi516.spl~ + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3190 // name + SAY 0x50 @3191 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdifelmw END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/scrl6x.itm~ + SAY 0x0c @3190 + SAY 0x54 @3191 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e24c END // 57932 MELF elemental_fire_iwd + COPY ~iwdification/cre/cdi8fire.cre~ ~override~ + SAY 0x08 @3192 + SAY 0x0c @3192 + WRITE_LONG 0x28 anim_felem + + COPY ~iwdification/itm/cdifel18.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia531a.bam~ ~override~ + ~iwdification/bam/cdia531b.bam~ ~override~ + ~iwdification/bam/cdia531c.bam~ ~override~ + ~iwdification/bam/cdicfelx.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/vvc/cdicfelx.vvc~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + + COPY ~iwdification/2da/cdifelmw.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_CONJURE_EARTH_ELEMENTAL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_EARTH_ELEMENTAL~) OR override_arcane) BEGIN + + APPEND ~spell.ids~ ~2521 WIZARD_CONJURE_EARTH_ELEMENTAL~ // alternate identifier + + LAF cd_new_summon_table STR_VAR descript = "EARTH_ELEMENTAL_WIZ" 2da_file = cdieelmw RET table END + + COPY ~iwdification/spl/cdia532.spl~ ~override/spwi521.spl~ + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3200 // name + SAY 0x50 @3201 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdieelmw END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/scrl7c.itm~ + SAY 0x0c @3200 + SAY 0x54 @3201 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e24b END // 57931 MELE elemental_earth_iwd + COPY ~iwdification/cre/cdi8erth.cre~ ~override~ + SAY 0x08 @3202 + SAY 0x0c @3202 + WRITE_LONG 0x28 anim_eelem + + COPY ~iwdification/itm/cdieelem.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia532a.bam~ ~override~ + ~iwdification/bam/cdia532b.bam~ ~override~ + ~iwdification/bam/cdia532c.bam~ ~override~ + ~iwdification/bam/cdiceelx.bam~ ~override~ + ~iwdification/bam/cdieelem.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/vvc/cdiceelx.vvc~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + + COPY ~iwdification/2da/cdieelmw.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_CONJURE_WATER_ELEMENTAL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_WATER_ELEMENTAL~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "WATER_ELEMENTAL_WIZ" 2da_file = cdiwelmw RET table END + + ADD_SPELL ~iwdification/spl/cdia533.spl~ 2 5 WIZARD_CONJURE_WATER_ELEMENTAL + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3220 // name + SAY 0x50 @3221 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiwelmw END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia533.itm~ + SAY 0x0c @3220 + SAY 0x54 @3221 + LPF cd_scroll INT_VAR unusable1 = BIT0 + BIT3 target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e24d END // 57933 MELW elemental_water + COPY ~iwdification/cre/cdi8watr.cre~ ~override~ + SAY 0x08 @3222 + SAY 0x0c @3222 + WRITE_LONG 0x28 anim_welem + WRITE_ASCII 0x250 ~~ #8 // blank script that makes elementals ignore targets with SHLDBCH, as not relevant outside of IWD + + COPY ~iwdification/itm/cdiwelem.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia533a.bam~ ~override~ + ~iwdification/bam/cdia533b.bam~ ~override~ + ~iwdification/bam/cdia533c.bam~ ~override~ + ~iwdification/bam/cdicwelx.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdiwelem.bam~ ~override~ + ~iwdification/itm/cditrn4.itm~ ~override~ + ~iwdification/vvc/cdicwelx.vvc~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + + COPY ~iwdification/2da/cdiwelmw.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_CONJURE_AIR_ELEMENTAL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_CONJURE_AIR_ELEMENTAL~) OR override_arcane) BEGIN + + APPEND ~spell.ids~ ~2520 WIZARD_CONJURE_AIR_ELEMENTAL~ // alternate identifier + + LAF cd_new_summon_table STR_VAR descript = "AIR_ELEMENTAL_WIZ" 2da_file = cdiaelmw RET table END + + COPY ~iwdification/spl/cdia534.spl~ ~override/spwi520.spl~ + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3210 // name + SAY 0x50 @3211 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR index match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiaelmw END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/scrl7b.itm~ + SAY 0x0c @3210 + SAY 0x54 @3211 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END + +// LAF cd_animation STR_VAR code = 7320 END // 29472 MAIR elemental_air + COPY ~iwdification/cre/cdi8air.cre~ ~override~ + SAY 0x08 @3212 + SAY 0x0c @3212 + + COPY ~iwdification/itm/cdiaelem.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia534a.bam~ ~override~ + ~iwdification/bam/cdia534b.bam~ ~override~ + ~iwdification/bam/cdia534c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/itm/cditrn4.itm~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + + COPY ~iwdification/2da/cdiaelmw.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_ANTIMAGIC_SHELL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ANTIMAGIC_SHELL~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3230) STR_VAR bam_file = cdia610d RET icon END + + ADD_SPELL ~iwdification/spl/cdia610.spl~ 2 6 WIZARD_ANTIMAGIC_SHELL + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3230 // name + SAY 0x50 @3231 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35499 parameter1 = string_dispel END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 93 parameter2 = icon END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 93 parameter2 = 83 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia610.itm~ + SAY 0x0c @3230 + SAY 0x54 @3231 + LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia610a.bam~ ~override~ + ~iwdification/bam/cdia610b.bam~ ~override~ + ~iwdification/bam/cdia610c.bam~ ~override~ + ~iwdification/bam/cdia610d.bam~ ~override~ + ~iwdification/bam/cdishelc.bam~ ~override~ + ~iwdification/vvc/cdiamags.vvc~ ~override~ + ~iwdification/wav/cdiafm04.wav~ ~override~ + ~iwdification/wav/cdiee01.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_LICH_TOUCH \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_LICH_TOUCH~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia626.spl~ 2 6 WIZARD_LICH_TOUCH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3240 // name + SAY 0x50 @3241 // descript + + COPY ~iwdification/itm/blank.itm~ ~override/cdia626.itm~ + SAY 0x0c @3240 + SAY 0x54 @3241 + LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price= 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdiltou.itm~ ~override~ + SAY 0x08 @3240 + SAY 0x0c @3240 + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa626 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa626 END // general = undead + END + + COPY ~iwdification/spl/cdia626a.spl~ ~override~ + LPF ADD_SPELL_EFFECT INT_VAR opcode = 109 target = 2 parameter2 = 0 duration = 42 savingthrow = BIT2 STR_VAR END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 parameter2 = 0 timing = 1 savingthrow = BIT2 STR_VAR resource = cdinecro END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 174 target = 2 parameter2 = 0 timing = 1 savingthrow = BIT2 STR_VAR resource = cdiem07 END + + COPY ~iwdification/bam/cdia626a.bam~ ~override~ + ~iwdification/bam/cdia626b.bam~ ~override~ + ~iwdification/bam/cdia626c.bam~ ~override~ + ~iwdification/bam/cdiltou.bam~ ~override~ + ~iwdification/bam/cdinecro.bam~ ~override~ + ~iwdification/vvc/cdinecro.vvc~ ~override~ + ~iwdification/wav/cdiee04.wav~ ~override~ + ~iwdification/wav/cdiem07.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixa626.eff~ + WRITE_ASCII 0x30 ~cdia626a~ #8 + + END + +END + +///// \\\\\ +///// WIZARD_MONSTER_SUMMONING_4 \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_4~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_IV" 2da_file = cdimsum4 RET table END + + ADD_SPELL ~iwdification/spl/cdia627.spl~ 2 6 WIZARD_MONSTER_SUMMONING_4 + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3250 // name + SAY 0x50 @3251 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum4 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia627.itm~ + SAY 0x0c @3250 + SAY 0x54 @3251 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + LAF cd_animation STR_VAR code = e320 END // 58144 MGH3 ghast_greater + COPY ~iwdification/cre/cdi4ghst.cre~ ~override~ + WRITE_LONG 0x08 string_ghast + WRITE_LONG 0x0c string_ghast + WRITE_LONG 0x28 anim_ghast + +// LAF cd_animation STR_VAR code = 9000 END // 36864 MOGR ogre + COPY ~iwdification/cre/cdi4ogre.cre~ ~override~ + WRITE_LONG 0x08 string_ogre + WRITE_LONG 0x0c string_ogre + + COPY ~iwdification/2da/cdimsum4.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + PATCH_IF !anim_yeti BEGIN + REPLACE_TEXTUALLY ~^3[ %TAB%]+cdi4yeti[ %TAB%%LNL%%MNL%%WNL%]+~ ~~ // delete yeti line from msum table + END + END + + ACTION_IF anim_yeti BEGIN // yeti animation (e.g. ee or vanilla bg2 w/ infinity animations) + + LAF cd_animation STR_VAR code = e25d END // 57949 MYET tundra_yeti + COPY ~iwdification/cre/cdi4yeti.cre~ ~override~ + SAY 0x08 @3252 + SAY 0x0c @3252 + + END + + COPY ~iwdification/bam/cdia627a.bam~ ~override~ + ~iwdification/bam/cdia627b.bam~ ~override~ + ~iwdification/bam/cdia627c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + +END + +///// \\\\\ +///// WIZARD_OTILUKES_FREEZING_SPHERE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_OTILUKES_FREEZING_SPHERE~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi269.pro~ + + ADD_SPELL ~iwdification/spl/cdia628.spl~ 2 6 WIZARD_OTILUKES_FREEZING_SPHERE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3260 // name + SAY 0x50 @3261 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi269 END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia628.itm~ + SAY 0x0c @3260 + SAY 0x54 @3261 + LPF cd_scroll INT_VAR range = 40 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia628a.bam~ ~override~ + ~iwdification/bam/cdia628b.bam~ ~override~ + ~iwdification/bam/cdia628c.bam~ ~override~ + ~iwdification/bam/cdiofspt.bam~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SHADES \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHADES~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "Shades" 2da_file = cdishade RET table END + + ADD_SPELL ~iwdification/spl/cdia629.spl~ 2 6 WIZARD_SHADES + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3270 // name + SAY 0x50 @3271 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + READ_SHORT 0x68 abil_num + LPF ALTER_EFFECT INT_VAR header = 0 match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishade END + FOR (index = 1 ; index < abil_num ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 331 opcode = 127 parameter1 = (index + 12) parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdishade END + END + LPF CLONE_EFFECT INT_VAR match_opcode = 127 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia629.itm~ + SAY 0x0c @3270 + SAY 0x54 @3271 + LPF cd_scroll INT_VAR unusable1 = BIT4 target_hdr = 4 range = 50 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + ACTION_IF ee_game BEGIN // use iwdee gaze for ee games + + ADD_PROJECTILE ~iwdification/pro/cdi281.pro~ + + COMPILE ~iwdification/baf/cdiuhgaz.baf~ + + COPY ~iwdification/spl/cdiumbr1.spl~ ~override~ // gaze staging + ~iwdification/spl/cditrdie.spl~ ~override~ // ee troll death + COPY ~iwdification/spl/cdiumbr2.spl~ ~override~ // actual gaze + SAY 0xce @3273 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi281 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37604 parameter1 = string_confused END + + END ELSE BEGIN + + COPY_EXISTING ~umbhul01.bcs~ ~override/cdiuhgaz.bcs~ // use bg2 umber hulk scripting + DECOMPILE_AND_PATCH BEGIN + REPLACE_TEXTUALLY ~AreaCheck("AR1106")~ ~False()~ + END + + END + + LAF cd_animation STR_VAR code = e420 END // 58400 MGO3 goblin_elite_axe + COPY ~iwdification/cre/cdis2gb2.cre~ ~override~ + ~iwdification/cre/cdis2gb3.cre~ ~override~ + SAY 0x08 @3162 + SAY 0x0c @3162 + + LAF cd_animation STR_VAR code = e500 END // 58624 MLIZ lizard_man_elite + COPY ~iwdification/cre/cdis2lz5.cre~ ~override~ + ~iwdification/cre/cdis2lz6.cre~ ~override~ + ~iwdification/cre/cdis2lz7.cre~ ~override~ + SAY 0x08 @3163 + SAY 0x0c @3163 + + LAF cd_animation STR_VAR code = e0b0 END // 57520 MTRO troll_blue - MTRO doubles with bg2 troll + COPY ~iwdification/cre/cdis3tr7.cre~ ~override~ + ~iwdification/cre/cdis3tr8.cre~ ~override~ + WRITE_LONG 0x08 string_troll + WRITE_LONG 0x0c string_troll + WRITE_LONG 0x28 anim_btroll + WRITE_ASCII 0x258 ~~ #8 // blank old die-revive troll script + + LAF cd_animation STR_VAR code = e0d0 END // 57552 MUMB umber_hulk_elder - MUMB doubles with bg2 umber hulk + COPY ~iwdification/cre/cdis3um8.cre~ ~override~ + ~iwdification/cre/cdis3um9.cre~ ~override~ + SAY 0x08 @3272 + SAY 0x0c @3272 + WRITE_LONG 0x28 anim_uhulk + + COPY ~iwdification/itm/cdiumbhk.itm~ ~override~ + ~iwdification/itm/cdim1d7s.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/itm/cdir1hp2.itm~ ~override~ + LPF DELETE_EFFECT INT_VAR match_opcode = 206 END // old iwd vorpal protections + LPF DELETE_EFFECT INT_VAR match_opcode = 267 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 232 STR_VAR resource = cditrdie END + END ELSE BEGIN + PATCH_FOR_EACH op IN 232 208 BEGIN // nuke everything but regen + LPF DELETE_EFFECT INT_VAR match_opcode = op END + END + END + + COPY ~iwdification/bam/cdia629a.bam~ ~override~ + ~iwdification/bam/cdia629b.bam~ ~override~ + ~iwdification/bam/cdia629c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/itm/cdisumam.itm~ ~override~ + ~iwdification/itm/cdisumrn.itm~ ~override~ + ~iwdification/itm/cditrn40.itm~ ~override~ + ~iwdification/itm/cditrn60.itm~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + + COPY ~iwdification/2da/cdishade.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_DARTS_OF_BONE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_DARTS_OF_BONE~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia630.spl~ 2 6 WIZARD_DARTS_OF_BONE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3280 // name + SAY 0x50 @3281 // descript + + COPY ~iwdification/itm/blank.itm~ ~override/cdia630.itm~ + SAY 0x0c @3280 + SAY 0x54 @3281 + LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdidbone.itm~ ~override~ + SAY 0x08 @3280 + SAY 0x0c @3282 + + COPY ~iwdification/bam/cdia630a.bam~ ~override~ + ~iwdification/bam/cdia630b.bam~ ~override~ + ~iwdification/bam/cdia630c.bam~ ~override~ + ~iwdification/bam/cdidbone.bam~ ~override~ + ~iwdification/vvc/cdinecro.vvc~ ~override~ + ~iwdification/bam/cdinecro.bam~ ~override~ + ~iwdification/wav/cdiem07.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SOUL_EATER \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SOUL_EATER~) OR override_arcane)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi299.pro~ + + ADD_SPELL ~iwdification/spl/cdia631.spl~ 2 6 WIZARD_SOUL_EATER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3290 // name + SAY 0x50 @3291 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi299 END + LPF ALTER_EFFECT STR_VAR match_resource = cdia631 resource = EVAL ~%DEST_RES%~ END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia631.itm~ + SAY 0x0c @3290 + SAY 0x54 @3291 + LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 1800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COMPILE ~iwdification/baf/cdi3sklm.baf~ + + LAF cd_animation STR_VAR code = 6403 END // 25603 MSKL skeleton + COPY ~iwdification/cre/cdi3sklm.cre~ ~override~ + WRITE_LONG 0x08 string_skelly + WRITE_LONG 0x0c string_skelly + WRITE_ASCII 0x248 ~cdi3sklm~ #8 + + COPY ~iwdification/bam/cdia631a.bam~ ~override~ + ~iwdification/bam/cdia631b.bam~ ~override~ + ~iwdification/bam/cdia631c.bam~ ~override~ + ~iwdification/bam/cdiseata.bam~ ~override~ + ~iwdification/bam/cdiseath.bam~ ~override~ + ~iwdification/spl/cdi3sklm.spl~ ~override~ + ~iwdification/spl/cdia631b.spl~ ~override~ + ~iwdification/vvc/cdiseata.vvc~ ~override~ + ~iwdification/vvc/cdiseath.vvc~ ~override~ + ~iwdification/wav/cdiarm18.wav~ ~override~ + ~iwdification/wav/cdiem104.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_TROLLISH_FORTITUDE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_TROLLISH_FORTITUDE~) OR override_arcane) BEGIN + + ADD_SPELL ~iwdification/spl/cdia632.spl~ 2 6 WIZARD_TROLLISH_FORTITUDE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3300 // name + SAY 0x50 @3301 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia632 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 142 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia632.itm~ + SAY 0x0c @3300 + SAY 0x54 @3301 + LPF cd_scroll INT_VAR unusable1 = BIT2 target_hdr = 5 range = 1 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia632a.bam~ ~override~ + ~iwdification/bam/cdia632b.bam~ ~override~ + ~iwdification/bam/cdia632c.bam~ ~override~ + ~iwdification/eff/cditroll.eff~ ~override~ + +END + +///// \\\\\ +///// WIZARD_MONSTER_SUMMONING_5 \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_5~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_V" 2da_file = cdimsum5 RET table END + + ADD_SPELL ~iwdification/spl/cdia706.spl~ 2 7 WIZARD_MONSTER_SUMMONING_5 + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3310 // name + SAY 0x50 @3311 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum5 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia706.itm~ + SAY 0x0c @3310 + SAY 0x54 @3311 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END + +// LAF cd_animation STR_VAR code = 7a00 END // 31232 MSPI_GI spider_giant + COPY ~iwdification/cre/cdi5gspi.cre~ ~override~ + WRITE_LONG 0x08 string_gspider + WRITE_LONG 0x0c string_gspider + + LAF cd_animation STR_VAR code = ee00 END // 60928 MZO2 zombie_yellow + COPY ~iwdification/cre/cdi5jzom.cre~ ~override~ + SAY 0x08 @3312 + SAY 0x0c @3312 + WRITE_LONG 0x28 anim_jzombie + + LAF cd_animation STR_VAR code = e070 END // 57456 MMIN minotaur - MMIN doubles with bg2 mindflayer + COPY ~iwdification/cre/cdi5mino.cre~ ~override~ + SAY 0x08 @3313 + SAY 0x0c @3313 + + COPY ~iwdification/itm/cdis18ml.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia706a.bam~ ~override~ + ~iwdification/bam/cdia706b.bam~ ~override~ + ~iwdification/bam/cdia706c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + + COPY ~iwdification/2da/cdimsum5.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// WIZARD_MALAVONS_RAGE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MALAVONS_RAGE~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi209.pro~ + + ADD_SPELL ~iwdification/spl/cdia709.spl~ 2 7 WIZARD_MALAVONS_RAGE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3320 // name + SAY 0x50 @3321 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi209 END + PATCH_IF !ee_game BEGIN + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia709.itm~ + SAY 0x0c @3320 + SAY 0x54 @3321 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 5 range = 50 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia709a.bam~ ~override~ + ~iwdification/bam/cdia709b.bam~ ~override~ + ~iwdification/bam/cdia709c.bam~ ~override~ + ~iwdification/bam/cdimagrx.bam~ ~override~ + ~iwdification/bam/cdimrage.bam~ ~override~ + ~iwdification/vvc/cdimalrg.vvc~ ~override~ + ~iwdification/vvc/cdimrage.vvc~ ~override~ + +END + +///// \\\\\ +///// WIZARD_ACID_STORM \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_ACID_STORM~) OR override_arcane) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi211.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi211a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdia724.spl~ 2 7 WIZARD_ACID_STORM + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3330 // name + SAY 0x50 @3331 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi211 END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi211a END + LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 4 dicesize = 2 END + LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 6 dicesize = 3 END + LPF ALTER_EFFECT INT_VAR match_opcode = 12 match_dicesize = 8 dicesize = 4 END + LPF CLONE_EFFECT INT_VAR match_opcode = 12 savingthrow = BIT24 END + PATCH_FOR_EACH res IN 0 1 2 3 4 5 6 7 8 9 x y z BEGIN // simulating clouds in bg2 sucks + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 resist_dispel = 3 STR_VAR resource = EVAL ~cdia724%res%~ END + END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia724.itm~ + SAY 0x0c @3330 + SAY 0x54 @3331 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia724a.bam~ ~override~ + ~iwdification/bam/cdia724b.bam~ ~override~ + ~iwdification/bam/cdia724c.bam~ ~override~ + ~iwdification/bam/cdiastra.bam~ ~override~ + ~iwdification/bam/cdiastrx.bam~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/vvc/cdia7240.vvc~ ~override~ + ~iwdification/vvc/cdia7241.vvc~ ~override~ + ~iwdification/vvc/cdia7242.vvc~ ~override~ + ~iwdification/vvc/cdia7243.vvc~ ~override~ + ~iwdification/vvc/cdia7244.vvc~ ~override~ + ~iwdification/vvc/cdia7245.vvc~ ~override~ + ~iwdification/vvc/cdia7246.vvc~ ~override~ + ~iwdification/vvc/cdia7247.vvc~ ~override~ + ~iwdification/vvc/cdia7248.vvc~ ~override~ + ~iwdification/vvc/cdia7249.vvc~ ~override~ + ~iwdification/vvc/cdia724x.vvc~ ~override~ + ~iwdification/vvc/cdia724y.vvc~ ~override~ + ~iwdification/vvc/cdia724z.vvc~ ~override~ + + END + +END + +///// \\\\\ +///// WIZARD_SEVEN_EYES \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SHOUT~)) AND // eye of fortitude requires shout, no vanilla + (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SEVEN_EYES~) OR override_arcane)) BEGIN + + ADD_SPELL ~iwdification/spl/cdia725.spl~ 2 7 WIZARD_SEVEN_EYES + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3340 // name + SAY 0x50 @3341 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdia725 resource = EVAL ~%DEST_RES%~ END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia725.itm~ + SAY 0x0c @3340 + SAY 0x54 @3341 + LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/spl/cdia725t.spl~ ~override~ + SAY 0x08 @3342 // name + SAY 0x50 @3343 // descript + + COPY ~iwdification/spl/cdia725u.spl~ ~override~ + SAY 0x08 @3344 // name + SAY 0x50 @3345 // descript + + COPY ~iwdification/spl/cdia725v.spl~ ~override~ + SAY 0x08 @3346 // name + SAY 0x50 @3347 // descript + + COPY ~iwdification/spl/cdia725w.spl~ ~override~ + SAY 0x08 @3348 // name + SAY 0x50 @3349 // descript + + COPY ~iwdification/spl/cdia725x.spl~ ~override~ + SAY 0x08 @3350 // name + SAY 0x50 @3351 // descript + + COPY ~iwdification/spl/cdia725y.spl~ ~override~ + SAY 0x08 @3352 // name + SAY 0x50 @3353 // descript + + COPY ~iwdification/spl/cdia725z.spl~ ~override~ + SAY 0x08 @3354 // name + SAY 0x50 @3355 // descript + + COPY ~iwdification/2da/7eyes.2da~ ~override~ + REPLACE ~21648~ @3356 + REPLACE ~21649~ @3357 + REPLACE ~21650~ @3358 + REPLACE ~21651~ @3359 + REPLACE ~21652~ @3360 + REPLACE ~21653~ @3361 + REPLACE ~21654~ @3362 + + COPY ~iwdification/bam/cdia725a.bam~ ~override~ + ~iwdification/bam/cdia725b.bam~ ~override~ + ~iwdification/bam/cdia725c.bam~ ~override~ + ~iwdification/bam/cdi7eyc1.bam~ ~override~ + ~iwdification/bam/cdi7eyc2.bam~ ~override~ + ~iwdification/bam/cdia725t.bam~ ~override~ + ~iwdification/bam/cdia725u.bam~ ~override~ + ~iwdification/bam/cdia725v.bam~ ~override~ + ~iwdification/bam/cdia725w.bam~ ~override~ + ~iwdification/bam/cdia725x.bam~ ~override~ + ~iwdification/bam/cdia725y.bam~ ~override~ + ~iwdification/bam/cdia725z.bam~ ~override~ + ~iwdification/vvc/cdi7ey.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1a.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1b.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1c.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1d.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1e.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1f.vvc~ ~override~ + ~iwdification/vvc/cdi7ey1g.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2a.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2b.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2c.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2d.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2e.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2f.vvc~ ~override~ + ~iwdification/vvc/cdi7ey2g.vvc~ ~override~ + ~iwdification/wav/cdiafm13.wav~ ~override~ + ~iwdification/wav/cdiafm15.wav~ ~override~ + ~iwdification/wav/cdiafm16.wav~ ~override~ + ~iwdification/wav/cdiafm17.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_SUFFOCATE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_SUFFOCATE~) OR override_arcane) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi317.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi317a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdia726.spl~ 2 7 WIZARD_SUFFOCATE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3370 // name + SAY 0x50 @3371 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi317 END + LPF ALTER_EFFECT STR_VAR match_resource = cdia726 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdia726 END + LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia726.itm~ + SAY 0x0c @3370 + SAY 0x54 @3371 + LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 2100 STR_VAR spell = EVAL ~%current_spell_res%~ END + + + COPY ~iwdification/bam/cdia726a.bam~ ~override~ + ~iwdification/bam/cdia726b.bam~ ~override~ + ~iwdification/bam/cdia726c.bam~ ~override~ + ~iwdification/bam/cdisuffo.bam~ ~override~ + + ACTION_IF ee_game BEGIN + + APPEND ~clearair.2da~ ~Suffocate %cdi317%~ + + COPY ~iwdification/vvc/cdisuffo.vvc~ ~override~ + ~iwdification/wav/cdiafm18.wav~ ~override~ + + END ELSE BEGIN + + APPEND ~clearair.2da~ ~Suffocate %cdi317a%~ + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 60 zosa = 1 STR_VAR code = CDIA726 anim = cdisuffo END + + COPY ~iwdification/spl/cdia726.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi317a END + LPF CLONE_EFFECT INT_VAR match_opcode = 321 opcode = 206 duration = 6 STR_VAR insert = last END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixa726 END // race = elemental + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 27 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixa726 END // race = golem + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 31 opcode = 177 parameter1 = 121 parameter2 = 4 STR_VAR resource = cdixa726 END // race = demonic + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 31 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixa726 END // general = undead + LPF CD_SPLIT_SAVE_DAMAGE END + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixa726.eff~ + WRITE_ASCII 0x30 ~cdia726~ #8 + + END + +END + +///// \\\\\ +///// WIZARD_MONSTER_SUMMONING_6 \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_6~) OR override_arcane) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdisalau.pro~ + + LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_VI" 2da_file = cdimsum6 RET table END + + ADD_SPELL ~iwdification/spl/cdia801.spl~ 2 8 WIZARD_MONSTER_SUMMONING_6 + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3380 // name + SAY 0x50 @3381 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 33 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 67 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum6 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia801.itm~ + SAY 0x0c @3380 + SAY 0x54 @3381 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COMPILE ~iwdification/baf/cdisalfi.baf~ + ~iwdification/baf/cdisalfr.baf~ + ~iwdification/baf/cdipspid.baf~ + +// LAF cd_animation STR_VAR code = a100 END // 41216 MCAR carrion_crawler + COPY ~iwdification/cre/cdi6crwl.cre~ ~override~ + WRITE_LONG 0x08 string_crawler + WRITE_LONG 0x0c string_crawler + +// LAF cd_animation STR_VAR code = 7a02 END // 31234 MSPI_PH spider_phase + COPY ~iwdification/cre/cdi6pspi.cre~ ~override~ + WRITE_LONG 0x08 string_pspider + WRITE_LONG 0x0c string_pspider + + LAF cd_animation STR_VAR code = e910 END // 59664 MSA2 salamander_frost + COPY ~iwdification/cre/cdi6salc.cre~ ~override~ + SAY 0x08 @3383 + SAY 0x0c @3383 + + LAF cd_animation STR_VAR code = e900 END // 59648 MSAL salamander_fire + COPY ~iwdification/cre/cdi6salf.cre~ ~override~ + SAY 0x08 @3382 + SAY 0x0c @3382 + + COPY ~iwdification/itm/cdisalfi.itm~ ~override~ + ~iwdification/itm/cdisalfr.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + WRITE_ASCII 0x3a ~isper01~ #8 + WRITE_ASCII 0x76 ~isper01~ #8 + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 215 target = 1 parameter2 = 1 timing = 2 duration = 0 STR_VAR resource = EVAL ~%SOURCE_RES%~ END + + COPY ~iwdification/spl/cdifire6.spl~ ~override~ + ~iwdification/spl/cdifros6.spl~ ~override~ + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisalau END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + END + + COPY ~iwdification/spl/cdisalfi.spl~ ~override~ + ~iwdification/spl/cdisalfr.spl~ ~override~ + PATCH_IF !ee_game BEGIN // change from EE's 232 distance check to straight once-per-round spam; needs effs copied below + LPF ALTER_EFFECT INT_VAR match_opcode = 232 opcode = 272 target = 1 parameter1 = 6 parameter2 = 3 END + END + + COPY ~iwdification/bam/cdia801a.bam~ ~override~ + ~iwdification/bam/cdia801b.bam~ ~override~ + ~iwdification/bam/cdia801c.bam~ ~override~ + ~iwdification/bam/cdidoorh.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/bam/cdisalfi.bam~ ~override~ + ~iwdification/bam/cdisalfr.bam~ ~override~ + ~iwdification/spl/cdiphase.spl~ ~override~ + ~iwdification/vvc/cdidoorh.vvc~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + ~iwdification/vvc/cdisalfi.vvc~ ~override~ + ~iwdification/vvc/cdisalfr.vvc~ ~override~ + + COPY ~iwdification/2da/cdimsum6.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/spl/cdifire6.spl~ ~override/cdifire0.spl~ + ~iwdification/spl/cdifros6.spl~ ~override/cdifros0.spl~ + WRITE_BYTE 0x7e 1 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisalau END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 2 parameter2 = 1 timing = 1 STR_VAR resource = EVAL ~%SOURCE_RES%~ END + + COPY ~iwdification/eff/cdifire6.eff~ ~override/cdifire6.eff~ + ~iwdification/eff/cdifire6.eff~ ~override/cdifros6.eff~ + WRITE_ASCIIE 0x30 ~%DEST_RES%~ #8 + WRITE_ASCII 0x37 ~0~ #1 + + COPY_EXISTING ~cdisalfi.itm~ ~override~ + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = cdifire6 END + + COPY_EXISTING ~cdisalfr.itm~ ~override~ + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = cdifros6 END + + END + +END + +///// \\\\\ +///// WIZARD_MIND_BLANK \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MIND_BLANK~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3390) STR_VAR bam_file = cdia802d RET icon END + + ADD_SPELL ~iwdification/spl/cdia802.spl~ 2 8 WIZARD_MIND_BLANK + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3390 // name + SAY 0x50 @3391 // descript +// LPF ALTER_EFFECT STR_VAR match_resource = confush resource = cdiconfh END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 166 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 166 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia802.itm~ + SAY 0x0c @3390 + SAY 0x54 @3391 + LPF cd_scroll INT_VAR unusable1 = BIT5 target_hdr = 5 range = 1 target_eff = 1 price = 800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia802a.bam~ ~override~ + ~iwdification/bam/cdia802b.bam~ ~override~ + ~iwdification/bam/cdia802c.bam~ ~override~ + ~iwdification/bam/cdia802d.bam~ ~override~ + ~iwdification/bam/cdiabjur.bam~ ~override~ + ~iwdification/vvc/cdiabjur.vvc~ ~override~ + ~iwdification/wav/cdiem02.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_GREAT_SHOUT \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_GREAT_SHOUT~) OR override_arcane)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi319.pro~ + + ADD_SPELL ~iwdification/spl/cdia806.spl~ 2 8 WIZARD_GREAT_SHOUT + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3400 // name + SAY 0x50 @3401 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi319 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37340 parameter1 = string_uncon END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END + PATCH_IF !ee_game BEGIN + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia806.itm~ + SAY 0x0c @3400 + SAY 0x54 @3401 + LPF cd_scroll INT_VAR unusable1 = BIT1 target_hdr = 4 range = 22 opcode = 148 target_eff = 1 price = 2400 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdia806a.bam~ ~override~ + ~iwdification/bam/cdia806b.bam~ ~override~ + ~iwdification/bam/cdia806c.bam~ ~override~ + ~iwdification/bam/cdigshou.bam~ ~override~ + ~iwdification/wav/cdiem101.wav~ ~override~ + ~iwdification/wav/cditra08.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_IRON_BODY \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_IRON_BODY~) OR override_arcane) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@3410) STR_VAR bam_file = cdia814d RET icon END + + ADD_SPELL ~iwdification/spl/cdia814.spl~ 2 8 WIZARD_IRON_BODY + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3410 // name + SAY 0x50 @3411 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37607 parameter1 = string_poisoned END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36317 parameter1 = string_poison END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35593 parameter1 = string_diseased END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 39752 parameter1 = string_stricken END + LPF CLONE_EFFECT INT_VAR match_opcode = 206 STR_VAR match_resource = spwi502 resource = spin673 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdia814 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 172 parameter2 = icon END + LPF CLONE_EFFECT INT_VAR match_opcode = 206 opcode = 318 parameter2 = 0 STR_VAR match_resource = spwi502 resource = wand13 END + END ELSE BEGIN // move spell effects to 'paw' + READ_LONG 0x6a fx_off + SET fx_num = ((SOURCE_SIZE - fx_off) / 0x30) + READ_ASCII fx_off fx (fx_num * 0x30) + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 111 target = 1 power = 8 duration = 120 STR_VAR resource = cdiibody END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 174 target = 1 power = 8 timing = 1 STR_VAR resource = cdiem102 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia814.itm~ + SAY 0x0c @3410 + SAY 0x54 @3411 + LPF cd_scroll INT_VAR unusable2 = BIT6 target_hdr = 5 range = 1 target_eff = 1 price = 800 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdiibody.itm~ ~override~ + SAY 0x08 @3412 + SAY 0x0c @3412 + PATCH_IF !ee_game BEGIN // move spell effects to 'paw' + READ_LONG 0x64 abil_off ELSE 0 + READ_SHORT 0x68 abil_num ELSE 0 + READ_LONG 0x6a fx_off + WRITE_SHORT 0x70 (THIS + fx_num) + FOR (index = 0 ; index < abil_num ; ++index) BEGIN // start iterating through abilities + WRITE_SHORT (abil_off + 0x20 + (0x28 * index)) (THIS + fx_num) + END + INSERT_BYTES fx_off (fx_num * 0x30) + WRITE_ASCIIE fx_off ~%fx%~ + PATCH_FOR_EACH op IN 321 111 174 BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = op END + END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 172 END + LPF DELETE_EFFECT INT_VAR match_opcode = 1 multi_match = 1 END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 END + LPF ALTER_EFFECT INT_VAR timing = 2 END + END + + COPY ~iwdification/bam/cdia814a.bam~ ~override~ + ~iwdification/bam/cdia814b.bam~ ~override~ + ~iwdification/bam/cdia814c.bam~ ~override~ + ~iwdification/bam/cdia814d.bam~ ~override~ + ~iwdification/bam/cdiibody.bam~ ~override~ + ~iwdification/wav/cdiem102.wav~ ~override~ + +END + +///// \\\\\ +///// WIZARD_MONSTER_SUMMONING_7 \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~WIZARD_MONSTER_SUMMONING_7~) OR override_arcane) BEGIN + + LAF cd_new_summon_table STR_VAR descript = "Monster_summoning_VII" 2da_file = cdimsum7 RET table END + + ADD_SPELL ~iwdification/spl/cdia901.spl~ 2 9 WIZARD_MONSTER_SUMMONING_7 + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @3420 // name + SAY 0x50 @3421 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 49 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum7 END + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdimsum7 END + END + + COPY ~iwdification/itm/blank.itm~ ~override/cdia901.itm~ + SAY 0x0c @3420 + SAY 0x54 @3421 + LPF cd_scroll INT_VAR unusable1 = (BIT0 + BIT3) target_hdr = 4 range = 20 opcode = 148 target_eff = 1 price = 2700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + ACTION_IF ee_game BEGIN // use iwdee gaze for ee games + + ADD_PROJECTILE ~iwdification/pro/cdi281.pro~ + + COMPILE ~iwdification/baf/cdiuhgaz.baf~ + + COPY ~iwdification/spl/cdiumbr1.spl~ ~override~ // gaze staging + COPY ~iwdification/spl/cdiumbr2.spl~ ~override~ // actual gaze + SAY 0xce @3273 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi281 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37604 parameter1 = string_confused END + + END ELSE BEGIN + + COPY_EXISTING ~umbhul01.bcs~ ~override/cdiuhgaz.bcs~ // use bg2 umber hulk scripting + DECOMPILE_AND_PATCH BEGIN + REPLACE_TEXTUALLY ~AreaCheck("AR1106")~ ~False()~ + END + + END + + LAF cd_animation STR_VAR code = eb20 END // 60192 MSKB skeleton_fiend + COPY ~iwdification/cre/cdi7bgrd.cre~ ~override~ + SAY 0x08 @3422 + SAY 0x0c @3422 + + LAF cd_animation STR_VAR code = e0d0 END // 57552 MUMB umber_hulk_elder - MUMB doubles with bg2 umber hulk + COPY ~iwdification/cre/cdi7umbh.cre~ ~override~ + SAY 0x08 @3272 + SAY 0x0c @3272 + WRITE_LONG 0x28 anim_uhulk + + COPY ~iwdification/itm/cdiumbhk.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/bam/cdia901a.bam~ ~override~ + ~iwdification/bam/cdia901b.bam~ ~override~ + ~iwdification/bam/cdia901c.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdimsm1x.bam~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/vvc/cdimsm1x.vvc~ ~override~ + + COPY ~iwdification/2da/cdimsum7.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// arcane spell crosspatching \\\\\ +///// \\\\\ + +OUTER_SET NUM_a411 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_HOPELESSNESS~)) - 2000) +OUTER_SET NUM_a422 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_BELTYNS_BURNING_BLOOD~)) - 2000) +OUTER_SET NUM_a427 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_COURAGE~)) - 2000) +OUTER_SET NUM_a428 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_FEAR~)) - 2000) +OUTER_SET NUM_a429 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_HOPE~)) - 2000) +OUTER_SET NUM_a431 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SHOUT~)) - 2000) +OUTER_SET NUM_a432 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_VITRIOLIC_SPHERE~)) - 2000) +OUTER_SET NUM_a524 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SHROUD_OF_FLAME~)) - 2000) +OUTER_SET NUM_a610 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_ANTIMAGIC_SHELL~)) - 2000) +OUTER_SET NUM_a631 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SOUL_EATER~)) - 2000) +OUTER_SET NUM_a724 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_ACID_STORM~)) - 2000) +OUTER_SET NUM_a726 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_SUFFOCATE~)) - 2000) +OUTER_SET NUM_a814 = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_IRON_BODY~)) - 2000) + +ACTION_IF ((NUM_a411 > 0) AND (NUM_a429 > 0)) BEGIN + + COPY_EXISTING ~spwi%NUM_a411%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia429 resource = EVAL ~spwi%NUM_a429%~ END + BUT_ONLY + + COPY_EXISTING ~spwi%NUM_a429%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia411 resource = EVAL ~spwi%NUM_a411%~ END + BUT_ONLY + +END + +ACTION_IF ((NUM_a427 > 0) AND (NUM_a428 > 0)) BEGIN + + COPY_EXISTING ~spwi%NUM_a427%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia428 resource = EVAL ~spwi%NUM_a428%~ END + BUT_ONLY + + COPY_EXISTING ~spwi%NUM_a428%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia427 resource = EVAL ~spwi%NUM_a427%~ END + BUT_ONLY + +END + +ACTION_IF NUM_a610 > 0 BEGIN + + COPY_EXISTING ~spwi%NUM_a610%.spl~ ~override~ + PATCH_IF NUM_a726 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia726 resource = EVAL ~spwi%NUM_a726%~ END + END + PATCH_IF NUM_a724 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia724 resource = EVAL ~spwi%NUM_a724%~ END + END + PATCH_IF NUM_a631 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia631 resource = EVAL ~spwi%NUM_a631%~ END + END + PATCH_IF NUM_a524 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia524 resource = EVAL ~spwi%NUM_a524%~ END + END + PATCH_IF NUM_a432 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia432 resource = EVAL ~spwi%NUM_a432%~ END + END + BUT_ONLY + +END + +ACTION_IF NUM_a431 > 0 BEGIN + + COPY_EXISTING ~cdia725y.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia431 resource = EVAL ~spwi%NUM_a431%~ END + BUT_ONLY IF_EXISTS + +END + +ACTION_IF NUM_a814 > 0 BEGIN + + COPY_EXISTING ~spwi%NUM_a814%.spl~ ~override~ + PATCH_IF NUM_a726 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia726 resource = EVAL ~spwi%NUM_a726%~ END + END + PATCH_IF NUM_a422 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdia724 resource = EVAL ~spwi%NUM_a422%~ END + END + BUT_ONLY + +END + +ACTION_IF !ee_game BEGIN + + COPY_EXISTING ~cdidbone.bam~ ~override~ + ~cdideca.bam~ ~override~ + ~cdiibody.bam~ ~override~ + ~cdiltou.bam~ ~override~ + ~cdiplybb.bam~ ~override~ + ~cdiplypb.bam~ ~override~ + ~cdiplyww.bam~ ~override~ + ~cdismcud.bam~ ~override~ + READ_LONG 0x0c frame_off + WRITE_LONG frame_off + 0x04 0 + IF_EXISTS + +END + +///// \\\\\ +///// arcane-divine cross-patching \\\\\ +///// \\\\\ + +ACTION_IF MOD_IS_INSTALLED ~IWDIFICATION/SETUP-IWDIFICATION.TP2~ ~40~ THEN BEGIN + + INCLUDE ~iwdification/lib/cross_patch_both.tpa~ + +END + +///// \\\\\ +///// add scrolls to stores \\\\\ +///// \\\\\ + +COPY_EXISTING_REGEXP GLOB ~^[_h]ighhedg\.sto$~ ~override~ // adds lev 1, 2 scrolls to High Hedge + ~^_?sto0703\.sto$~ ~override~ // adds lev 1, 2 scrolls to Sorcerous Sundries + ~^bdsorcsc\.sto$~ ~override~ // adds lev 1, 2 scrolls to SoD Sorcerous Sundries + ~^bdbeleg3\.sto$~ ~override~ // adds lev 1, 2 scrolls to SoD Quartermaster + ~^bpding01\.sto$~ ~override~ // adds lev 1, 2 scrolls to Dinguer the Mad (Black Pits) + PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84 _scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat + PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm + PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave + PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl89 _scrl89~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace + BUT_ONLY IF_EXISTS + +COPY_EXISTING_REGEXP GLOB ~^_?sto0703\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to Sorcerous Sundries + ~^bdsorcsc\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to SoD Sorcerous Sundries + ~^bdbeleg3\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to SoD Quartermaster + ~^bpding01\.sto$~ ~override~ // adds lev 3, 4, 5 scrolls to Dinguer the Mad (Black Pits) + PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1k _scrl1k~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance + PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1k _scrl1k~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption + PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood + PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage + PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear + PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope + PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles + PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl5g _scrl5g~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // shroud of flame + PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Demi-Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Summon Shadow + PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // contact other plane + PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl5k _scrl5k~ #1 #0 #0 ~IDENTIFIED~ #1 END // Conjure water elemental + BUT_ONLY IF_EXISTS + +COPY_EXISTING ~25spell.sto~ ~override~ // arcana archives + ~25spell2.sto~ ~override~ // arcana archives + ~ohbmhsm.sto~ ~override~ // Book Merchant (BG2EE Black Pits 2) + ~ohnmhsm.sto~ ~override~ // Book Merchant (BG2EE Neera's Quest) + PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat + PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm + PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave + PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace + PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance + PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption + PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood + PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage + PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear + PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope + PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles + PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shroud of Flame + PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Demi-Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow + PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Contact Other Plane + PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental + PATCH_IF FILE_EXISTS_IN_GAME cdia610.itm BEGIN ADD_STORE_ITEM ~cdia610~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Antimagic Shell + PATCH_IF FILE_EXISTS_IN_GAME cdia626.itm BEGIN ADD_STORE_ITEM ~cdia626~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lich Touch + PATCH_IF FILE_EXISTS_IN_GAME cdia627.itm BEGIN ADD_STORE_ITEM ~cdia627~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning IV + PATCH_IF FILE_EXISTS_IN_GAME cdia628.itm BEGIN ADD_STORE_ITEM ~cdia628~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Otiluke's Freezing Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia629.itm BEGIN ADD_STORE_ITEM ~cdia629~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shades + PATCH_IF FILE_EXISTS_IN_GAME cdia630.itm BEGIN ADD_STORE_ITEM ~cdia630~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Darts of Bone + PATCH_IF FILE_EXISTS_IN_GAME cdia631.itm BEGIN ADD_STORE_ITEM ~cdia631~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // soul eater + PATCH_IF FILE_EXISTS_IN_GAME cdia632.itm BEGIN ADD_STORE_ITEM ~cdia632~ AFTER ~scrl7p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Trollish Fortitude + PATCH_IF FILE_EXISTS_IN_GAME cdia706.itm BEGIN ADD_STORE_ITEM ~cdia706~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning V + PATCH_IF FILE_EXISTS_IN_GAME cdia709.itm BEGIN ADD_STORE_ITEM ~cdia709~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Malavon's Rage + PATCH_IF FILE_EXISTS_IN_GAME cdia724.itm BEGIN ADD_STORE_ITEM ~cdia724~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Acid Storm + PATCH_IF FILE_EXISTS_IN_GAME cdia725.itm BEGIN ADD_STORE_ITEM ~cdia725~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // seven eyes + PATCH_IF FILE_EXISTS_IN_GAME cdia726.itm BEGIN ADD_STORE_ITEM ~cdia726~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Suffocate + PATCH_IF FILE_EXISTS_IN_GAME cdia801.itm BEGIN ADD_STORE_ITEM ~cdia801~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VI + PATCH_IF FILE_EXISTS_IN_GAME cdia802.itm BEGIN ADD_STORE_ITEM ~cdia802~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Mind Blank + PATCH_IF FILE_EXISTS_IN_GAME cdia806.itm BEGIN ADD_STORE_ITEM ~cdia806~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // great shout + PATCH_IF FILE_EXISTS_IN_GAME cdia814.itm BEGIN ADD_STORE_ITEM ~cdia814~ AFTER ~scrl8p~ #1 #0 #0 ~IDENTIFIED~ #2 END // Iron Body + PATCH_IF FILE_EXISTS_IN_GAME cdia901.itm BEGIN ADD_STORE_ITEM ~cdia901~ AFTER ~scrlb4~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VII + BUT_ONLY IF_EXISTS + +COPY_EXISTING ~scrolls.sto~ ~override~ // yuth + PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat + PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // Snilloc's Snowball Swarm + PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave + PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace + PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance + PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption + PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #3 END // Beltyn's Burning Blood + PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage + PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear + PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope + PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles + PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl1y~ #1 #0 #0 ~IDENTIFIED~ #2 END // Vitriolic Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #4 END // Shroud of Flame + PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #3 END // Demi-Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow + PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Contact Other Plane + PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl6v~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental + PATCH_IF FILE_EXISTS_IN_GAME cdia610.itm BEGIN ADD_STORE_ITEM ~cdia610~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Antimagic Shell + PATCH_IF FILE_EXISTS_IN_GAME cdia626.itm BEGIN ADD_STORE_ITEM ~cdia626~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lich Touch + PATCH_IF FILE_EXISTS_IN_GAME cdia627.itm BEGIN ADD_STORE_ITEM ~cdia627~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning IV + PATCH_IF FILE_EXISTS_IN_GAME cdia628.itm BEGIN ADD_STORE_ITEM ~cdia628~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Otiluke's Freezing Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia629.itm BEGIN ADD_STORE_ITEM ~cdia629~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Shades + PATCH_IF FILE_EXISTS_IN_GAME cdia630.itm BEGIN ADD_STORE_ITEM ~cdia630~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Darts of Bone + PATCH_IF FILE_EXISTS_IN_GAME cdia631.itm BEGIN ADD_STORE_ITEM ~cdia631~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // soul eater + PATCH_IF FILE_EXISTS_IN_GAME cdia632.itm BEGIN ADD_STORE_ITEM ~cdia632~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Trollish Fortitude + PATCH_IF FILE_EXISTS_IN_GAME cdia706.itm BEGIN ADD_STORE_ITEM ~cdia706~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning V + PATCH_IF FILE_EXISTS_IN_GAME cdia709.itm BEGIN ADD_STORE_ITEM ~cdia709~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Malavon's Rage + PATCH_IF FILE_EXISTS_IN_GAME cdia724.itm BEGIN ADD_STORE_ITEM ~cdia724~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #3 END // Acid Storm + PATCH_IF FILE_EXISTS_IN_GAME cdia725.itm BEGIN ADD_STORE_ITEM ~cdia725~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // seven eyes + PATCH_IF FILE_EXISTS_IN_GAME cdia726.itm BEGIN ADD_STORE_ITEM ~cdia726~ AFTER ~scrlal~ #1 #0 #0 ~IDENTIFIED~ #2 END // Suffocate + PATCH_IF FILE_EXISTS_IN_GAME cdia901.itm BEGIN ADD_STORE_ITEM ~cdia901~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VII + PATCH_IF FILE_EXISTS_IN_GAME cdia801.itm BEGIN ADD_STORE_ITEM ~cdia801~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Monster Summoning VI + PATCH_IF FILE_EXISTS_IN_GAME cdia802.itm BEGIN ADD_STORE_ITEM ~cdia802~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #3 END // Mind Blank + PATCH_IF FILE_EXISTS_IN_GAME cdia806.itm BEGIN ADD_STORE_ITEM ~cdia806~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // great shout + PATCH_IF FILE_EXISTS_IN_GAME cdia814.itm BEGIN ADD_STORE_ITEM ~cdia814~ AFTER ~scrlan~ #1 #0 #0 ~IDENTIFIED~ #2 END // Iron Body + BUT_ONLY IF_EXISTS + +COPY_EXISTING ~shop08.sto~ ~override~ // galoomp + PATCH_IF FILE_EXISTS_IN_GAME cdia126.itm BEGIN ADD_STORE_ITEM ~cdia126~ AFTER ~scrl84~ #1 #0 #0 ~IDENTIFIED~ #2 END // expeditious retreat + PATCH_IF FILE_EXISTS_IN_GAME cdia204.itm BEGIN ADD_STORE_ITEM ~cdia204~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #4 END // Snilloc's Snowball Swarm + PATCH_IF FILE_EXISTS_IN_GAME cdia216.itm BEGIN ADD_STORE_ITEM ~cdia216~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // decastave + PATCH_IF FILE_EXISTS_IN_GAME cdia225.itm BEGIN ADD_STORE_ITEM ~cdia225~ AFTER ~scrl93~ #1 #0 #0 ~IDENTIFIED~ #2 END // cats grace + PATCH_IF FILE_EXISTS_IN_GAME cdia327.itm BEGIN ADD_STORE_ITEM ~cdia327~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Icelance + PATCH_IF FILE_EXISTS_IN_GAME cdia328.itm BEGIN ADD_STORE_ITEM ~cdia328~ AFTER ~scrl1e~ #1 #0 #0 ~IDENTIFIED~ #2 END // Lance of Disruption + PATCH_IF FILE_EXISTS_IN_GAME cdia422.itm BEGIN ADD_STORE_ITEM ~cdia422~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Beltyn's Burning Blood + PATCH_IF FILE_EXISTS_IN_GAME cdia426.itm BEGIN ADD_STORE_ITEM ~cdia426~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #3 END // Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia427.itm BEGIN ADD_STORE_ITEM ~cdia427~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Courage + PATCH_IF FILE_EXISTS_IN_GAME cdia428.itm BEGIN ADD_STORE_ITEM ~cdia428~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Fear + PATCH_IF FILE_EXISTS_IN_GAME cdia429.itm BEGIN ADD_STORE_ITEM ~cdia429~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // Emotion: Hope + PATCH_IF FILE_EXISTS_IN_GAME cdia430.itm BEGIN ADD_STORE_ITEM ~cdia430~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #2 END // mordenkainen's force missiles + PATCH_IF FILE_EXISTS_IN_GAME cdia432.itm BEGIN ADD_STORE_ITEM ~cdia432~ AFTER ~scrl5m~ #1 #0 #0 ~IDENTIFIED~ #3 END // Vitriolic Sphere + PATCH_IF FILE_EXISTS_IN_GAME cdia524.itm BEGIN ADD_STORE_ITEM ~cdia524~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #3 END // Shroud of Flame + PATCH_IF FILE_EXISTS_IN_GAME cdia525.itm BEGIN ADD_STORE_ITEM ~cdia525~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Demi-Shadow Monsters + PATCH_IF FILE_EXISTS_IN_GAME cdia526.itm BEGIN ADD_STORE_ITEM ~cdia526~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Summon Shadow + PATCH_IF FILE_EXISTS_IN_GAME cdia528.itm BEGIN ADD_STORE_ITEM ~cdia528~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #1 END // Contact Other Plane + PATCH_IF FILE_EXISTS_IN_GAME cdia533.itm BEGIN ADD_STORE_ITEM ~cdia533~ AFTER ~scrl2f~ #1 #0 #0 ~IDENTIFIED~ #2 END // Conjure water elemental + BUT_ONLY IF_EXISTS + +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +///// \\\\\ +///// IWD divine spell pack \\\\\ +///// \\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ + +BEGIN @4000 DESIGNATED 40 + +INCLUDE ~iwdification/lib/spell_prep.tpa~ + +///// \\\\\ +///// CLERIC_CURSE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CURSE~) OR override_divine) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi237.pro~ + + ADD_SPELL ~iwdification/spl/cdid112.spl~ 1 1 CLERIC_CURSE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4010 // name + SAY 0x50 @4011 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14406 parameter1 = string_cursed END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi237 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid112 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid112.itm~ + SAY 0x0c @4010 + SAY 0x54 @4011 + LPF cd_scroll INT_VAR target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid112a.bam~ ~override~ + ~iwdification/bam/cdid112b.bam~ ~override~ + ~iwdification/bam/cdid112c.bam~ ~override~ + ~iwdification/bam/cdiare1x.bam~ ~override~ + ~iwdification/bam/cdicurse.bam~ ~override~ + ~iwdification/vvc/cdibless.vvc~ ~override~ + ~iwdification/vvc/cdicurse.vvc~ ~override~ + ~iwdification/wav/cdiee04.wav~ ~override~ + ~iwdification/wav/cdiep32.wav~ ~override~ + ~iwdification/wav/cdiep99.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_CAUSE_LIGHT_WOUNDS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_LIGHT_WOUNDS~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid114.spl~ 1 1 CLERIC_CAUSE_LIGHT_WOUNDS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4020 // name + SAY 0x50 @4021 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid114 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd114 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd114 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd114 END // race = parameter1 + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid114.itm~ + SAY 0x0c @4020 + SAY 0x54 @4021 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good, cleric + + COPY ~iwdification/bam/cdid114a.bam~ ~override~ + ~iwdification/bam/cdid114b.bam~ ~override~ + ~iwdification/bam/cdid114c.bam~ ~override~ + ~iwdification/bam/cdicldam.bam~ ~override~ + ~iwdification/vvc/cdicldam.vvc~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd114.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_SUNSCORCH \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SUNSCORCH~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdisunsc.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid115.spl~ 1 1 CLERIC_SUNSCORCH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4030 // name + SAY 0x50 @4031 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdisunsc END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 326 opcode = 177 parameter1 = 4 parameter2 = 3 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 326 opcode = 177 parameter1 = 164 parameter2 = 4 END // race = myconid + READ_SHORT 0x68 abil_num + FOR (index = 0 ; index < abil_num ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 parameter1 = ((index + 1) / 2) dicesize = 3 special = 0 END + LPF CLONE_EFFECT INT_VAR header = index match_opcode = 12 parameter1 = ((index + 0) / 2) savingthrow = 0 END + END + PATCH_FOR_EACH res IN cdid1151 cdid1152 cdid1153 cdid1154 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 power = 1 timing = 1 resist_dispel = 3 STR_VAR resource = EVAL ~%res%~ END + END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid115.itm~ + SAY 0x0c @4030 + SAY 0x54 @4031 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 100 price = 100 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid115a.bam~ ~override~ + ~iwdification/bam/cdid115b.bam~ ~override~ + ~iwdification/bam/cdid115c.bam~ ~override~ + ~iwdification/bam/cdisunsc.bam~ ~override~ + ~iwdification/spl/cdid115d.spl~ ~override~ + ~iwdification/wav/cdiep39.wav~ ~override~ + + ACTION_IF ee_game BEGIN + + COPY ~iwdification/vvc/cdisunsc.vvc~ ~override~ + + END ELSE BEGIN + + COPY ~iwdification/vvc/cdid1151.vvc~ ~override~ + ~iwdification/vvc/cdid1152.vvc~ ~override~ + ~iwdification/vvc/cdid1153.vvc~ ~override~ + ~iwdification/vvc/cdid1154.vvc~ ~override~ + + COPY ~iwdification/eff/326.eff~ ~override/cdid115d.eff~ + WRITE_ASCII 0x30 ~cdid115d~ + + END + +END + +///// \\\\\ +///// CLERIC_CURE_MODERATE_WOUNDS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CURE_MODERATE_WOUNDS~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid217.spl~ 1 2 CLERIC_CURE_MODERATE_WOUNDS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4040 // name + SAY 0x50 @4041 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid217 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 61 END + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd114 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd114 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd114 END // race = parameter1 + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid217.itm~ + SAY 0x0c @4040 + SAY 0x54 @4041 + LPF cd_scroll INT_VAR range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid217a.bam~ ~override~ + ~iwdification/bam/cdid217b.bam~ ~override~ + ~iwdification/bam/cdid217c.bam~ ~override~ + ~iwdification/bam/cdicmwou.bam~ ~override~ + ~iwdification/vvc/cdicmwou.vvc~ ~override~ + ~iwdification/wav/cdiep26.wav~ ~override~ + + // add as option to temples that offer cure light wounds + OUTER_SET desc = RESOLVE_STR_REF(@4042) + APPEND ~speldesc.2da~ ~sppr217 %desc%~ + COPY_EXISTING_REGEXP GLOB ~^.+\.sto$~ ~override~ + READ_LONG 0x70 cure_off + READ_LONG 0x74 cure_num + SET insert_cost = 0 + SET insert_off = 0 + FOR (index = 0 ; index < cure_num ; ++index) BEGIN + READ_ASCII (cure_off + (index * 0x0c)) spell + PATCH_IF ("%spell%" STRING_COMPARE_REGEXP "sppr1[0-9][0-9]" = 0) BEGIN + SET insert_off = (cure_off + ((index + 1) * 0x0c)) + PATCH_IF ("%spell%" STRING_COMPARE_CASE "sppr103" = 0) BEGIN + READ_LONG (cure_off + 0x08 + (index * 0x0c)) insert_cost + END + END + END + PATCH_IF insert_off AND insert_cost BEGIN + INSERT_BYTES (insert_off ) 0x0c + WRITE_ASCIIE (insert_off ) ~%current_spell_res%~ #8 + WRITE_LONG (insert_off + 0x08) (insert_cost * 2) + WRITE_LONG 0x74 (THIS + 1) + PATCH_FOR_EACH off IN 0x2c 0x34 0x4c BEGIN // item, sale, drink offsets + READ_LONG off val // read offset + PATCH_IF val > cure_off BEGIN // if after cure list... + WRITE_LONG off (THIS + 0x0c) // push back for new cure + END + END + END + BUT_ONLY + +END + +///// \\\\\ +///// CLERIC_ALICORN_LANCE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ALICORN_LANCE~) OR override_divine) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi298.pro~ + + ADD_SPELL ~iwdification/spl/cdid218.spl~ 1 2 CLERIC_ALICORN_LANCE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4050 // name + SAY 0x50 @4051 // descript + SAY 0x2ae @4052 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi298 END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid218 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid218.itm~ + SAY 0x0c @4050 + SAY 0x54 @4051 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 100 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid218a.bam~ ~override~ + ~iwdification/bam/cdid218b.bam~ ~override~ + ~iwdification/bam/cdid218c.bam~ ~override~ + ~iwdification/bam/cdilanct.bam~ ~override~ + ~iwdification/wav/cdiee08.wav~ ~override~ + ~iwdification/wav/cditra57.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_BEAST_CLAW \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_BEAST_CLAW~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid219.spl~ 1 2 CLERIC_BEAST_CLAW + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4060 // name + SAY 0x50 @4061 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid219.itm~ + SAY 0x0c @4060 + SAY 0x54 @4061 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdibclaw.itm~ ~override~ + SAY 0x08 @4060 + SAY 0x0c @4060 + + COPY ~iwdification/bam/cdid219a.bam~ ~override~ + ~iwdification/bam/cdid219b.bam~ ~override~ + ~iwdification/bam/cdid219c.bam~ ~override~ + ~iwdification/bam/cdialter.bam~ ~override~ + ~iwdification/bam/cdibclaw.bam~ ~override~ + ~iwdification/vvc/cdialter.vvc~ ~override~ + ~iwdification/wav/cdiep07.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_CAUSE_MODERATE_WOUNDS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_MODERATE_WOUNDS~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid220.spl~ 1 2 CLERIC_CAUSE_MODERATE_WOUNDS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4070 // name + SAY 0x50 @4071 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid220 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd220 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd220 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd220 END // race = parameter1 + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid220.itm~ + SAY 0x0c @4070 + SAY 0x54 @4071 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 200 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric + + COPY ~iwdification/bam/cdid220a.bam~ ~override~ + ~iwdification/bam/cdid220b.bam~ ~override~ + ~iwdification/bam/cdid220c.bam~ ~override~ + ~iwdification/bam/cdicmdam.bam~ ~override~ + ~iwdification/vvc/cdicmdam.vvc~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd220.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_PRAYER \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_PRAYER~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4080) STR_VAR bam_file = cdid316d RET icon END + + ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ + ADD_PROJECTILE ~iwdification/pro/cdivrpo.pro~ + + ADD_SPELL ~iwdification/spl/cdid316.spl~ 1 3 CLERIC_PRAYER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4080 // name + SAY 0x50 @4081 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid316.itm~ + SAY 0x0c @4080 + SAY 0x54 @4081 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/spl/cdid316b.spl~ ~override~ + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40257 parameter1 = RESOLVE_STR_REF(@4082) END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid316b END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/spl/cdid316g.spl~ ~override~ + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrpo END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40256 parameter1 = RESOLVE_STR_REF(@4083) END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 183 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 183 parameter2 = 18 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid316g END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/bam/cdid316a.bam~ ~override~ + ~iwdification/bam/cdid316b.bam~ ~override~ + ~iwdification/bam/cdid316c.bam~ ~override~ + ~iwdification/bam/cdid316d.bam~ ~override~ + ~iwdification/bam/cdiprayh.bam~ ~override~ + ~iwdification/vvc/cdiprayg.vvc~ ~override~ + ~iwdification/vvc/cdiprayh.vvc~ ~override~ + ~iwdification/wav/cdiep31.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_CAUSE_DISEASE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_DISEASE~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid320.spl~ 1 3 CLERIC_CAUSE_DISEASE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4090 // name + SAY 0x50 @4091 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid320 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd320 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd320 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd320 END // race = parameter1 + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid320.itm~ + SAY 0x0c @4090 + SAY 0x54 @4091 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric + + COPY ~iwdification/bam/cdid320a.bam~ ~override~ + ~iwdification/bam/cdid320b.bam~ ~override~ + ~iwdification/bam/cdid320c.bam~ ~override~ + ~iwdification/bam/cdidise.bam~ ~override~ + ~iwdification/vvc/cdidise.vvc~ ~override~ + ~iwdification/wav/cdiep108.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd320.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_EXALTATION \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_EXALTATION~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4100) STR_VAR bam_file = cdid321d RET icon END + + ADD_SPELL ~iwdification/spl/cdid321.spl~ 1 3 CLERIC_EXALTATION + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4100 // name + SAY 0x50 @4101 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid321 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 174 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 174 END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 206 target = 1 parameter1 = 0 parameter2 = 0 END // prevent self-cast + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid321.itm~ + SAY 0x0c @4100 + SAY 0x54 @4101 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/bam/cdid321a.bam~ ~override~ + ~iwdification/bam/cdid321b.bam~ ~override~ + ~iwdification/bam/cdid321c.bam~ ~override~ + ~iwdification/bam/cdid321d.bam~ ~override~ + ~iwdification/bam/cdiexalt.bam~ ~override~ + ~iwdification/vvc/cdiexalt.vvc~ ~override~ + ~iwdification/wav/cdiep106.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_MOONBLADE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MOONBLADE~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid322.spl~ 1 3 CLERIC_MOONBLADE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4110 // name + SAY 0x50 @4111 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid322.itm~ + SAY 0x0c @4110 + SAY 0x54 @4111 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/itm/cdimoonb.itm~ ~override~ + SAY 0x08 @4110 + SAY 0x0c @4110 + LPF ALTER_EFFECT STR_VAR match_resource = moonbla resource = cdimoonb END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 12 match_parameter1 = 0 END // delete undead damage, since it's going through an EFF + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 177 parameter1 = 4 parameter2 = 3 timing = 1 duration = 0 END + END + + COPY ~iwdification/bam/cdid322a.bam~ ~override~ + ~iwdification/bam/cdid322b.bam~ ~override~ + ~iwdification/bam/cdid322c.bam~ ~override~ + ~iwdification/bam/cdiinvoc.bam~ ~override~ + ~iwdification/bam/cdimoonb.bam~ ~override~ + ~iwdification/vvc/cdiinvoc.vvc~ ~override~ + ~iwdification/wav/cdiem06.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/cdimoonb.eff~ ~override~ + + END + +END + +///// \\\\\ +///// CLERIC_CIRCLE_OF_BONES \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CIRCLE_OF_BONES~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid323.spl~ 1 3 CLERIC_CIRCLE_OF_BONES + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4120 // name + SAY 0x50 @4121 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 126 opcode = 176 END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid323.itm~ + SAY 0x0c @4120 + SAY 0x54 @4121 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric + + COPY ~iwdification/bam/cdid323a.bam~ ~override~ + ~iwdification/bam/cdid323b.bam~ ~override~ + ~iwdification/bam/cdid323c.bam~ ~override~ + ~iwdification/bam/cdibone1.bam~ ~override~ + ~iwdification/bam/cdibone2.bam~ ~override~ + ~iwdification/spl/cdid323d.spl~ ~override~ + ~iwdification/vvc/cdibone1.vvc~ ~override~ + ~iwdification/vvc/cdibone2.vvc~ ~override~ + ~iwdification/wav/cdiafp22.wav~ ~override~ + ~iwdification/wav/cdiarp21.wav~ ~override~ + ~iwdification/wav/cdiep101.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_SPIKE_GROWTH \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIKE_GROWTH~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi300.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi300a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid324.spl~ 1 3 CLERIC_SPIKE_GROWTH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4130 // name + SAY 0x50 @4131 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300 END + END ELSE BEGIN + LPF DELETE_EFFECT END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300a END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 timing = 1 parameter2 = 2 STR_VAR resource = cdid324 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 timing = 1 STR_VAR resource = cdisgrwa END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid324.itm~ + SAY 0x0c @4130 + SAY 0x54 @4131 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid324a.bam~ ~override~ + ~iwdification/bam/cdid324b.bam~ ~override~ + ~iwdification/bam/cdid324c.bam~ ~override~ + ~iwdification/bam/cdisgrwa.bam~ ~override~ + ~iwdification/bam/cdisgrwx.bam~ ~override~ + ~iwdification/vvc/cdisgrwa.vvc~ ~override~ + ~iwdification/vvc/cdisgrwx.vvc~ ~override~ + ~iwdification/wav/cdiafp24.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 60 STR_VAR code = cdid324 anim = cdisgrwa END + + COPY ~iwdification/spl/cdid324.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi300a END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 2 duration = 3 STR_VAR resource = cdisgrwx END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid324 END + + END + +END + +///// \\\\\ +///// CLERIC_CLOUDBURST \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CLOUDBURST~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi301.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi301a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid325.spl~ 1 3 CLERIC_CLOUDBURST + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4140 // name + SAY 0x50 @4141 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301 END + PATCH_FOR_EACH res IN firau1d2 firau3d6 frostd10 spin187 spin128 BEGIN // leftover iwdee references + LPF DELETE_EFFECT STR_VAR match_resource = EVAL ~%res%~ END + END + LPF ALTER_EFFECT STR_VAR match_resource = cdid325 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT STR_VAR match_resource = fsalring resource = cdisalfi END // iwdifcation moves aura visuals to weapons + LPF ALTER_EFFECT STR_VAR match_resource = csalring resource = cdisalfr END // iwdifcation moves aura visuals to weapons + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301a END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid325 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid325.itm~ + SAY 0x0c @4140 + SAY 0x54 @4141 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid325a.bam~ ~override~ + ~iwdification/bam/cdid325b.bam~ ~override~ + ~iwdification/bam/cdid325c.bam~ ~override~ + ~iwdification/wav/cdiarp24.wav~ ~override~ + + ACTION_IF ee_game BEGIN + + COPY ~iwdification/bam/cdibacld.bam~ ~override~ + ~iwdification/bam/cdibhcld.bam~ ~override~ + ~iwdification/vvc/cdibhcld.vvc~ ~override~ + + END ELSE BEGIN + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 1 cloud_dur = 12 zosa = 1 STR_VAR code = cdid325 anim = cdibacld END + + COPY_EXISTING ~iwdification/spl/cdid325.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi301a END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + LPF DELETE_EFFECT INT_VAR match_opcode = 206 END + LPF CD_SPLIT_SAVE_DAMAGE END + PATCH_FOR_EACH res IN cdifire6 cdifros6 cdia524 cdia524b BEGIN // leftover iwdee references + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = EVAL ~%res%~ END + END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 3 parameter1 = 187 parameter2 = 5 timing = 1 resist_dispel = 1 STR_VAR resource = cdid325c END // extra dam for class: fire elemental + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 3 parameter1 = 146 parameter2 = 5 timing = 1 resist_dispel = 1 STR_VAR resource = cdid325c END // extra dam for class: winter wolf + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid325 END + + COPY ~iwdification/bam/cdid325v.bam~ ~override/cdibacld.bam~ + ~iwdification/eff/cdid325c.eff~ ~override~ + + END + +END + +///// \\\\\ +///// CLERIC_MOLD_TOUCH \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MOLD_TOUCH~) OR override_divine)) BEGIN + + ADD_SPELL ~iwdification/spl/cdid326.spl~ 1 3 CLERIC_MOLD_TOUCH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4150 // name + SAY 0x50 @4151 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid326 resource = EVAL ~%DEST_RES%~ END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid326.itm~ + SAY 0x0c @4150 + SAY 0x54 @4151 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid326a.bam~ ~override~ + ~iwdification/bam/cdid326b.bam~ ~override~ + ~iwdification/bam/cdid326c.bam~ ~override~ + ~iwdification/bam/cdimoldt.bam~ ~override~ + ~iwdification/vvc/cdimoldt.vvc~ ~override~ + ~iwdification/wav/cdiep107.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_STORM_SHELL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STORM_SHELL~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4160) STR_VAR bam_file = cdid327d RET icon END + + ADD_SPELL ~iwdification/spl/cdid327.spl~ 1 3 CLERIC_STORM_SHELL + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4160 // name + SAY 0x50 @4161 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 140 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 140 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid327.itm~ + SAY 0x0c @4160 + SAY 0x54 @4161 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid327a.bam~ ~override~ + ~iwdification/bam/cdid327b.bam~ ~override~ + ~iwdification/bam/cdid327c.bam~ ~override~ + ~iwdification/bam/cdid327d.bam~ ~override~ + ~iwdification/bam/cdisshel.bam~ ~override~ + ~iwdification/vvc/cdistorm.vvc~ ~override~ + ~iwdification/wav/cdiafp25.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_CAUSE_MEDIUM_WOUNDS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CAUSE_MEDIUM_WOUNDS~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid330.spl~ 1 3 CLERIC_CAUSE_MEDIUM_WOUNDS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4170 // name + SAY 0x50 @4171 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid330 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd330 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd330 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd330 END // race = parameter1 + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid330.itm~ + SAY 0x0c @4170 + SAY 0x54 @4171 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT12 + BIT21 + BIT30) range = 1 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-good cleric + + COPY ~iwdification/bam/cdid330a.bam~ ~override~ + ~iwdification/bam/cdid330b.bam~ ~override~ + ~iwdification/bam/cdid330c.bam~ ~override~ + ~iwdification/bam/cdicmdam.bam~ ~override~ + ~iwdification/vvc/cdicmdam.vvc~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd330.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_FAVOR_OF_ILMATER \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_FAVOR_OF_ILMATER~) OR override_divine)) BEGIN + + ADD_SPELL ~iwdification/spl/cdid331.spl~ 1 3 CLERIC_FAVOR_OF_ILMATER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4180 // name + SAY 0x50 @4181 // descript + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = sppr315 resource = EVAL ~%DEST_RES%~ END // iwdee nightly has bug here + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid331 resource = EVAL ~%DEST_RES%~ END // for when bug is fixed + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid331.itm~ + SAY 0x0c @4180 + SAY 0x54 @4181 + LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT12 + BIT21 + BIT30) range = 1 opcode = 146 target_eff = 2 price = 300 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-evil cleric + + COPY ~iwdification/bam/cdid331a.bam~ ~override~ + ~iwdification/bam/cdid331b.bam~ ~override~ + ~iwdification/bam/cdid331c.bam~ ~override~ + ~iwdification/bam/cdicmdam.bam~ ~override~ + ~iwdification/bam/cdicmwou.bam~ ~override~ + ~iwdification/vvc/cdicmdam.vvc~ ~override~ + ~iwdification/vvc/cdicmwou.vvc~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + ~iwdification/wav/cdiep26.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_GIANT_INSECT \\\\\ +///// \\\\\ + +ACTION_IF (anim_beetle AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_GIANT_INSECT~) OR override_divine)) BEGIN // requires beetle animation, either EE or vanilla + infinity animations + + ADD_PROJECTILE ~iwdification/pro/cdi282.pro~ + + LAF cd_new_summon_table STR_VAR descript = "Giant_insect" 2da_file = cdiinsct RET table END + + ADD_SPELL ~iwdification/spl/cdid418.spl~ 1 4 CLERIC_GIANT_INSECT + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4190 // name + SAY 0x50 @4191 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 331 parameter2 = table END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 215 parameter2 = 2 STR_VAR resource = cdimsm1h END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 probability1 = 49 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END + LPF CLONE_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END + LPF ALTER_EFFECT INT_VAR match_opcode = 331 opcode = 127 parameter1 = 1 parameter2 = 0 dicesize = 0 dicenumber = 0 STR_VAR resource = cdiinsct END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid418.itm~ + SAY 0x0c @4190 + SAY 0x54 @4191 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY_EXISTING ~cdi282.pro~ ~override~ + SAY 0x30 @4193 + + COMPILE ~iwdification/baf/cdibbcld.baf~ + + COPY ~iwdification/spl/cdibombb.spl~ ~override~ + SAY 0xce @4193 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi282 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14073 parameter1 = string_deafness END + + LAF cd_animation STR_VAR code = e220 END // 57888 MBBM beetle_black + COPY ~iwdification/cre/cdiibomb.cre~ ~override~ + SAY 0x08 @4192 + SAY 0x0c @4192 + WRITE_LONG 0x28 anim_beetle + + COPY ~iwdification/cre/cdiiborb.cre~ ~override~ + SAY 0x08 @3013 + SAY 0x0c @3013 + WRITE_LONG 0x28 anim_beetle + + COPY ~iwdification/itm/cdis5-20.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + + COPY ~iwdification/itm/cdifring.itm~ ~override~ + LPF ALTER_EFFECT STR_VAR match_resource = spin191 resource = cdibombb END + + COPY ~iwdification/bam/cdid418a.bam~ ~override~ + ~iwdification/bam/cdid418b.bam~ ~override~ + ~iwdification/bam/cdid418c.bam~ ~override~ + ~iwdification/bam/cdiasm1x.bam~ ~override~ + ~iwdification/bam/cdimsm1h.bam~ ~override~ + ~iwdification/bam/cdisclda.bam~ ~override~ + ~iwdification/bam/cdiscldr.bam~ ~override~ + ~iwdification/vvc/cdiasm1x.vvc~ ~override~ + ~iwdification/vvc/cdimsm1h.vvc~ ~override~ + ~iwdification/wav/cdiem47.wav~ ~override~ + + COPY ~iwdification/2da/cdiinsct.2da~ ~override~ + PATCH_IF !ee_game BEGIN// delete 2nd & 3rd columns for vanilla summon tables + REPLACE_TEXTUALLY ~[ %TAB%]+HitAnimation[ %TAB%]+AreaHitAnimation~ ~~ + REPLACE_TEXTUALLY ~[ %TAB%]+cdimsm1h[ %TAB%]+.+$~ ~~ + END + +END + +///// \\\\\ +///// CLERIC_PRODUCE_FIRE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_PRODUCE_FIRE~) OR override_divine) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi215.pro~ + + ADD_SPELL ~iwdification/spl/cdid419.spl~ 1 4 CLERIC_PRODUCE_FIRE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4200 // name + SAY 0x50 @4201 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi215 END + LPF ALTER_EFFECT STR_VAR match_resource = cdid419 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 timing = 1 resist_dispel = 3 STR_VAR resource = cdiprfir END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid419.itm~ + SAY 0x0c @4200 + SAY 0x54 @4201 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid419a.bam~ ~override~ + ~iwdification/bam/cdid419b.bam~ ~override~ + ~iwdification/bam/cdid419c.bam~ ~override~ + ~iwdification/bam/cdipfira.bam~ ~override~ + ~iwdification/bam/cdipfirx.bam~ ~override~ + ~iwdification/vvc/cdiprfir.vvc~ ~override~ + ~iwdification/wav/cdiarp03.wav~ ~override~ + ~iwdification/wav/cdiep45.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY_EXISTING ~cdi215.pro~ ~override~ + WRITE_BYTE 0x217 255 + + END + +END + +///// \\\\\ +///// CLERIC_STATIC_CHARGE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STATIC_CHARGE~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4210) STR_VAR bam_file = cdid420d RET icon END + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdistatc.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid420.spl~ 1 4 CLERIC_STATIC_CHARGE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4210 // name + SAY 0x50 @4211 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid420 resource = EVAL ~%DEST_RES%~ END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdid420b END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 42 parameter2 = icon END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR target = 1 projectile = 1 range = 30 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 42 END + LPF ALTER_EFFECT INT_VAR target = 2 dicenumber = 0 dicesize = 0 END + LPF CD_CONVERT_333 STR_VAR 333spell = cdid420b END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid420.itm~ + SAY 0x0c @4210 + SAY 0x54 @4211 + PATCH_IF ee_game BEGIN + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + END ELSE BEGIN + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 1 range = 30 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + END + + COPY ~iwdification/spl/cdid420b.spl~ ~override~ + SAY 0x9e @4212 + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdistatc END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR target = 1 projectile = 1 range = 30 END + LPF ALTER_EFFECT INT_VAR match_opcode = 12 dicenumber = 4 dicesize = 8 special = 0 END + LPF CLONE_EFFECT INT_VAR match_opcode = 12 dicenumber = 5 savingthrow = 0 END + LPF CD_EXTEND-O-MATIC INT_VAR base_dur = 0 step_dur = 0 level_cap = 20 min_lev_alt = 7 END + READ_SHORT 0x68 abil_num + FOR (index = 0 ; index < abil_num ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 match_savingthrow = 0 dicenumber = ((index + 9) / 2) END + LPF ALTER_EFFECT INT_VAR header = index match_opcode = 12 match_savingthrow = BIT0 dicenumber = ((index + 10) / 2) END + END + END + + COPY ~iwdification/bam/cdid420a.bam~ ~override~ + ~iwdification/bam/cdid420b.bam~ ~override~ + ~iwdification/bam/cdid420c.bam~ ~override~ + ~iwdification/bam/cdid420d.bam~ ~override~ + ~iwdification/bam/cdistath.bam~ ~override~ + ~iwdification/vvc/cdistath.vvc~ ~override~ + ~iwdification/wav/cdiep42.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_RECITATION \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_RECITATION~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4220) STR_VAR bam_file = cdid316d RET icon END + + ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ + ADD_PROJECTILE ~iwdification/pro/cdivrpo.pro~ + + ADD_SPELL ~iwdification/spl/cdid421.spl~ 1 4 CLERIC_RECITATION + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4220 // name + SAY 0x50 @4221 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid421.itm~ + SAY 0x0c @4220 + SAY 0x54 @4221 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/spl/cdid421b.spl~ ~override~ + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40257 parameter1 = RESOLVE_STR_REF(@4082) END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid421b END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/spl/cdid421g.spl~ ~override~ + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrpo END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 40256 parameter1 = RESOLVE_STR_REF(@4083) END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 175 parameter2 = icon END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 175 parameter2 = 18 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdid421g END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/bam/cdid421a.bam~ ~override~ + ~iwdification/bam/cdid421b.bam~ ~override~ + ~iwdification/bam/cdid421c.bam~ ~override~ + ~iwdification/bam/cdid316d.bam~ ~override~ + ~iwdification/bam/cdirecih.bam~ ~override~ + ~iwdification/vvc/cdirecig.vvc~ ~override~ + ~iwdification/vvc/cdirecih.vvc~ ~override~ + ~iwdification/wav/cdiep44.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_BLOOD_RAGE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_BLOOD_RAGE~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4230) STR_VAR bam_file = cdid422d RET icon END + + ADD_SPELL ~iwdification/spl/cdid422.spl~ 1 4 CLERIC_BLOOD_RAGE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4230 // name + SAY 0x50 @4231 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid422 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 1280 parameter1 = string_stunned END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14022 parameter1 = string_healed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14043 parameter1 = string_stun END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35473 parameter1 = string_healed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END + PATCH_IF ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 318 STR_VAR match_resource = cdid422 END // should be last + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 176 parameter2 = icon END + LPF CLONE_EFFECT INT_VAR match_opcode = 324 opcode = 318 match_parameter2 = 50 parameter2 = 0 STR_VAR insert = last END // reinserting as last + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 opcode = 206 match_parameter2 = 50 parameter2 = 0 STR_VAR insert = last END // reinserting as last + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF DELETE_EFFECT INT_VAR match_opcode = 328 END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 176 parameter2 = 4 END + PATCH_FOR_EACH ea IN 0 1 28 29 30 31 126 128 199 200 201 202 254 255 BEGIN // all ea values except charmed, controlled, ally, familiar, pc + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 4 parameter1 = ea parameter2 = 2 resist_dispel = 3 duration = 120 insert_point = 0 STR_VAR resource = cdixd422 END + END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 power = 4 parameter1 = 16 parameter2 = 8 resist_dispel = 3 duration = 120 insert_point = 0 STR_VAR resource = cdixd422 END // lawful + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid422.itm~ + SAY 0x0c @4230 + SAY 0x54 @4231 + LPF cd_scroll INT_VAR unusable0 = (BIT4 + BIT12 + BIT21 + BIT30) price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-lawful cleric + + COPY ~iwdification/bam/cdid422a.bam~ ~override~ + ~iwdification/bam/cdid422b.bam~ ~override~ + ~iwdification/bam/cdid422c.bam~ ~override~ + ~iwdification/bam/cdid422d.bam~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd422.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_CLOUD_OF_PESTILENCE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_CLOUD_OF_PESTILENCE~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi309.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi309a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid423.spl~ 1 4 CLERIC_CLOUD_OF_PESTILENCE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4240 // name + SAY 0x50 @4241 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309 END + LPF ALTER_EFFECT STR_VAR match_resource = cdid423 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309a END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid423 END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 1 duration = 24 STR_VAR resource = cdid423 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid423.itm~ + SAY 0x0c @4240 + SAY 0x54 @4241 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3 + BIT12 + BIT21 + BIT30) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil cleric + + COPY ~iwdification/bam/cdid423a.bam~ ~override~ + ~iwdification/bam/cdid423b.bam~ ~override~ + ~iwdification/bam/cdid423c.bam~ ~override~ + ~iwdification/bam/cdicopes.bam~ ~override~ + ~iwdification/wav/cdiarp25.wav~ ~override~ + + ACTION_IF ee_game BEGIN + + APPEND ~clearair.2da~ ~Cloud_of_Pest %cdi309%~ + + END ELSE BEGIN + + APPEND ~clearair.2da~ ~Cloud_of_Pest %cdi309a%~ + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 9 cloud_dur = 24 zosa = 1 STR_VAR code = cdid423 anim = cdicopes END + + COPY ~iwdification/spl/cdid423.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi309a END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid423 END + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 39 END // class = paladin, but bg2 paladins don't have disease immunity + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37800 parameter1 = string_blinded END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 9 opcode = 177 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixd423 END // race = elemental + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 27 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd423 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 1 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd423 END // general = undead + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd423.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_UNFAILING_ENDURANCE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_UNFAILING_ENDURANCE~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid424.spl~ 1 4 CLERIC_UNFAILING_ENDURANCE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4250 // name + SAY 0x50 @4251 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid424.itm~ + SAY 0x0c @4250 + SAY 0x54 @4251 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/bam/cdid424a.bam~ ~override~ + ~iwdification/bam/cdid424b.bam~ ~override~ + ~iwdification/bam/cdid424c.bam~ ~override~ + ~iwdification/bam/cdinecro.bam~ ~override~ + ~iwdification/vvc/cdinecro.vvc~ ~override~ + ~iwdification/wav/cdiep112.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_STAR_METAL_CUDGEL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STAR_METAL_CUDGEL~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid425.spl~ 1 4 CLERIC_STAR_METAL_CUDGEL + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4260 // name + SAY 0x50 @4261 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid425.itm~ + SAY 0x0c @4260 + SAY 0x54 @4261 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 5 range = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/itm/cdismcud.itm~ ~override~ + SAY 0x08 @4260 + SAY 0x0c @4260 + + COPY ~iwdification/bam/cdid425a.bam~ ~override~ + ~iwdification/bam/cdid425b.bam~ ~override~ + ~iwdification/bam/cdid425c.bam~ ~override~ + ~iwdification/bam/cdiconju.bam~ ~override~ + ~iwdification/bam/cdismcud.bam~ ~override~ + ~iwdification/eff/cdismcud.eff~ ~override~ + ~iwdification/vvc/cdiconju.vvc~ ~override~ + ~iwdification/wav/cdiep02.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_SMASHING_WAVE \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SMASHING_WAVE~) OR override_divine)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdiswave.pro~ + + ADD_SPELL ~iwdification/spl/cdid426.spl~ 1 4 CLERIC_SMASHING_WAVE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4270 // name + SAY 0x50 @4271 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiswave END + LPF ALTER_EFFECT STR_VAR match_resource = cdid426 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37340 parameter1 = string_uncon END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 20438 parameter1 = string_uncon END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid426.itm~ + SAY 0x0c @4270 + SAY 0x54 @4271 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid426a.bam~ ~override~ + ~iwdification/bam/cdid426b.bam~ ~override~ + ~iwdification/bam/cdid426c.bam~ ~override~ + ~iwdification/bam/cdiswavh.bam~ ~override~ + ~iwdification/bam/cdiswavx.bam~ ~override~ + ~iwdification/vvc/cdiswavh.vvc~ ~override~ + ~iwdification/wav/cdiep110.wav~ ~override~ + ~iwdification/wav/cditra56.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_THORN_SPRAY \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_THORN_SPRAY~) OR override_divine) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi303.pro~ + + ADD_SPELL ~iwdification/spl/cdid427.spl~ 1 4 CLERIC_THORN_SPRAY + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4280 // name + SAY 0x50 @4281 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi303 END + PATCH_IF !ee_game BEGIN + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid427.itm~ + SAY 0x0c @4280 + SAY 0x54 @4281 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 30 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid427a.bam~ ~override~ + ~iwdification/bam/cdid427b.bam~ ~override~ + ~iwdification/bam/cdid427c.bam~ ~override~ + ~iwdification/bam/cditspra.bam~ ~override~ + ~iwdification/wav/cditra61.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY_EXISTING ~cdi303.pro~ ~override~ + WRITE_BYTE 0x217 11 // re-use cone of cold + WRITE_BYTE 0x218 0 + + END + +END + +///// \\\\\ +///// CLERIC_WALL_OF_MOONLIGHT \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_WALL_OF_MOONLIGHT~) OR override_divine)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdiwallm.pro~ + + ADD_SPELL ~iwdification/spl/cdid428.spl~ 1 4 CLERIC_WALL_OF_MOONLIGHT + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4290 // name + SAY 0x50 @4291 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwallm END + LPF ALTER_EFFECT STR_VAR match_resource = cdid428 resource = EVAL ~%DEST_RES%~ END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid428.itm~ + SAY 0x0c @4290 + SAY 0x54 @4291 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 400 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/bam/cdid428a.bam~ ~override~ + ~iwdification/bam/cdid428b.bam~ ~override~ + ~iwdification/bam/cdid428c.bam~ ~override~ + ~iwdification/bam/cdimoonx.bam~ ~override~ + ~iwdification/spl/cdid428a.spl~ ~override~ + ~iwdification/spl/cdid428b.spl~ ~override~ + ~iwdification/vvc/cdimoonx.vvc~ ~override~ + ~iwdification/wav/cdiafp21.wav~ ~override~ + ~iwdification/wav/cdiarp22.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4300) STR_VAR bam_file = cdid316d RET icon END + + ADD_PROJECTILE ~iwdification/pro/cdi266.pro~ + + ADD_SPELL ~iwdification/spl/cdid518.spl~ 1 5 CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4300 // name + SAY 0x50 @4301 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi266 END + PATCH_IF !ee_game BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + LPF DELETE_EFFECT INT_VAR match_opcode = 146 STR_VAR match_resource = cdirwf00 END + PATCH_FOR_EACH align IN 17 18 19 33 34 35 49 50 51 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 power = 5 parameter1 = align parameter2 = 8 timing = 1 resist_dispel = 3 STR_VAR resource = EVAL ~cdirwf%align%~ END + END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid518.itm~ + SAY 0x0c @4300 + SAY 0x54 @4301 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 40 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/spl/cdirwf00.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 36035 parameter1 = string_hasted END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 parameter2 = icon END + END ELSE BEGIN // in non-ee, characters will get 00 AND 99 if matching alignment, so need to strip out anything already covered in 99 + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 END + PATCH_FOR_EACH op IN 321 8 174 215 18 93 BEGIN // cosmetics, sound, fatigue, hp bonus + LPF DELETE_EFFECT INT_VAR match_opcode = op END + END + PATCH_FOR_EACH op IN 54 33 34 35 36 37 BEGIN // already get +1 from 99, so only bump another +1 here + LPF ALTER_EFFECT INT_VAR match_opcode = op parameter1 = 1 END + END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdirwf00 END + END + + COPY ~iwdification/spl/cdirwf99.spl~ ~override~ + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 184 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = cdirwf99 END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/bam/cdid518a.bam~ ~override~ + ~iwdification/bam/cdid518b.bam~ ~override~ + ~iwdification/bam/cdid518c.bam~ ~override~ + ~iwdification/bam/cdid316d.bam~ ~override~ + ~iwdification/bam/cdiabjux.bam~ ~override~ + ~iwdification/bam/cdirwtfh.bam~ ~override~ + ~iwdification/vvc/cdigabju.vvc~ ~override~ + ~iwdification/vvc/cdirwtfg.vvc~ ~override~ + ~iwdification/vvc/cdirwtfh.vvc~ ~override~ + ~iwdification/wav/cdiarm20.wav~ ~override~ + ~iwdification/wav/cdiee01.wav~ ~override~ + ~iwdification/wav/cdiep36.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/cdirwf17.eff~ ~override/cdirwf00.eff~ + WRITE_ASCIIE 0x30 ~cdirwf00~ + + ACTION_FOR_EACH align IN 17 18 19 33 34 35 49 50 51 BEGIN + + COPY ~iwdification/eff/cdirwf17.eff~ ~override/cdirwf%align%.eff~ + WRITE_ASCIIE 0x30 ~cdirwf%align%~ + + COPY ~iwdification/spl/cdirwf17.spl~ ~override/cdirwf%align%.spl~ + WRITE_LONG 0x9e align + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi266 END + + END + + END + +END + +///// \\\\\ +///// CLERIC_SPIKE_STONES \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIKE_STONES~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi213.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi213a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid519.spl~ 1 5 CLERIC_SPIKE_STONES + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4310 // name + SAY 0x50 @4311 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213 END + LPF DELETE_EFFECT STR_VAR match_resource = ~#sston~ END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213a END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid519 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid519.itm~ + SAY 0x0c @4310 + SAY 0x54 @4311 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 40 opcode = 148 target_eff = 1 price = 1500 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid only + + COPY ~iwdification/bam/cdid519a.bam~ ~override~ + ~iwdification/bam/cdid519b.bam~ ~override~ + ~iwdification/bam/cdid519c.bam~ ~override~ + ~iwdification/bam/cdistone.bam~ ~override~ + ~iwdification/vvc/cdistone.vvc~ ~override~ + ~iwdification/wav/cdiarp04.wav~ ~override~ + ~iwdification/wav/cdicp03.wav~ ~override~ + ~iwdification/wav/cdiep48.wav~ ~override~ + + ACTION_IF ee_game BEGIN + + COPY ~iwdification/vvc/cdistone.vvc~ ~override~ + + END ELSE BEGIN + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 5 cloud_dur = 72 STR_VAR code = cdid519 anim = cdistone END + + COPY ~iwdification/spl/cdid519.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi213a END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid519 END + + END + +END + +///// \\\\\ +///// CLERIC_SHIELD_OF_LATHANDER \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SHIELD_OF_LATHANDER~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4320) STR_VAR bam_file = cdid520d RET icon END + + ADD_SPELL ~iwdification/spl/cdid520.spl~ 1 5 CLERIC_SHIELD_OF_LATHANDER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4320 // name + SAY 0x50 @4321 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 324 STR_VAR resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 164 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 164 END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 3 parameter2 = 8 STR_VAR resource = cdixd520 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid520.itm~ + SAY 0x0c @4320 + SAY 0x54 @4321 + LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT12 + BIT21 + BIT30) range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // non-evil cleric + + COPY ~iwdification/bam/cdid520a.bam~ ~override~ + ~iwdification/bam/cdid520b.bam~ ~override~ + ~iwdification/bam/cdid520c.bam~ ~override~ + ~iwdification/bam/cdid520d.bam~ ~override~ + ~iwdification/bam/cdisol1.bam~ ~override~ + ~iwdification/bam/cdisol2.bam~ ~override~ + ~iwdification/vvc/cdilatl1.vvc~ ~override~ + ~iwdification/vvc/cdilatl2.vvc~ ~override~ + ~iwdification/wav/cdiafp20.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd520.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_UNDEAD_WARD \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_UNDEAD_WARD~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdiuward.pro~ + + END ELSE BEGIN + + OUTER_SET cdiuward = 1 + + END + + ADD_SPELL ~iwdification/spl/cdid521.spl~ 1 5 CLERIC_UNDEAD_WARD + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4330 // name + SAY 0x50 @4331 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiuward END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid521 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 power = 5 resist_dispel = 2 duration = 60 STR_VAR resource = cdiuwrdx END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 power = 5 parameter2 = 2 resist_dispel = 2 duration = 60 END + LPF CD_EXTEND-O-MATIC INT_VAR base_dur = 60 step_dur = 0 level_cap = 30 min_lev_alt = 9 END + READ_SHORT 0x68 abil_num + FOR (index = 9 ; index < (abil_num + 9) ; ++index) BEGIN + LPF ALTER_EFFECT INT_VAR header = (index - 9) match_opcode = 177 STR_VAR resource = EVAL ~cdiuwr%index%~ END + END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid521.itm~ + SAY 0x0c @4330 + SAY 0x54 @4331 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/bam/cdid521a.bam~ ~override~ + ~iwdification/bam/cdid521b.bam~ ~override~ + ~iwdification/bam/cdid521c.bam~ ~override~ + ~iwdification/bam/cdiuwrdx.bam~ ~override~ + ~iwdification/vvc/cdiuwrdx.vvc~ ~override~ + ~iwdification/wav/cdiafp27.wav~ ~override~ + ~iwdification/wav/cdiarp28.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COMPILE ~iwdification/baf/cdid521.baf~ + + OUTER_FOR (index = 9 ; index < 31 ; ++index) BEGIN + + COPY ~iwdification/eff/cdiuwr9.eff~ ~override/cdiuwr%index%.eff~ + WRITE_ASCIIE 0x30 "%DEST_RES%" #8 + + COPY ~iwdification/cre/cdiuwr9.cre~ ~override/cdiuwr%index%.cre~ + WRITE_BYTE 0x234 index + + END + + END + +END + +///// \\\\\ +///// CLERIC_ANIMAL_RAGE \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ANIMAL_RAGE~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4340) STR_VAR bam_file = cdid522d RET icon END + + ADD_SPELL ~iwdification/spl/cdid522.spl~ 1 5 CLERIC_ANIMAL_RAGE + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4340 // name + SAY 0x50 @4341 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid522 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 173 parameter2 = icon END + LPF ALTER_EFFECT INT_VAR match_opcode = 333 STR_VAR resource = cdid522b END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 173 parameter2 = 83 END + LPF CLONE_EFFECT INT_VAR match_opcode = 33 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + LPF CD_CONVERT_333 STR_VAR 333spell = cdid522b END + LPF CD_CONVERT_9_255 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid522.itm~ + SAY 0x0c @4340 + SAY 0x54 @4341 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) range = 1 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // druid + + COPY ~iwdification/spl/cdid522b.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37605 parameter1 = string_berserk END + + COPY ~iwdification/bam/cdid522a.bam~ ~override~ + ~iwdification/bam/cdid522b.bam~ ~override~ + ~iwdification/bam/cdid522c.bam~ ~override~ + ~iwdification/bam/cdid522d.bam~ ~override~ + +END + +///// \\\\\ +///// CLERIC_MASS_CAUSE_LIGHT_WOUNDS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MASS_CAUSE_LIGHT_WOUNDS~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid523.spl~ 1 5 CLERIC_MASS_CAUSE_LIGHT_WOUNDS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4350 // name + SAY 0x50 @4351 // descript + LPF ALTER_EFFECT STR_VAR match_resource = cdid523 resource = EVAL ~%DEST_RES%~ END + PATCH_IF !ee_game BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd523 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd523 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd523 END // race = parameter1 + LPF CD_SPLIT_SAVE_DAMAGE END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid523.itm~ + SAY 0x0c @4350 + SAY 0x54 @4351 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3) target_hdr = 5 range = 20 price = 500 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil only + + COPY ~iwdification/bam/cdid523a.bam~ ~override~ + ~iwdification/bam/cdid523b.bam~ ~override~ + ~iwdification/bam/cdid523c.bam~ ~override~ + ~iwdification/bam/cdicldam.bam~ ~override~ + ~iwdification/vvc/cdicldam.vvc~ ~override~ + ~iwdification/wav/cdiem103.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd523.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_ENTROPY_SHIELD \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ENTROPY_SHIELD~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4360) STR_VAR bam_file = cdid615d RET icon END + + ADD_SPELL ~iwdification/spl/cdid615.spl~ 1 6 CLERIC_ENTROPY_SHIELD + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4360 // name + SAY 0x50 @4361 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid615 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 56 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 56 END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 END + LPF CLONE_EFFECT INT_VAR match_opcode = 30 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + // iwdee/bgee/bg2ee/vanilla all match in projectiles until the 1pp slots for EE, so remove 1pp refs for vanilla (EEs all match, fortunately) + FOR (index = 282 ; index < 319 ; ++index) BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 83 match_parameter2 = index END + END + PATCH_IF FILE_EXISTS_IN_GAME ~1arow01.pro~ BEGIN // if 1pp is installed, re-add the references manually since they still may not sync with EE + PATCH_FOR_EACH proj IN // 1pp stuff + 1stafm0c 1arow01 1arow02 1arow03 1arow04 1arow05 1arow07 1arow10 1arow11 1arow15 1axe05 1axe08 1axe09 1axe10 1axe16 1bolt01 1bolt02 1bolt03 1bolt04 + 1bolt05 1bolt06 1bolt09 1bull02 1bull03 1bull04 1bull05 1bull06 1dagg05 1dagg11 1dagg12 1dagg16 1dart01 1dart02 1dart03 1dart04 1dart05 1dart08 + BEGIN + SET projids = IDS_OF_SYMBOL (~projectl~ ~%proj%~) + PATCH_IF projids > 0 BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 83 match_parameter2 = 1 parameter2 = projids END + END + END + END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid615.itm~ + SAY 0x0c @4360 + SAY 0x54 @4361 + LPF cd_scroll INT_VAR target_hdr = 5 range = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid615a.bam~ ~override~ + ~iwdification/bam/cdid615b.bam~ ~override~ + ~iwdification/bam/cdid615c.bam~ ~override~ + ~iwdification/bam/cdid615d.bam~ ~override~ + ~iwdification/bam/cdiabjur.bam~ ~override~ + ~iwdification/bam/cdieshld.bam~ ~override~ + ~iwdification/vvc/cdiabjur.vvc~ ~override~ + ~iwdification/vvc/cdientro.vvc~ ~override~ + ~iwdification/wav/cdiafp03.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_WHIRLWIND \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_WHIRLWIND~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdiwhirl.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdiwhira.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid617.spl~ 1 6 CLERIC_WHIRLWIND + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4370 // name + SAY 0x50 @4371 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwhirl END + LPF ALTER_EFFECT STR_VAR match_resource = cdid617 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = 1 END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 parameter2 = 2 resist_dispel = 2 duration = 120 STR_VAR resource = cdid617 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid617.itm~ + SAY 0x0c @4370 + SAY 0x54 @4371 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid617a.bam~ ~override~ + ~iwdification/bam/cdid617b.bam~ ~override~ + ~iwdification/bam/cdid617c.bam~ ~override~ + ~iwdification/bam/cdiwhirx.bam~ ~override~ + ~iwdification/wav/cdiep105.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/spl/cdid617.spl~ ~override/cdid617b.spl~ + WRITE_LONG 0x08 "-1" + LPF DELETE_EFFECT INT_VAR match_opcode = 318 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT STR_VAR match_resource = cdid617 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 35568 parameter1 = string_stunned END + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdiwhira END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 265 target = 1 parameter1 = 1 timing = 1 insert_point = 0 STR_VAR resource = cdizosa END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 273 target = 1 timing = 1 resist_dispel = 3 insert_point = 0 STR_VAR resource = cdizosa END + PATCH_FOR_EACH race IN 146 118 119 142 101 102 145 144 127 199 BEGIN // dragon, syverns, slimes, giants, ankheg, basilisk, elemental, golem, otyugh, ettin + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 2 parameter1 = race parameter2 = 4 duration = 1 insert_point = 0 STR_VAR resource = cdixd617 END + END + + COMPILE ~iwdification/baf/cdid617.baf~ + + COPY ~iwdification/cre/cdid617.cre~ ~override~ + ~iwdification/eff/cdid617.eff~ ~override~ + ~iwdification/eff/cdid617b.eff~ ~override~ + ~iwdification/vvc/cdiwhirx.vvc~ ~override~ + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd617.eff~ + WRITE_ASCII 0x30 ~cdid617b~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_SPIRITUAL_WRATH \\\\\ +///// \\\\\ + +ACTION_IF (ee_game AND (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SPIRITUAL_WRATH~) OR override_divine)) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi207.pro~ + ADD_PROJECTILE ~iwdification/pro/cdi312.pro~ + + ADD_SPELL ~iwdification/spl/cdid618.spl~ 1 6 CLERIC_SPIRITUAL_WRATH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4380 // name + SAY 0x50 @4381 // descript + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi312 END + LPF ALTER_EFFECT STR_VAR match_resource = cdid618 resource = EVAL ~%DEST_RES%~ END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid618.itm~ + SAY 0x0c @4380 + SAY 0x54 @4381 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 5 range = 100 price = 600 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY_EXISTING ~cdi312.pro~ ~override~ + WRITE_SHORT 0x21a cdi207 + + COPY ~iwdification/bam/cdid618a.bam~ ~override~ + ~iwdification/bam/cdid618b.bam~ ~override~ + ~iwdification/bam/cdid618c.bam~ ~override~ + ~iwdification/bam/cdiliten.bam~ ~override~ + ~iwdification/vvc/cdiinvoc.vvc~ ~override~ + ~iwdification/wav/cdiep05.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_SYMBOL_OF_PAIN \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SYMBOL_OF_PAIN~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4393) STR_VAR bam_file = cdid714d RET icon END + + ADD_SPELL ~iwdification/spl/cdid714.spl~ 1 7 CLERIC_SYMBOL_OF_PAIN + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4390 // name + SAY 0x50 @4391 // descript + SAY 0x21e @4392 + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid714 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 169 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 328 END + LPF CLONE_EFFECT INT_VAR match_opcode = 54 opcode = 206 parameter1 = 0 parameter2 = 0 STR_VAR insert = last resource = EVAL ~%DEST_RES%~ END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid714.itm~ + SAY 0x0c @4390 + SAY 0x54 @4391 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 4 range = 35 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // unusable by druid + + COPY ~iwdification/bam/cdid714a.bam~ ~override~ + ~iwdification/bam/cdid714b.bam~ ~override~ + ~iwdification/bam/cdid714c.bam~ ~override~ + ~iwdification/bam/cdid714d.bam~ ~override~ + ~iwdification/wav/cdiee04.wav~ ~override~ + ~iwdification/wav/cdiep02.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_SYMBOL_OF_HOPELESSNESS \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_SYMBOL_OF_HOPELESSNESS~) OR override_divine) BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi277.pro~ + + ADD_SPELL ~iwdification/spl/cdid716.spl~ 1 7 CLERIC_SYMBOL_OF_HOPELESSNESS + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4400 // name + SAY 0x50 @4401 // descript + SAY 0x1be @3003 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi277 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 1280 parameter1 = string_stunned END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid716.itm~ + SAY 0x0c @4400 + SAY 0x54 @4401 + LPF cd_scroll INT_VAR unusable0 = (BIT12 + BIT21 + BIT30) target_hdr = 4 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // cleric + + COPY ~iwdification/bam/cdid716a.bam~ ~override~ + ~iwdification/bam/cdid716b.bam~ ~override~ + ~iwdification/bam/cdid716c.bam~ ~override~ + ~iwdification/bam/cdiparal.bam~ ~override~ + ~iwdification/bam/cdishglp.bam~ ~override~ + ~iwdification/bam/cdisohx.bam~ ~override~ + ~iwdification/vvc/cdiparal.vvc~ ~override~ + ~iwdification/vvc/cdishglp.vvc~ ~override~ + ~iwdification/vvc/cdisohx.vvc~ ~override~ + ~iwdification/wav/cdiee04.wav~ ~override~ + ~iwdification/wav/cdiep02.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_IMPERVIOUS_SANCTITY_OF_MIND \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_IMPERVIOUS_SANCTITY_OF_MIND~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4410) STR_VAR bam_file = cdid733d RET icon END + + ADD_SPELL ~iwdification/spl/cdid733.spl~ 1 7 CLERIC_IMPERVIOUS_SANCTITY_OF_MIND + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4410 // name + SAY 0x50 @4411 // descript + LPF ALTER_EFFECT INT_VAR match_opcode = 206 match_parameter1 = 4742 parameter1 = 0 END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37613 parameter1 = string_sleep END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37340 parameter1 = string_uncon END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37605 parameter1 = string_berserk END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35544 parameter1 = string_dominated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 17392 parameter1 = string_dcharmed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37801 parameter1 = string_charmed END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 20568 parameter1 = string_mf_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35484 parameter1 = string_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37606 parameter1 = string_intoxicated END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37604 parameter1 = string_confused END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 37603 parameter1 = string_rthinking END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14102 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35606 parameter1 = string_held END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 35542 parameter1 = string_paralyzed END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 170 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 170 END + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid733.itm~ + SAY 0x0c @4410 + SAY 0x54 @4411 + LPF cd_scroll INT_VAR target_hdr = 5 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid733a.bam~ ~override~ + ~iwdification/bam/cdid733b.bam~ ~override~ + ~iwdification/bam/cdid733c.bam~ ~override~ + ~iwdification/bam/cdid733d.bam~ ~override~ + ~iwdification/bam/cdiabjur.bam~ ~override~ + ~iwdification/vvc/cdiabjur.vvc~ ~override~ + ~iwdification/wav/cdiee03.wav~ ~override~ + ~iwdification/wav/cdiep01.wav~ ~override~ + +END + +///// \\\\\ +///// CLERIC_DESTRUCTION \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_DESTRUCTION~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid734.spl~ 1 7 CLERIC_DESTRUCTION + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4420 // name + SAY 0x50 @4421 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid734 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd734 END // undead are immune + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid734.itm~ + SAY 0x0c @4420 + SAY 0x54 @4421 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // evil + + COPY ~iwdification/bam/cdid734a.bam~ ~override~ + ~iwdification/bam/cdid734b.bam~ ~override~ + ~iwdification/bam/cdid734c.bam~ ~override~ + ~iwdification/bam/cdidestr.bam~ ~override~ + ~iwdification/vvc/cdidestr.vvc~ ~override~ + ~iwdification/wav/cdiep113.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd734.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_GREATER_SHIELD_OF_LATHANDER \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_GREATER_SHIELD_OF_LATHANDER~) OR override_divine) BEGIN + + LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@4430) STR_VAR bam_file = cdid735d RET icon END + + ADD_SPELL ~iwdification/spl/cdid735.spl~ 1 7 CLERIC_GREATER_SHIELD_OF_LATHANDER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4430 // name + SAY 0x50 @4431 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid735 resource = EVAL ~%DEST_RES%~ END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 165 parameter2 = icon END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 165 END + LPF ALTER_EFFECT INT_VAR match_opcode = 324 opcode = 177 parameter1 = 3 parameter2 = 8 STR_VAR resource = cdixd735 END // evil are immune + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid735.itm~ + SAY 0x0c @4430 + SAY 0x54 @4431 + LPF cd_scroll INT_VAR unusable0 = (BIT1 + BIT3 + BIT12 + BIT21 + BIT30) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END // good cleric + + COPY ~iwdification/bam/cdid735a.bam~ ~override~ + ~iwdification/bam/cdid735b.bam~ ~override~ + ~iwdification/bam/cdid735c.bam~ ~override~ + ~iwdification/bam/cdid735d.bam~ ~override~ + ~iwdification/bam/cdigsol1.bam~ ~override~ + ~iwdification/bam/cdigsol2.bam~ ~override~ + ~iwdification/vvc/cdilatg1.vvc~ ~override~ + ~iwdification/vvc/cdilatg2.vvc~ ~override~ + ~iwdification/wav/cdiafp26.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd735.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_MIST_OF_ELDATH \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_MIST_OF_ELDATH~) OR override_divine) BEGIN + + ACTION_IF ee_game BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi307.pro~ + + END ELSE BEGIN + + ADD_PROJECTILE ~iwdification/pro/cdi307a.pro~ + + END + + ADD_SPELL ~iwdification/spl/cdid736.spl~ 1 7 CLERIC_MIST_OF_ELDATH + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4440 // name + SAY 0x50 @4441 // descript + PATCH_IF ee_game BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307 END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END + END ELSE BEGIN + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307a END + LPF DELETE_EFFECT END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 1 parameter2 = 2 STR_VAR resource = cdid736 END + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid736.itm~ + SAY 0x0c @4440 + SAY 0x54 @4441 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid736a.bam~ ~override~ + ~iwdification/bam/cdid736b.bam~ ~override~ + ~iwdification/bam/cdid736c.bam~ ~override~ + ~iwdification/bam/cdimoeld.bam~ ~override~ + ~iwdification/wav/cdiep104.wav~ ~override~ + + ACTION_IF !ee_game BEGIN + + LAUNCH_ACTION_FUNCTION cd_create_cloud INT_VAR visloop = 7 cloud_dur = 6 zosa = 1 STR_VAR code = cdid736 anim = cdimoeld END + + COPY ~iwdification/spl/cdid736.spl~ ~override~ + WRITE_LONG 0x08 "-1" // name + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdi307a END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 14022 parameter1 = string_healed END + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 2 duration = 6 STR_VAR resource = cdid736 END + + END + +END + +///// \\\\\ +///// CLERIC_STALKER \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_STALKER~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid737.spl~ 1 7 CLERIC_STALKER + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4450 // name + SAY 0x50 @4451 // descript + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid737.itm~ + SAY 0x0c @4450 + SAY 0x54 @4451 + LPF cd_scroll INT_VAR unusable0 = (BIT7 + BIT8 + BIT9 + BIT14 + BIT15 + BIT20 + BIT29) target_hdr = 4 range = 100 opcode = 148 target_eff = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COMPILE ~iwdification/baf/cdishamb.baf~ + + LAF cd_animation STR_VAR code = 7302 END // 29442 MEAE_SH shambling_mound + COPY ~iwdification/cre/cdishamb.cre~ ~override~ + SAY 0x08 @4452 + SAY 0x0c @4452 + + COPY ~iwdification/itm/cdishmbl.itm~ ~override~ + WRITE_LONG 0x08 string_attack + WRITE_LONG 0x0c string_attack + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = shmblr resource = cdishmbl END + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37709 parameter1 = string_entangled savingthrow = BIT1 END + LPF ALTER_EFFECT INT_VAR match_opcode = 12 savingthrow = BIT1 END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR check_globals = 0 END + LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd737 END // general = undead + LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd737 END // race = golem + LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 145 parameter2 = 4 STR_VAR resource = cdixd737 END // race = elemental + LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 177 target = 2 parameter1 = 164 parameter2 = 4 STR_VAR resource = cdixd737 END // race = myconid + LPF ADD_ITEM_EFFECT INT_VAR type = 1 opcode = 146 target = 2 parameter2 = 1 STR_VAR resource = cdishmbl END + END + + COPY ~iwdification/bam/cdid737a.bam~ ~override~ + ~iwdification/bam/cdid737b.bam~ ~override~ + ~iwdification/bam/cdid737c.bam~ ~override~ + ~iwdification/bam/cdishmbl.bam~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/spl/cdishmbl.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR match_opcode = 139 match_parameter1 = 37709 parameter1 = string_entangled END + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd737.eff~ + WRITE_ASCII 0x30 ~cdishmbl~ #8 + + END + +END + +///// \\\\\ +///// CLERIC_ENERGY_DRAIN \\\\\ +///// \\\\\ + +ACTION_IF (!FILE_CONTAINS_EVALUATED(~spell.ids~ ~CLERIC_ENERGY_DRAIN~) OR override_divine) BEGIN + + ADD_SPELL ~iwdification/spl/cdid739.spl~ 1 7 CLERIC_ENERGY_DRAIN + SPRINT current_spell_res "%DEST_RES%" + SAY 0x08 @4460 // name + SAY 0x50 @4461 // descript + SAY 0x2ae @4462 + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT STR_VAR match_resource = cdid739 resource = EVAL ~%DEST_RES%~ END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdixd739 END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdixd739 END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 104 opcode = 177 parameter2 = 4 STR_VAR resource = cdixd739 END // race = parameter1 + END + + COPY ~iwdification/itm/blankpr.itm~ ~override/cdid739.itm~ + SAY 0x0c @4460 + SAY 0x54 @4461 + LPF cd_scroll INT_VAR unusable0 = (BIT2 + BIT3 + BIT12 + BIT21 + BIT30) range = 1 price = 700 STR_VAR spell = EVAL ~%current_spell_res%~ END + + COPY ~iwdification/bam/cdid739a.bam~ ~override~ + ~iwdification/bam/cdid739b.bam~ ~override~ + ~iwdification/bam/cdid739c.bam~ ~override~ + + ACTION_IF !ee_game BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdixd739.eff~ + WRITE_ASCIIE 0x30 ~%current_spell_res%~ #8 + + END + +END + +///// \\\\\ +///// joinable spellbook adjustments \\\\\ +///// \\\\\ + +OUTER_SET NUM_d112 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CURSE~)) - 1000) +OUTER_SET NUM_d114 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_LIGHT_WOUNDS~)) - 1000) +OUTER_SET NUM_d115 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SUNSCORCH~)) - 1000) +OUTER_SET NUM_d217 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CURE_MODERATE_WOUNDS~)) - 1000) +OUTER_SET NUM_d218 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ALICORN_LANCE~)) - 1000) +OUTER_SET NUM_d219 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_BEAST_CLAW~)) - 1000) +OUTER_SET NUM_d220 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_MODERATE_WOUNDS~)) - 1000) +OUTER_SET NUM_d316 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_PRAYER~)) - 1000) +OUTER_SET NUM_d320 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_DISEASE~)) - 1000) +OUTER_SET NUM_d321 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_EXALTATION~)) - 1000) +OUTER_SET NUM_d322 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MOONBLADE~)) - 1000) +OUTER_SET NUM_d323 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CIRCLE_OF_BONES~)) - 1000) +OUTER_SET NUM_d324 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIKE_GROWTH~)) - 1000) +OUTER_SET NUM_d325 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CLOUDBURST~)) - 1000) +OUTER_SET NUM_d326 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MOLD_TOUCH~)) - 1000) +OUTER_SET NUM_d327 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STORM_SHELL~)) - 1000) +OUTER_SET NUM_d330 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CAUSE_MEDIUM_WOUNDS~)) - 1000) +OUTER_SET NUM_d331 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_FAVOR_OF_ILMATER~)) - 1000) +OUTER_SET NUM_d418 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_GIANT_INSECT~)) - 1000) +OUTER_SET NUM_d419 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_PRODUCE_FIRE~)) - 1000) +OUTER_SET NUM_d420 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STATIC_CHARGE~)) - 1000) +OUTER_SET NUM_d421 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_RECITATION~)) - 1000) +OUTER_SET NUM_d422 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_BLOOD_RAGE~)) - 1000) +OUTER_SET NUM_d423 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_CLOUD_OF_PESTILENCE~)) - 1000) +OUTER_SET NUM_d424 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_UNFAILING_ENDURANCE~)) - 1000) +OUTER_SET NUM_d425 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STAR_METAL_CUDGEL~)) - 1000) +OUTER_SET NUM_d426 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SMASHING_WAVE~)) - 1000) +OUTER_SET NUM_d427 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_THORN_SPRAY~)) - 1000) +OUTER_SET NUM_d428 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_WALL_OF_MOONLIGHT~)) - 1000) +OUTER_SET NUM_d518 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_RIGHTEOUS_WRATH_OF_THE_FAITHFUL~)) - 1000) +OUTER_SET NUM_d519 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIKE_STONES~)) - 1000) +OUTER_SET NUM_d520 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SHIELD_OF_LATHANDER~)) - 1000) +OUTER_SET NUM_d521 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_UNDEAD_WARD~)) - 1000) +OUTER_SET NUM_d522 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ANIMAL_RAGE~)) - 1000) +OUTER_SET NUM_d523 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MASS_CAUSE_LIGHT_WOUNDS~)) - 1000) +OUTER_SET NUM_d615 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ENTROPY_SHIELD~)) - 1000) +OUTER_SET NUM_d617 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_WHIRLWIND~)) - 1000) +OUTER_SET NUM_d618 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SPIRITUAL_WRATH~)) - 1000) +OUTER_SET NUM_d714 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SYMBOL_OF_PAIN~)) - 1000) +OUTER_SET NUM_d716 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SYMBOL_OF_HOPELESSNESS~)) - 1000) +OUTER_SET NUM_d733 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_IMPERVIOUS_SANCTITY_OF_MIND~)) - 1000) +OUTER_SET NUM_d734 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_DESTRUCTION~)) - 1000) +OUTER_SET NUM_d735 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_GREATER_SHIELD_OF_LATHANDER~)) - 1000) +OUTER_SET NUM_d736 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_MIST_OF_ELDATH~)) - 1000) +OUTER_SET NUM_d737 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_STALKER~)) - 1000) +OUTER_SET NUM_d739 = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ENERGY_DRAIN~)) - 1000) + +ACTION_FOR_EACH scroll IN + 112 114 115 217 218 219 220 316 320 321 322 323 324 325 326 327 330 331 418 419 420 421 422 423 424 425 426 427 428 518 519 520 521 522 523 615 617 618 714 716 734 735 736 737 738 +BEGIN + + ACTION_IF FILE_EXISTS_IN_GAME ~cdid%scroll%.itm~ BEGIN + + COPY ~iwdification/lib/divine_spellbooks.tpa~ ~iwdification/lib/divine_spellbooks.tpa~ + REPLACE_TEXTUALLY ~//NUM_d%scroll% ~ ~~ // could I be more lazy? maaaaaaybe. + + END + +END + +REINCLUDE ~iwdification/lib/divine_spellbooks.tpa~ + +COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~ + READ_LONG 0x1cc bio + PATCH_IF ((bio > 0) AND (bio < 999999)) BEGIN // joinable...ish + LPF CD_IWDIFICATION_SPELLBOOKS END + END + BUT_ONLY + +///// \\\\\ +///// divine spell crosspatching \\\\\ +///// \\\\\ + +ACTION_IF NUM_d422 > 0 BEGIN + + COPY_EXISTING ~sppr%NUM_d422%.spl~ ~override~ + PATCH_IF NUM_d714 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid714 resource = EVAL ~sppr%NUM_d714%~ END + END + PATCH_IF NUM_d716 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid716 resource = EVAL ~sppr%NUM_d716%~ END + END + BUT_ONLY + + ACTION_IF NUM_d321 > 0 BEGIN + + COPY_EXISTING ~sppr%NUM_d321%.spl~ ~override~ + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid422 resource = EVAL ~sppr%NUM_a422%~ END + BUT_ONLY + + END + +END + +ACTION_IF NUM_d733 > 0 BEGIN + + COPY_EXISTING ~sppr%NUM_d733%.spl~ ~override~ + PATCH_IF NUM_d422 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid422 resource = EVAL ~sppr%NUM_d422%~ END + END + PATCH_IF NUM_d716 > 0 BEGIN + LPF ALTER_EFFECT INT_VAR silent = 1 STR_VAR match_resource = cdid716 resource = EVAL ~sppr%NUM_d716%~ END + END + BUT_ONLY + +END + +ACTION_IF !ee_game BEGIN + + COPY_EXISTING ~cdibclaw.bam~ ~override~ + ~cdimoonb.bam~ ~override~ + ~cdismcud.bam~ ~override~ + READ_LONG 0x0c frame_off + WRITE_LONG frame_off + 0x04 0 + IF_EXISTS + +END + +///// \\\\\ +///// arcane-divine cross-patching \\\\\ +///// \\\\\ + +ACTION_IF MOD_IS_INSTALLED ~IWDIFICATION/SETUP-IWDIFICATION.TP2~ ~30~ THEN BEGIN + + INCLUDE ~iwdification/lib/cross_patch_both.tpa~ + +END + +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +///// \\\\\ +///// bard song \\\\\ +///// \\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ +/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ + +BEGIN @5000 DESIGNATED 50 + +APPEND ~clabba01.2da~ ~ABILITYX AP_CDIBAR0 **** GA_CDIBAR1 **** **** **** **** **** **** **** **** CDREPLACE +ABILITYY **** **** GA_CDIBAR2 **** GA_CDIBAR3 **** GA_CDIBAR4 **** GA_CDIBAR5 **** GA_CDIBAR6 CDREPLACE~ + +COPY_EXISTING ~clabba01.2da~ ~override~ + COUNT_2DA_COLS cols + FOR (index = 13 ; index < cols ; ++index) BEGIN + REPLACE_TEXTUALLY ~CDREPLACE~ ~**** CDREPLACE~ + END + REPLACE_TEXTUALLY ~CDREPLACE~ ~****~ + SET "ability" = 0 + REPLACE_EVALUATE ~^\(ABILITY[0-9A-Z]+\)[ %TAB%]~ BEGIN + SET "ability" = ("%ability%" + 1) + END + ~ABILITY%ability% ~ + PRETTY_PRINT_2DA + +ACTION_IF FILE_EXISTS_IN_GAME luba0.2da THEN BEGIN + + COPY_EXISTING ~luba0.2da~ ~override~ // remove enhanced bard song from HLAs + REPLACE_TEXTUALLY ~^\([0-9]+[ %TAB%]+AP_SPCL920[ %TAB%]+\*[ %TAB%]+\*[ %TAB%]+[0-9]+[ %TAB%]+[0-9]+[ %TAB%]+[0-9]+[ %TAB%]+\)\*\([ %TAB%]+\*[ %TAB%]+\*\)~ + ~\1SPCL920\2~ // create self-reference, never allowing it to be selected + PRETTY_PRINT_2DA + +END + +ADD_PROJECTILE ~iwdification/pro/cdivrnp.pro~ // visual range, non-party for siren's yearning + +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5002) STR_VAR bam_file = cdibar0 RET cdibarap = icon END +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5005) STR_VAR bam_file = cdibar0 RET cdibarbp = icon END +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5008) STR_VAR bam_file = cdibar0 RET cdibarcp = icon END +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5011) STR_VAR bam_file = cdibar0 RET cdibardp = icon END +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5014) STR_VAR bam_file = cdibar0 RET cdibarep = icon END +LAF cd_new_portrait_icon INT_VAR string = RESOLVE_STR_REF(@5018) STR_VAR bam_file = cdibar0 RET cdibarfp = icon END + +COPY ~iwdification/bam/cdibar0.bam~ ~override~ + ~iwdification/bam/cdibara.bam~ ~override~ + ~iwdification/bam/cdibarb.bam~ ~override~ + ~iwdification/bam/cdibarc.bam~ ~override~ + ~iwdification/bam/cdibard.bam~ ~override~ + ~iwdification/bam/cdibare.bam~ ~override~ + ~iwdification/bam/cdibarf.bam~ ~override~ + ~iwdification/spl/cdibar0.spl~ ~override~ + +ACTION_IF ee_game BEGIN + + STRING_SET 9562 @5020 + + COPY ~iwdification/bam/cdibar0.bam~ ~override~ + ~iwdification/spl/cdibare0.spl~ ~override~ + +END ELSE BEGIN + + COPY ~iwdification/eff/immunity.eff~ ~override/cdibarex.eff~ + WRITE_ASCII 0x30 ~cdibare~ #8 + +END + +COPY ~iwdification/spl/cdibar1.spl~ ~override~ // The Ballad of Three Heroes - Combat Bonuses + SAY 0x08 @5001 + SAY 0x0c @5001 + SAY 0x50 @5003 + SAY 0x54 @5003 + +COPY ~iwdification/spl/cdibara.spl~ ~override~ + SAY 0x08 @5002 + SAY 0x0c @5002 + SAY 0x50 @5003 + SAY 0x54 @5003 + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 177 parameter2 = cdibarap END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 177 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + +COPY ~iwdification/spl/cdibar2.spl~ ~override~ // The Tale of Curran Strongheart - Immunity Fear + SAY 0x08 @5004 + SAY 0x0c @5004 + SAY 0x50 @5006 + SAY 0x54 @5006 + +COPY ~iwdification/spl/cdibarb.spl~ ~override~ + SAY 0x08 @5005 + SAY 0x0c @5005 + SAY 0x50 @5006 + SAY 0x54 @5006 + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 111111 parameter1 = string_mf_panic END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 222222 parameter1 = string_panic END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 178 parameter2 = cdibarbp END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT INT_VAR match_opcode = 318 opcode = 206 parameter1 = 0 parameter2 = 0 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 178 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + +COPY ~iwdification/spl/cdibar3.spl~ ~override~ // Tymora's Melody - Luck and Skill Bonuses + SAY 0x08 @5007 + SAY 0x0c @5007 + SAY 0x50 @5009 + SAY 0x54 @5009 + +COPY ~iwdification/spl/cdibarc.spl~ ~override~ + SAY 0x08 @5008 + SAY 0x0c @5008 + SAY 0x50 @5009 + SAY 0x54 @5009 + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 179 parameter2 = cdibarcp END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 179 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + +COPY ~iwdification/spl/cdibar4.spl~ ~override~ // The Song of Kaudies - Resistant to Sound Attacks + SAY 0x08 @5010 + SAY 0x0c @5010 + SAY 0x50 @5012 + SAY 0x54 @5012 + +COPY ~iwdification/spl/cdibard.spl~ ~override~ + SAY 0x08 @5011 + SAY 0x0c @5011 + SAY 0x50 @5012 + SAY 0x54 @5012 + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14002 parameter1 = string_silence END + LPF ALTER_EFFECT INT_VAR match_opcode = 267 match_parameter1 = 14676 parameter1 = string_silenced END + LPF ALTER_EFFECT INT_VAR match_opcode = 206 match_parameter1 = 4742 parameter1 = string_ineffective END + PATCH_FOR_EACH res IN + POWERWORD_KILL POWERWORD_STUN POWERWORD_BLIND PLAYER1_WORD_OF_POWER IRENICUS_WORD_OF_POWER DEMILICH_DEATH MOON_DOG_FEAR BANSHEE_WAIL ELVEN_GUARD_WAIL // bg2ee, bgee + WIZARD_SHOUT WIZARD_GREAT_SHOUT INNATE_MOURNFUL_WAIL INNATE_DEATH_KNELL INNATE_WAR_CRY INNATE_UNDYING_LAMENT INNATE_GREAT_ROAR INNATE_HARPY_WAIL_INTERNAL // iwdee, iwdification + BEGIN + SET num = IDS_OF_SYMBOL (~spell~ ~%res%~) + PATCH_IF num > 3999 BEGIN SET num -= 4000 SPRINT prefix spcl END + PATCH_IF num > 2999 BEGIN SET num -= 3000 SPRINT prefix spin END + PATCH_IF num > 1999 BEGIN SET num -= 2000 SPRINT prefix spwi END + PATCH_IF num > 999 BEGIN SET num -= 1000 SPRINT prefix sppr END + PATCH_IF num > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR opcode = 206 target = 3 parameter1 = string_ineffective duration = 7 probability1 = 50 STR_VAR resource = EVAL ~%prefix%%num%~ END + END + END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 180 parameter2 = cdibardp END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 180 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + +COPY ~iwdification/spl/cdibar5.spl~ ~override~ // The Siren's Yearning - Enthralls Creatures + SAY 0x08 @5013 + SAY 0x0c @5013 + SAY 0x50 @5015 + SAY 0x54 @5015 + +COPY ~iwdification/spl/cdibare.spl~ ~override~ + SAY 0x08 @5014 + SAY 0x0c @5014 + SAY 0x50 @5015 + SAY 0x54 @5015 + SAY 0x2ae @5016 + LPF ALTER_SPELL_HEADER INT_VAR projectile = cdivrnp END + LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 267 match_parameter1 = 1280 parameter1 = string_stunned END + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 181 parameter2 = cdibarep END + END ELSE BEGIN + LPF CLONE_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 144 parameter2 = 4 STR_VAR resource = cdibarex END // race = golem + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 55 opcode = 177 parameter1 = 4 parameter2 = 3 STR_VAR resource = cdibarex END // general = undead + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 15 opcode = 177 parameter1 = 2 parameter2 = 4 STR_VAR resource = cdibarex END // race = elf + LPF ALTER_EFFECT INT_VAR match_opcode = 324 match_parameter2 = 19 opcode = 177 parameter1 = 3 parameter2 = 4 STR_VAR resource = cdibarex END // race = halfelf + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF DELETE_EFFECT INT_VAR match_opcode = 232 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 181 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + +COPY ~iwdification/spl/cdibar6.spl~ ~override~ // War Chant of Sith - Armor Bonuses and Regeneration + SAY 0x08 @5017 + SAY 0x0c @5017 + SAY 0x50 @5019 + SAY 0x54 @5019 + +COPY ~iwdification/spl/cdibarf.spl~ ~override~ + SAY 0x08 @5018 + SAY 0x0c @5018 + SAY 0x50 @5019 + SAY 0x54 @5019 + PATCH_IF ee_game BEGIN + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 182 parameter2 = cdibarfp END + END ELSE BEGIN + LPF DELETE_EFFECT INT_VAR match_opcode = 321 END + LPF DELETE_EFFECT INT_VAR match_opcode = 324 END + LPF ALTER_EFFECT INT_VAR match_opcode = 142 match_parameter2 = 182 parameter2 = 40 END + LPF ALTER_EFFECT INT_VAR match_duration = 7 timing = 10 duration = 100 END + END + /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\