diff --git a/iwdification/2da/cdia418.2da b/iwdification/2da/cdia418.2da new file mode 100644 index 0000000..6d27e62 --- /dev/null +++ b/iwdification/2da/cdia418.2da @@ -0,0 +1,11 @@ +2DA V1.0 +0 + RESREF +0 CDS1gob1 +1 CDS1gob2 +2 CDS1gob3 +3 CDS1liz3 +4 CDS1liz4 +5 CDS1trl6 +6 CDS1trl7 +7 CDS1trl8 diff --git a/iwdification/2da/cdia512.2da b/iwdification/2da/cdia512.2da new file mode 100644 index 0000000..1f3184b --- /dev/null +++ b/iwdification/2da/cdia512.2da @@ -0,0 +1,10 @@ +2DA V1.0 +0 + RESREF +0 CDS2gob1 +1 CDS2gob2 +2 CDS2gob3 +3 CDS2gob3 +4 CDS2liz5 +5 CDS2liz6 +6 CDS2liz7 diff --git a/iwdification/2da/cdia513.2da b/iwdification/2da/cdia513.2da new file mode 100644 index 0000000..a33f994 --- /dev/null +++ b/iwdification/2da/cdia513.2da @@ -0,0 +1,4 @@ +2DA V1.0 +0 + RESREF +0 cdia513 diff --git a/iwdification/2da/cdia611.2da b/iwdification/2da/cdia611.2da new file mode 100644 index 0000000..6bbfad8 --- /dev/null +++ b/iwdification/2da/cdia611.2da @@ -0,0 +1,5 @@ +2DA V1.0 +0 + RESREF +0 CDM4ghst +1 CDM4ogr diff --git a/iwdification/2da/cdia613.2da b/iwdification/2da/cdia613.2da new file mode 100644 index 0000000..29c3829 --- /dev/null +++ b/iwdification/2da/cdia613.2da @@ -0,0 +1,14 @@ +2DA V1.0 +0 + RESREF +0 CDS2gob2 +1 CDS2gob2 +2 CDS2gob3 +3 CDS2gob3 +4 CDS2liz5 +5 CDS2liz6 +6 CDS2liz7 +7 CDS3trl7 +8 CDS3trl8 +9 CDS3umb8 +10 CDS3umb9 diff --git a/iwdification/2da/cdia703.2da b/iwdification/2da/cdia703.2da new file mode 100644 index 0000000..2500c1e --- /dev/null +++ b/iwdification/2da/cdia703.2da @@ -0,0 +1,6 @@ +2DA V1.0 +0 + RESREF +0 CDM5gspi +1 CDM5jzom +2 CDM5mino diff --git a/iwdification/2da/cdia803.2da b/iwdification/2da/cdia803.2da new file mode 100644 index 0000000..de2e5af --- /dev/null +++ b/iwdification/2da/cdia803.2da @@ -0,0 +1,7 @@ +2DA V1.0 +0 + RESREF +0 CDM6crwl +1 CDM6pspi +2 CDM6salc +3 CDM6salf diff --git a/iwdification/2da/cdia902.2da b/iwdification/2da/cdia902.2da new file mode 100644 index 0000000..8771005 --- /dev/null +++ b/iwdification/2da/cdia902.2da @@ -0,0 +1,5 @@ +2DA V1.0 +0 + RESREF +0 CDM7bgrd +1 CDM7umbh diff --git a/iwdification/2da/cdid410.2da b/iwdification/2da/cdid410.2da new file mode 100644 index 0000000..346e888 --- /dev/null +++ b/iwdification/2da/cdid410.2da @@ -0,0 +1,5 @@ +2DA V1.0 +0 + RESREF +0 CDGIbomb +1 CDGIborb diff --git a/iwdification/baf/ar0602.baf b/iwdification/baf/ar0602.baf new file mode 100644 index 0000000..475d3bd --- /dev/null +++ b/iwdification/baf/ar0602.baf @@ -0,0 +1,7 @@ +IF + Global("CDIWDItems","MYAREA",0) +THEN + RESPONSE #100 + SetGlobal("CDIWDItems","MYAREA",1) + ActionOverride("JailkeepTable",CreateItem("cdax2h1",0,0,0)) +END diff --git a/iwdification/baf/ar3017.baf b/iwdification/baf/ar3017.baf new file mode 100644 index 0000000..21c3390 --- /dev/null +++ b/iwdification/baf/ar3017.baf @@ -0,0 +1,7 @@ +IF + Global("CDIWDItems","MYAREA",0) +THEN + RESPONSE #100 + SetGlobal("CDIWDItems","MYAREA",1) + ActionOverride("Container14",CreateItem("cdax2h1",0,0,0)) +END diff --git a/iwdification/baf/botsmith.baf b/iwdification/baf/botsmith.baf new file mode 100644 index 0000000..232ec1c --- /dev/null +++ b/iwdification/baf/botsmith.baf @@ -0,0 +1,11 @@ +IF + Global("cdax2h5","LOCALS",1) + Global("ImpForgeStuff","GLOBAL",1) +THEN + RESPONSE #100 + SetGlobal("cdax2h5","LOCALS",0) + SetGlobal("ImpForgeStuff","GLOBAL",0) + GiveItemCreate("cdax2h6",Player1,0,0,0) // enhanced battle standard + SetGlobal("ItemMaker","GLOBAL",1) // this just allows cespy to pick up his usual post-forge dialogue + StartDialogueNoSet(Player1) +END \ No newline at end of file diff --git a/iwdification/baf/cdgibomb.baf b/iwdification/baf/cdgibomb.baf new file mode 100644 index 0000000..3770f11 --- /dev/null +++ b/iwdification/baf/cdgibomb.baf @@ -0,0 +1,23 @@ +IF + !Global("#deactivate_script_bbcloud","LOCALS",1) + Global("Internal4","LOCALS",2) +THEN + RESPONSE #100 + SetGlobal("#deactivate_script_bbcloud","LOCALS",1) +END + +IF + !Global("#deactivate_script_bbcloud","LOCALS",1) + !GlobalTimerNotExpired("#localtimer","LOCALS") + See(NearestEnemyOf(Myself)) + Range(NearestEnemyOf(Myself),7) + IsActive(Myself) +THEN + RESPONSE #100 + IncrementGlobal("Internal4","LOCALS",1) + SetGlobalTimer("#localtimer","LOCALS",21) + ReallyForceSpellRES("CDGIBOMB",Myself) + Wait(2) +END + + diff --git a/iwdification/baf/cdid516.baf b/iwdification/baf/cdid516.baf new file mode 100644 index 0000000..a21977c --- /dev/null +++ b/iwdification/baf/cdid516.baf @@ -0,0 +1,24 @@ +IF + OnCreation() +THEN + RESPONSE #100 + SetGlobalTimer("disappear","LOCALS",60) + ChangeEnemyAlly(Myself,GOODBUTBLUE) + Continue() +END + +IF + GlobalTimerExpired("disappear","LOCALS") +THEN + RESPONSE #100 + DestroySelf() +END + +IF + !GlobalTimerNotExpired("turn","LOCALS") +THEN + RESPONSE #100 + SetGlobalTimer("turn","LOCALS",6) + Turn() +END + diff --git a/iwdification/baf/cdid613.baf b/iwdification/baf/cdid613.baf new file mode 100644 index 0000000..fd1a3b2 --- /dev/null +++ b/iwdification/baf/cdid613.baf @@ -0,0 +1,31 @@ +IF + Global("init","LOCALS",0) +THEN + RESPONSE #100 + SetGlobal("init","LOCALS",1) + SetGlobalTimer("GoAway","LOCALS",30) +END + +IF + GlobalTimerExpired("GoAway","LOCALS") +THEN + RESPONSE #100 + DestroySelf() +END + + +IF + !Allegiance(Myself,NEUTRAL) +THEN + RESPONSE #100 + ChangeEnemyAlly(Myself,NEUTRAL) +END + +IF + True() +THEN + RESPONSE #100 + RandomWalk() +END + + diff --git a/iwdification/baf/cdsalc.baf b/iwdification/baf/cdsalc.baf new file mode 100644 index 0000000..95f75d0 --- /dev/null +++ b/iwdification/baf/cdsalc.baf @@ -0,0 +1,10 @@ +IF + !GlobalTimerNotExpired("CDSALC","LOCALS") + IsActive(Myself) +THEN + RESPONSE #100 + ReallyForceSpellRES("CDSALC",Myself) + SetGlobalTimer("CDSALC","LOCALS",ONE_DAY) +END + + diff --git a/iwdification/baf/cdsalf.baf b/iwdification/baf/cdsalf.baf new file mode 100644 index 0000000..864b29b --- /dev/null +++ b/iwdification/baf/cdsalf.baf @@ -0,0 +1,10 @@ +IF + !GlobalTimerNotExpired("CDSALF","LOCALS") + IsActive(Myself) +THEN + RESPONSE #100 + ReallyForceSpellRES("CDSALF",Myself) + SetGlobalTimer("CDSALF","LOCALS",ONE_DAY) +END + + diff --git a/iwdification/bam/cdabjurh.bam b/iwdification/bam/cdabjurh.bam new file mode 100644 index 0000000..b9b21e6 Binary files /dev/null and b/iwdification/bam/cdabjurh.bam differ diff --git a/iwdification/bam/cdacidh.bam b/iwdification/bam/cdacidh.bam new file mode 100644 index 0000000..f4958e3 Binary files /dev/null and b/iwdification/bam/cdacidh.bam differ diff --git a/iwdification/bam/cdalterh.bam b/iwdification/bam/cdalterh.bam new file mode 100644 index 0000000..0ca08af Binary files /dev/null and b/iwdification/bam/cdalterh.bam differ diff --git a/iwdification/bam/cdanisum.bam b/iwdification/bam/cdanisum.bam new file mode 100644 index 0000000..4bfd7e2 Binary files /dev/null and b/iwdification/bam/cdanisum.bam differ diff --git a/iwdification/bam/cdarea1x.bam b/iwdification/bam/cdarea1x.bam new file mode 100644 index 0000000..6c98450 Binary files /dev/null and b/iwdification/bam/cdarea1x.bam differ diff --git a/iwdification/bam/cdax2h1i.bam b/iwdification/bam/cdax2h1i.bam new file mode 100644 index 0000000..e4ce439 Binary files /dev/null and b/iwdification/bam/cdax2h1i.bam differ diff --git a/iwdification/bam/cdax2h2i.bam b/iwdification/bam/cdax2h2i.bam new file mode 100644 index 0000000..38c7142 Binary files /dev/null and b/iwdification/bam/cdax2h2i.bam differ diff --git a/iwdification/bam/cdax2h3i.bam b/iwdification/bam/cdax2h3i.bam new file mode 100644 index 0000000..70c26c4 Binary files /dev/null and b/iwdification/bam/cdax2h3i.bam differ diff --git a/iwdification/bam/cdax2h4i.bam b/iwdification/bam/cdax2h4i.bam new file mode 100644 index 0000000..af7c655 Binary files /dev/null and b/iwdification/bam/cdax2h4i.bam differ diff --git a/iwdification/bam/cdax2h5i.bam b/iwdification/bam/cdax2h5i.bam new file mode 100644 index 0000000..94da5a4 Binary files /dev/null and b/iwdification/bam/cdax2h5i.bam differ diff --git a/iwdification/bam/cdax2h5s.bam b/iwdification/bam/cdax2h5s.bam new file mode 100644 index 0000000..54b82eb Binary files /dev/null and b/iwdification/bam/cdax2h5s.bam differ diff --git a/iwdification/bam/cdax2h6i.bam b/iwdification/bam/cdax2h6i.bam new file mode 100644 index 0000000..60debf7 Binary files /dev/null and b/iwdification/bam/cdax2h6i.bam differ diff --git a/iwdification/bam/cdbonh1.bam b/iwdification/bam/cdbonh1.bam new file mode 100644 index 0000000..a8cdfaf Binary files /dev/null and b/iwdification/bam/cdbonh1.bam differ diff --git a/iwdification/bam/cdbonh2.bam b/iwdification/bam/cdbonh2.bam new file mode 100644 index 0000000..34d4445 Binary files /dev/null and b/iwdification/bam/cdbonh2.bam differ diff --git a/iwdification/bam/cdcldama.bam b/iwdification/bam/cdcldama.bam new file mode 100644 index 0000000..f3116dc Binary files /dev/null and b/iwdification/bam/cdcldama.bam differ diff --git a/iwdification/bam/cdcloubh.bam b/iwdification/bam/cdcloubh.bam new file mode 100644 index 0000000..1814863 Binary files /dev/null and b/iwdification/bam/cdcloubh.bam differ diff --git a/iwdification/bam/cdcmdama.bam b/iwdification/bam/cdcmdama.bam new file mode 100644 index 0000000..de2fdb4 Binary files /dev/null and b/iwdification/bam/cdcmdama.bam differ diff --git a/iwdification/bam/cdcoldh.bam b/iwdification/bam/cdcoldh.bam new file mode 100644 index 0000000..29dd169 Binary files /dev/null and b/iwdification/bam/cdcoldh.bam differ diff --git a/iwdification/bam/cdconjuh.bam b/iwdification/bam/cdconjuh.bam new file mode 100644 index 0000000..12a5dd4 Binary files /dev/null and b/iwdification/bam/cdconjuh.bam differ diff --git a/iwdification/bam/cdcurseh.bam b/iwdification/bam/cdcurseh.bam new file mode 100644 index 0000000..25eeb03 Binary files /dev/null and b/iwdification/bam/cdcurseh.bam differ diff --git a/iwdification/bam/cddestrh.bam b/iwdification/bam/cddestrh.bam new file mode 100644 index 0000000..02a523a Binary files /dev/null and b/iwdification/bam/cddestrh.bam differ diff --git a/iwdification/bam/cddiseah.bam b/iwdification/bam/cddiseah.bam new file mode 100644 index 0000000..bafa9a3 Binary files /dev/null and b/iwdification/bam/cddiseah.bam differ diff --git a/iwdification/bam/cddivinh.bam b/iwdification/bam/cddivinh.bam new file mode 100644 index 0000000..cdc026d Binary files /dev/null and b/iwdification/bam/cddivinh.bam differ diff --git a/iwdification/bam/cdelecth.bam b/iwdification/bam/cdelecth.bam new file mode 100644 index 0000000..8547572 Binary files /dev/null and b/iwdification/bam/cdelecth.bam differ diff --git a/iwdification/bam/cdenchah.bam b/iwdification/bam/cdenchah.bam new file mode 100644 index 0000000..5e11d2d Binary files /dev/null and b/iwdification/bam/cdenchah.bam differ diff --git a/iwdification/bam/cdexalth.bam b/iwdification/bam/cdexalth.bam new file mode 100644 index 0000000..054705b Binary files /dev/null and b/iwdification/bam/cdexalth.bam differ diff --git a/iwdification/bam/cdfireh.bam b/iwdification/bam/cdfireh.bam new file mode 100644 index 0000000..5cdba46 Binary files /dev/null and b/iwdification/bam/cdfireh.bam differ diff --git a/iwdification/bam/cdgnench.bam b/iwdification/bam/cdgnench.bam new file mode 100644 index 0000000..2d4fe1c Binary files /dev/null and b/iwdification/bam/cdgnench.bam differ diff --git a/iwdification/bam/cdia220a.bam b/iwdification/bam/cdia220a.bam new file mode 100644 index 0000000..13acecd Binary files /dev/null and b/iwdification/bam/cdia220a.bam differ diff --git a/iwdification/bam/cdia220b.bam b/iwdification/bam/cdia220b.bam new file mode 100644 index 0000000..6353480 Binary files /dev/null and b/iwdification/bam/cdia220b.bam differ diff --git a/iwdification/bam/cdia220c.bam b/iwdification/bam/cdia220c.bam new file mode 100644 index 0000000..47e83b0 Binary files /dev/null and b/iwdification/bam/cdia220c.bam differ diff --git a/iwdification/bam/cdia220v.bam b/iwdification/bam/cdia220v.bam new file mode 100644 index 0000000..4c47a78 Binary files /dev/null and b/iwdification/bam/cdia220v.bam differ diff --git a/iwdification/bam/cdia221a.bam b/iwdification/bam/cdia221a.bam new file mode 100644 index 0000000..2c60f5a Binary files /dev/null and b/iwdification/bam/cdia221a.bam differ diff --git a/iwdification/bam/cdia221b.bam b/iwdification/bam/cdia221b.bam new file mode 100644 index 0000000..4c2feab Binary files /dev/null and b/iwdification/bam/cdia221b.bam differ diff --git a/iwdification/bam/cdia221c.bam b/iwdification/bam/cdia221c.bam new file mode 100644 index 0000000..14e57d5 Binary files /dev/null and b/iwdification/bam/cdia221c.bam differ diff --git a/iwdification/bam/cdia221i.bam b/iwdification/bam/cdia221i.bam new file mode 100644 index 0000000..4e563cd Binary files /dev/null and b/iwdification/bam/cdia221i.bam differ diff --git a/iwdification/bam/cdia223a.bam b/iwdification/bam/cdia223a.bam new file mode 100644 index 0000000..2036259 Binary files /dev/null and b/iwdification/bam/cdia223a.bam differ diff --git a/iwdification/bam/cdia223b.bam b/iwdification/bam/cdia223b.bam new file mode 100644 index 0000000..bd3bd43 Binary files /dev/null and b/iwdification/bam/cdia223b.bam differ diff --git a/iwdification/bam/cdia223c.bam b/iwdification/bam/cdia223c.bam new file mode 100644 index 0000000..a2dd9bc Binary files /dev/null and b/iwdification/bam/cdia223c.bam differ diff --git a/iwdification/bam/cdia318a.bam b/iwdification/bam/cdia318a.bam new file mode 100644 index 0000000..42435cb Binary files /dev/null and b/iwdification/bam/cdia318a.bam differ diff --git a/iwdification/bam/cdia318b.bam b/iwdification/bam/cdia318b.bam new file mode 100644 index 0000000..2e99077 Binary files /dev/null and b/iwdification/bam/cdia318b.bam differ diff --git a/iwdification/bam/cdia318c.bam b/iwdification/bam/cdia318c.bam new file mode 100644 index 0000000..5c69252 Binary files /dev/null and b/iwdification/bam/cdia318c.bam differ diff --git a/iwdification/bam/cdia318v.bam b/iwdification/bam/cdia318v.bam new file mode 100644 index 0000000..e7d51fd Binary files /dev/null and b/iwdification/bam/cdia318v.bam differ diff --git a/iwdification/bam/cdia319a.bam b/iwdification/bam/cdia319a.bam new file mode 100644 index 0000000..7642524 Binary files /dev/null and b/iwdification/bam/cdia319a.bam differ diff --git a/iwdification/bam/cdia319b.bam b/iwdification/bam/cdia319b.bam new file mode 100644 index 0000000..114deca Binary files /dev/null and b/iwdification/bam/cdia319b.bam differ diff --git a/iwdification/bam/cdia319c.bam b/iwdification/bam/cdia319c.bam new file mode 100644 index 0000000..b506f7e Binary files /dev/null and b/iwdification/bam/cdia319c.bam differ diff --git a/iwdification/bam/cdia319v.bam b/iwdification/bam/cdia319v.bam new file mode 100644 index 0000000..5126dc0 Binary files /dev/null and b/iwdification/bam/cdia319v.bam differ diff --git a/iwdification/bam/cdia411a.bam b/iwdification/bam/cdia411a.bam new file mode 100644 index 0000000..3bccc52 Binary files /dev/null and b/iwdification/bam/cdia411a.bam differ diff --git a/iwdification/bam/cdia411b.bam b/iwdification/bam/cdia411b.bam new file mode 100644 index 0000000..e322246 Binary files /dev/null and b/iwdification/bam/cdia411b.bam differ diff --git a/iwdification/bam/cdia411c.bam b/iwdification/bam/cdia411c.bam new file mode 100644 index 0000000..9e8a0d8 Binary files /dev/null and b/iwdification/bam/cdia411c.bam differ diff --git a/iwdification/bam/cdia417a.bam b/iwdification/bam/cdia417a.bam new file mode 100644 index 0000000..0167040 Binary files /dev/null and b/iwdification/bam/cdia417a.bam differ diff --git a/iwdification/bam/cdia417b.bam b/iwdification/bam/cdia417b.bam new file mode 100644 index 0000000..30f3803 Binary files /dev/null and b/iwdification/bam/cdia417b.bam differ diff --git a/iwdification/bam/cdia417c.bam b/iwdification/bam/cdia417c.bam new file mode 100644 index 0000000..8566799 Binary files /dev/null and b/iwdification/bam/cdia417c.bam differ diff --git a/iwdification/bam/cdia418a.bam b/iwdification/bam/cdia418a.bam new file mode 100644 index 0000000..02d750e Binary files /dev/null and b/iwdification/bam/cdia418a.bam differ diff --git a/iwdification/bam/cdia418b.bam b/iwdification/bam/cdia418b.bam new file mode 100644 index 0000000..65d049a Binary files /dev/null and b/iwdification/bam/cdia418b.bam differ diff --git a/iwdification/bam/cdia418c.bam b/iwdification/bam/cdia418c.bam new file mode 100644 index 0000000..adfce44 Binary files /dev/null and b/iwdification/bam/cdia418c.bam differ diff --git a/iwdification/bam/cdia419a.bam b/iwdification/bam/cdia419a.bam new file mode 100644 index 0000000..eb2ded1 Binary files /dev/null and b/iwdification/bam/cdia419a.bam differ diff --git a/iwdification/bam/cdia419b.bam b/iwdification/bam/cdia419b.bam new file mode 100644 index 0000000..4fbf8b2 Binary files /dev/null and b/iwdification/bam/cdia419b.bam differ diff --git a/iwdification/bam/cdia419c.bam b/iwdification/bam/cdia419c.bam new file mode 100644 index 0000000..e610ea2 Binary files /dev/null and b/iwdification/bam/cdia419c.bam differ diff --git a/iwdification/bam/cdia420a.bam b/iwdification/bam/cdia420a.bam new file mode 100644 index 0000000..4aedd76 Binary files /dev/null and b/iwdification/bam/cdia420a.bam differ diff --git a/iwdification/bam/cdia420b.bam b/iwdification/bam/cdia420b.bam new file mode 100644 index 0000000..045b0e8 Binary files /dev/null and b/iwdification/bam/cdia420b.bam differ diff --git a/iwdification/bam/cdia420c.bam b/iwdification/bam/cdia420c.bam new file mode 100644 index 0000000..7fff468 Binary files /dev/null and b/iwdification/bam/cdia420c.bam differ diff --git a/iwdification/bam/cdia421a.bam b/iwdification/bam/cdia421a.bam new file mode 100644 index 0000000..e4a0a16 Binary files /dev/null and b/iwdification/bam/cdia421a.bam differ diff --git a/iwdification/bam/cdia421b.bam b/iwdification/bam/cdia421b.bam new file mode 100644 index 0000000..887df83 Binary files /dev/null and b/iwdification/bam/cdia421b.bam differ diff --git a/iwdification/bam/cdia421c.bam b/iwdification/bam/cdia421c.bam new file mode 100644 index 0000000..233113a Binary files /dev/null and b/iwdification/bam/cdia421c.bam differ diff --git a/iwdification/bam/cdia424a.bam b/iwdification/bam/cdia424a.bam new file mode 100644 index 0000000..fcd86b0 Binary files /dev/null and b/iwdification/bam/cdia424a.bam differ diff --git a/iwdification/bam/cdia424b.bam b/iwdification/bam/cdia424b.bam new file mode 100644 index 0000000..52b7e23 Binary files /dev/null and b/iwdification/bam/cdia424b.bam differ diff --git a/iwdification/bam/cdia424c.bam b/iwdification/bam/cdia424c.bam new file mode 100644 index 0000000..baac7e9 Binary files /dev/null and b/iwdification/bam/cdia424c.bam differ diff --git a/iwdification/bam/cdia424p.bam b/iwdification/bam/cdia424p.bam new file mode 100644 index 0000000..2d82f9c Binary files /dev/null and b/iwdification/bam/cdia424p.bam differ diff --git a/iwdification/bam/cdia424v.bam b/iwdification/bam/cdia424v.bam new file mode 100644 index 0000000..e87d3f7 Binary files /dev/null and b/iwdification/bam/cdia424v.bam differ diff --git a/iwdification/bam/cdia511a.bam b/iwdification/bam/cdia511a.bam new file mode 100644 index 0000000..0702b2e Binary files /dev/null and b/iwdification/bam/cdia511a.bam differ diff --git a/iwdification/bam/cdia511b.bam b/iwdification/bam/cdia511b.bam new file mode 100644 index 0000000..3b3cdd2 Binary files /dev/null and b/iwdification/bam/cdia511b.bam differ diff --git a/iwdification/bam/cdia511c.bam b/iwdification/bam/cdia511c.bam new file mode 100644 index 0000000..c722fc7 Binary files /dev/null and b/iwdification/bam/cdia511c.bam differ diff --git a/iwdification/bam/cdia511v.bam b/iwdification/bam/cdia511v.bam new file mode 100644 index 0000000..60a0000 Binary files /dev/null and b/iwdification/bam/cdia511v.bam differ diff --git a/iwdification/bam/cdia512a.bam b/iwdification/bam/cdia512a.bam new file mode 100644 index 0000000..20b9600 Binary files /dev/null and b/iwdification/bam/cdia512a.bam differ diff --git a/iwdification/bam/cdia512b.bam b/iwdification/bam/cdia512b.bam new file mode 100644 index 0000000..d1a45e7 Binary files /dev/null and b/iwdification/bam/cdia512b.bam differ diff --git a/iwdification/bam/cdia512c.bam b/iwdification/bam/cdia512c.bam new file mode 100644 index 0000000..a3fe45d Binary files /dev/null and b/iwdification/bam/cdia512c.bam differ diff --git a/iwdification/bam/cdia513a.bam b/iwdification/bam/cdia513a.bam new file mode 100644 index 0000000..aed8b20 Binary files /dev/null and b/iwdification/bam/cdia513a.bam differ diff --git a/iwdification/bam/cdia513b.bam b/iwdification/bam/cdia513b.bam new file mode 100644 index 0000000..380736f Binary files /dev/null and b/iwdification/bam/cdia513b.bam differ diff --git a/iwdification/bam/cdia513c.bam b/iwdification/bam/cdia513c.bam new file mode 100644 index 0000000..4156ff5 Binary files /dev/null and b/iwdification/bam/cdia513c.bam differ diff --git a/iwdification/bam/cdia517a.bam b/iwdification/bam/cdia517a.bam new file mode 100644 index 0000000..3ab9449 Binary files /dev/null and b/iwdification/bam/cdia517a.bam differ diff --git a/iwdification/bam/cdia517b.bam b/iwdification/bam/cdia517b.bam new file mode 100644 index 0000000..ed45c2f Binary files /dev/null and b/iwdification/bam/cdia517b.bam differ diff --git a/iwdification/bam/cdia517c.bam b/iwdification/bam/cdia517c.bam new file mode 100644 index 0000000..67cbc7e Binary files /dev/null and b/iwdification/bam/cdia517c.bam differ diff --git a/iwdification/bam/cdia601a.bam b/iwdification/bam/cdia601a.bam new file mode 100644 index 0000000..0f0dc4b Binary files /dev/null and b/iwdification/bam/cdia601a.bam differ diff --git a/iwdification/bam/cdia601b.bam b/iwdification/bam/cdia601b.bam new file mode 100644 index 0000000..04e4b50 Binary files /dev/null and b/iwdification/bam/cdia601b.bam differ diff --git a/iwdification/bam/cdia601c.bam b/iwdification/bam/cdia601c.bam new file mode 100644 index 0000000..f6e4a95 Binary files /dev/null and b/iwdification/bam/cdia601c.bam differ diff --git a/iwdification/bam/cdia601v.bam b/iwdification/bam/cdia601v.bam new file mode 100644 index 0000000..b2f8054 Binary files /dev/null and b/iwdification/bam/cdia601v.bam differ diff --git a/iwdification/bam/cdia610a.bam b/iwdification/bam/cdia610a.bam new file mode 100644 index 0000000..85c3f1a Binary files /dev/null and b/iwdification/bam/cdia610a.bam differ diff --git a/iwdification/bam/cdia610b.bam b/iwdification/bam/cdia610b.bam new file mode 100644 index 0000000..e712c57 Binary files /dev/null and b/iwdification/bam/cdia610b.bam differ diff --git a/iwdification/bam/cdia610c.bam b/iwdification/bam/cdia610c.bam new file mode 100644 index 0000000..347957d Binary files /dev/null and b/iwdification/bam/cdia610c.bam differ diff --git a/iwdification/bam/cdia610w.bam b/iwdification/bam/cdia610w.bam new file mode 100644 index 0000000..fea1dd1 Binary files /dev/null and b/iwdification/bam/cdia610w.bam differ diff --git a/iwdification/bam/cdia611a.bam b/iwdification/bam/cdia611a.bam new file mode 100644 index 0000000..d475cb5 Binary files /dev/null and b/iwdification/bam/cdia611a.bam differ diff --git a/iwdification/bam/cdia611b.bam b/iwdification/bam/cdia611b.bam new file mode 100644 index 0000000..f7fc673 Binary files /dev/null and b/iwdification/bam/cdia611b.bam differ diff --git a/iwdification/bam/cdia611c.bam b/iwdification/bam/cdia611c.bam new file mode 100644 index 0000000..a7f2cf8 Binary files /dev/null and b/iwdification/bam/cdia611c.bam differ diff --git a/iwdification/bam/cdia612a.bam b/iwdification/bam/cdia612a.bam new file mode 100644 index 0000000..cced834 Binary files /dev/null and b/iwdification/bam/cdia612a.bam differ diff --git a/iwdification/bam/cdia612b.bam b/iwdification/bam/cdia612b.bam new file mode 100644 index 0000000..ef55595 Binary files /dev/null and b/iwdification/bam/cdia612b.bam differ diff --git a/iwdification/bam/cdia612c.bam b/iwdification/bam/cdia612c.bam new file mode 100644 index 0000000..c5ef46e Binary files /dev/null and b/iwdification/bam/cdia612c.bam differ diff --git a/iwdification/bam/cdia612p.bam b/iwdification/bam/cdia612p.bam new file mode 100644 index 0000000..f4178df Binary files /dev/null and b/iwdification/bam/cdia612p.bam differ diff --git a/iwdification/bam/cdia613a.bam b/iwdification/bam/cdia613a.bam new file mode 100644 index 0000000..b7e19ae Binary files /dev/null and b/iwdification/bam/cdia613a.bam differ diff --git a/iwdification/bam/cdia613b.bam b/iwdification/bam/cdia613b.bam new file mode 100644 index 0000000..97365d8 Binary files /dev/null and b/iwdification/bam/cdia613b.bam differ diff --git a/iwdification/bam/cdia613c.bam b/iwdification/bam/cdia613c.bam new file mode 100644 index 0000000..41e0246 Binary files /dev/null and b/iwdification/bam/cdia613c.bam differ diff --git a/iwdification/bam/cdia618a.bam b/iwdification/bam/cdia618a.bam new file mode 100644 index 0000000..47d25ec Binary files /dev/null and b/iwdification/bam/cdia618a.bam differ diff --git a/iwdification/bam/cdia618b.bam b/iwdification/bam/cdia618b.bam new file mode 100644 index 0000000..b73bed0 Binary files /dev/null and b/iwdification/bam/cdia618b.bam differ diff --git a/iwdification/bam/cdia618c.bam b/iwdification/bam/cdia618c.bam new file mode 100644 index 0000000..3e08588 Binary files /dev/null and b/iwdification/bam/cdia618c.bam differ diff --git a/iwdification/bam/cdia618w.bam b/iwdification/bam/cdia618w.bam new file mode 100644 index 0000000..11f22da Binary files /dev/null and b/iwdification/bam/cdia618w.bam differ diff --git a/iwdification/bam/cdia620a.bam b/iwdification/bam/cdia620a.bam new file mode 100644 index 0000000..ba36af1 Binary files /dev/null and b/iwdification/bam/cdia620a.bam differ diff --git a/iwdification/bam/cdia620b.bam b/iwdification/bam/cdia620b.bam new file mode 100644 index 0000000..643625e Binary files /dev/null and b/iwdification/bam/cdia620b.bam differ diff --git a/iwdification/bam/cdia620c.bam b/iwdification/bam/cdia620c.bam new file mode 100644 index 0000000..c69831a Binary files /dev/null and b/iwdification/bam/cdia620c.bam differ diff --git a/iwdification/bam/cdia703a.bam b/iwdification/bam/cdia703a.bam new file mode 100644 index 0000000..98989f4 Binary files /dev/null and b/iwdification/bam/cdia703a.bam differ diff --git a/iwdification/bam/cdia703b.bam b/iwdification/bam/cdia703b.bam new file mode 100644 index 0000000..bb323ce Binary files /dev/null and b/iwdification/bam/cdia703b.bam differ diff --git a/iwdification/bam/cdia703c.bam b/iwdification/bam/cdia703c.bam new file mode 100644 index 0000000..4403eac Binary files /dev/null and b/iwdification/bam/cdia703c.bam differ diff --git a/iwdification/bam/cdia707a.bam b/iwdification/bam/cdia707a.bam new file mode 100644 index 0000000..89eac66 Binary files /dev/null and b/iwdification/bam/cdia707a.bam differ diff --git a/iwdification/bam/cdia707b.bam b/iwdification/bam/cdia707b.bam new file mode 100644 index 0000000..9487eb3 Binary files /dev/null and b/iwdification/bam/cdia707b.bam differ diff --git a/iwdification/bam/cdia707c.bam b/iwdification/bam/cdia707c.bam new file mode 100644 index 0000000..af58c70 Binary files /dev/null and b/iwdification/bam/cdia707c.bam differ diff --git a/iwdification/bam/cdia707h.bam b/iwdification/bam/cdia707h.bam new file mode 100644 index 0000000..d14a46c Binary files /dev/null and b/iwdification/bam/cdia707h.bam differ diff --git a/iwdification/bam/cdia707x.bam b/iwdification/bam/cdia707x.bam new file mode 100644 index 0000000..116a97d Binary files /dev/null and b/iwdification/bam/cdia707x.bam differ diff --git a/iwdification/bam/cdia708a.bam b/iwdification/bam/cdia708a.bam new file mode 100644 index 0000000..d07b42d Binary files /dev/null and b/iwdification/bam/cdia708a.bam differ diff --git a/iwdification/bam/cdia708b.bam b/iwdification/bam/cdia708b.bam new file mode 100644 index 0000000..36fc7c7 Binary files /dev/null and b/iwdification/bam/cdia708b.bam differ diff --git a/iwdification/bam/cdia708c.bam b/iwdification/bam/cdia708c.bam new file mode 100644 index 0000000..1878941 Binary files /dev/null and b/iwdification/bam/cdia708c.bam differ diff --git a/iwdification/bam/cdia708v.bam b/iwdification/bam/cdia708v.bam new file mode 100644 index 0000000..408ef3a Binary files /dev/null and b/iwdification/bam/cdia708v.bam differ diff --git a/iwdification/bam/cdia711a.bam b/iwdification/bam/cdia711a.bam new file mode 100644 index 0000000..76f2e0c Binary files /dev/null and b/iwdification/bam/cdia711a.bam differ diff --git a/iwdification/bam/cdia711b.bam b/iwdification/bam/cdia711b.bam new file mode 100644 index 0000000..a51932c Binary files /dev/null and b/iwdification/bam/cdia711b.bam differ diff --git a/iwdification/bam/cdia711c.bam b/iwdification/bam/cdia711c.bam new file mode 100644 index 0000000..774ddde Binary files /dev/null and b/iwdification/bam/cdia711c.bam differ diff --git a/iwdification/bam/cdia711v.bam b/iwdification/bam/cdia711v.bam new file mode 100644 index 0000000..c65cdff Binary files /dev/null and b/iwdification/bam/cdia711v.bam differ diff --git a/iwdification/bam/cdia803a.bam b/iwdification/bam/cdia803a.bam new file mode 100644 index 0000000..13cd60e Binary files /dev/null and b/iwdification/bam/cdia803a.bam differ diff --git a/iwdification/bam/cdia803b.bam b/iwdification/bam/cdia803b.bam new file mode 100644 index 0000000..dd3a85f Binary files /dev/null and b/iwdification/bam/cdia803b.bam differ diff --git a/iwdification/bam/cdia803c.bam b/iwdification/bam/cdia803c.bam new file mode 100644 index 0000000..5202058 Binary files /dev/null and b/iwdification/bam/cdia803c.bam differ diff --git a/iwdification/bam/cdia804a.bam b/iwdification/bam/cdia804a.bam new file mode 100644 index 0000000..a39758e Binary files /dev/null and b/iwdification/bam/cdia804a.bam differ diff --git a/iwdification/bam/cdia804b.bam b/iwdification/bam/cdia804b.bam new file mode 100644 index 0000000..c6f305f Binary files /dev/null and b/iwdification/bam/cdia804b.bam differ diff --git a/iwdification/bam/cdia804c.bam b/iwdification/bam/cdia804c.bam new file mode 100644 index 0000000..e5f3420 Binary files /dev/null and b/iwdification/bam/cdia804c.bam differ diff --git a/iwdification/bam/cdia807a.bam b/iwdification/bam/cdia807a.bam new file mode 100644 index 0000000..2785f90 Binary files /dev/null and b/iwdification/bam/cdia807a.bam differ diff --git a/iwdification/bam/cdia807b.bam b/iwdification/bam/cdia807b.bam new file mode 100644 index 0000000..e374920 Binary files /dev/null and b/iwdification/bam/cdia807b.bam differ diff --git a/iwdification/bam/cdia807c.bam b/iwdification/bam/cdia807c.bam new file mode 100644 index 0000000..da99fad Binary files /dev/null and b/iwdification/bam/cdia807c.bam differ diff --git a/iwdification/bam/cdia807w.bam b/iwdification/bam/cdia807w.bam new file mode 100644 index 0000000..b7119be Binary files /dev/null and b/iwdification/bam/cdia807w.bam differ diff --git a/iwdification/bam/cdia902a.bam b/iwdification/bam/cdia902a.bam new file mode 100644 index 0000000..44598ee Binary files /dev/null and b/iwdification/bam/cdia902a.bam differ diff --git a/iwdification/bam/cdia902b.bam b/iwdification/bam/cdia902b.bam new file mode 100644 index 0000000..5f89b18 Binary files /dev/null and b/iwdification/bam/cdia902b.bam differ diff --git a/iwdification/bam/cdia902c.bam b/iwdification/bam/cdia902c.bam new file mode 100644 index 0000000..19fb9a6 Binary files /dev/null and b/iwdification/bam/cdia902c.bam differ diff --git a/iwdification/bam/cdibara.bam b/iwdification/bam/cdibara.bam new file mode 100644 index 0000000..b321714 Binary files /dev/null and b/iwdification/bam/cdibara.bam differ diff --git a/iwdification/bam/cdibarb.bam b/iwdification/bam/cdibarb.bam new file mode 100644 index 0000000..442d9d5 Binary files /dev/null and b/iwdification/bam/cdibarb.bam differ diff --git a/iwdification/bam/cdibarc.bam b/iwdification/bam/cdibarc.bam new file mode 100644 index 0000000..a9643fd Binary files /dev/null and b/iwdification/bam/cdibarc.bam differ diff --git a/iwdification/bam/cdibard.bam b/iwdification/bam/cdibard.bam new file mode 100644 index 0000000..50e71f1 Binary files /dev/null and b/iwdification/bam/cdibard.bam differ diff --git a/iwdification/bam/cdibare.bam b/iwdification/bam/cdibare.bam new file mode 100644 index 0000000..33575d2 Binary files /dev/null and b/iwdification/bam/cdibare.bam differ diff --git a/iwdification/bam/cdibarf.bam b/iwdification/bam/cdibarf.bam new file mode 100644 index 0000000..5f40ca4 Binary files /dev/null and b/iwdification/bam/cdibarf.bam differ diff --git a/iwdification/bam/cdid111a.bam b/iwdification/bam/cdid111a.bam new file mode 100644 index 0000000..250b2f2 Binary files /dev/null and b/iwdification/bam/cdid111a.bam differ diff --git a/iwdification/bam/cdid111b.bam b/iwdification/bam/cdid111b.bam new file mode 100644 index 0000000..6af21ae Binary files /dev/null and b/iwdification/bam/cdid111b.bam differ diff --git a/iwdification/bam/cdid111c.bam b/iwdification/bam/cdid111c.bam new file mode 100644 index 0000000..c5f835e Binary files /dev/null and b/iwdification/bam/cdid111c.bam differ diff --git a/iwdification/bam/cdid112a.bam b/iwdification/bam/cdid112a.bam new file mode 100644 index 0000000..954e269 Binary files /dev/null and b/iwdification/bam/cdid112a.bam differ diff --git a/iwdification/bam/cdid112b.bam b/iwdification/bam/cdid112b.bam new file mode 100644 index 0000000..2ea0512 Binary files /dev/null and b/iwdification/bam/cdid112b.bam differ diff --git a/iwdification/bam/cdid112c.bam b/iwdification/bam/cdid112c.bam new file mode 100644 index 0000000..abe49a7 Binary files /dev/null and b/iwdification/bam/cdid112c.bam differ diff --git a/iwdification/bam/cdid113a.bam b/iwdification/bam/cdid113a.bam new file mode 100644 index 0000000..619bd32 Binary files /dev/null and b/iwdification/bam/cdid113a.bam differ diff --git a/iwdification/bam/cdid113b.bam b/iwdification/bam/cdid113b.bam new file mode 100644 index 0000000..ccd3e24 Binary files /dev/null and b/iwdification/bam/cdid113b.bam differ diff --git a/iwdification/bam/cdid113c.bam b/iwdification/bam/cdid113c.bam new file mode 100644 index 0000000..cb857fd Binary files /dev/null and b/iwdification/bam/cdid113c.bam differ diff --git a/iwdification/bam/cdid113v.bam b/iwdification/bam/cdid113v.bam new file mode 100644 index 0000000..e81ae1e Binary files /dev/null and b/iwdification/bam/cdid113v.bam differ diff --git a/iwdification/bam/cdid214a.bam b/iwdification/bam/cdid214a.bam new file mode 100644 index 0000000..5fea94e Binary files /dev/null and b/iwdification/bam/cdid214a.bam differ diff --git a/iwdification/bam/cdid214b.bam b/iwdification/bam/cdid214b.bam new file mode 100644 index 0000000..84d2c9d Binary files /dev/null and b/iwdification/bam/cdid214b.bam differ diff --git a/iwdification/bam/cdid214c.bam b/iwdification/bam/cdid214c.bam new file mode 100644 index 0000000..593b70f Binary files /dev/null and b/iwdification/bam/cdid214c.bam differ diff --git a/iwdification/bam/cdid216a.bam b/iwdification/bam/cdid216a.bam new file mode 100644 index 0000000..19cb608 Binary files /dev/null and b/iwdification/bam/cdid216a.bam differ diff --git a/iwdification/bam/cdid216b.bam b/iwdification/bam/cdid216b.bam new file mode 100644 index 0000000..2449f4d Binary files /dev/null and b/iwdification/bam/cdid216b.bam differ diff --git a/iwdification/bam/cdid216c.bam b/iwdification/bam/cdid216c.bam new file mode 100644 index 0000000..9801292 Binary files /dev/null and b/iwdification/bam/cdid216c.bam differ diff --git a/iwdification/bam/cdid216v.bam b/iwdification/bam/cdid216v.bam new file mode 100644 index 0000000..5126dc0 Binary files /dev/null and b/iwdification/bam/cdid216v.bam differ diff --git a/iwdification/bam/cdid217a.bam b/iwdification/bam/cdid217a.bam new file mode 100644 index 0000000..ef9d511 Binary files /dev/null and b/iwdification/bam/cdid217a.bam differ diff --git a/iwdification/bam/cdid217b.bam b/iwdification/bam/cdid217b.bam new file mode 100644 index 0000000..01487ca Binary files /dev/null and b/iwdification/bam/cdid217b.bam differ diff --git a/iwdification/bam/cdid217c.bam b/iwdification/bam/cdid217c.bam new file mode 100644 index 0000000..7ab6027 Binary files /dev/null and b/iwdification/bam/cdid217c.bam differ diff --git a/iwdification/bam/cdid217i.bam b/iwdification/bam/cdid217i.bam new file mode 100644 index 0000000..81c058b Binary files /dev/null and b/iwdification/bam/cdid217i.bam differ diff --git a/iwdification/bam/cdid218a.bam b/iwdification/bam/cdid218a.bam new file mode 100644 index 0000000..b65a2d5 Binary files /dev/null and b/iwdification/bam/cdid218a.bam differ diff --git a/iwdification/bam/cdid218b.bam b/iwdification/bam/cdid218b.bam new file mode 100644 index 0000000..0f76d28 Binary files /dev/null and b/iwdification/bam/cdid218b.bam differ diff --git a/iwdification/bam/cdid218c.bam b/iwdification/bam/cdid218c.bam new file mode 100644 index 0000000..21af429 Binary files /dev/null and b/iwdification/bam/cdid218c.bam differ diff --git a/iwdification/bam/cdid313a.bam b/iwdification/bam/cdid313a.bam new file mode 100644 index 0000000..feb51d2 Binary files /dev/null and b/iwdification/bam/cdid313a.bam differ diff --git a/iwdification/bam/cdid313b.bam b/iwdification/bam/cdid313b.bam new file mode 100644 index 0000000..abad0c8 Binary files /dev/null and b/iwdification/bam/cdid313b.bam differ diff --git a/iwdification/bam/cdid313c.bam b/iwdification/bam/cdid313c.bam new file mode 100644 index 0000000..21e9af1 Binary files /dev/null and b/iwdification/bam/cdid313c.bam differ diff --git a/iwdification/bam/cdid315a.bam b/iwdification/bam/cdid315a.bam new file mode 100644 index 0000000..70fceba Binary files /dev/null and b/iwdification/bam/cdid315a.bam differ diff --git a/iwdification/bam/cdid315b.bam b/iwdification/bam/cdid315b.bam new file mode 100644 index 0000000..d8026e8 Binary files /dev/null and b/iwdification/bam/cdid315b.bam differ diff --git a/iwdification/bam/cdid315c.bam b/iwdification/bam/cdid315c.bam new file mode 100644 index 0000000..9a513ff Binary files /dev/null and b/iwdification/bam/cdid315c.bam differ diff --git a/iwdification/bam/cdid316a.bam b/iwdification/bam/cdid316a.bam new file mode 100644 index 0000000..8c984c6 Binary files /dev/null and b/iwdification/bam/cdid316a.bam differ diff --git a/iwdification/bam/cdid316b.bam b/iwdification/bam/cdid316b.bam new file mode 100644 index 0000000..b6654cb Binary files /dev/null and b/iwdification/bam/cdid316b.bam differ diff --git a/iwdification/bam/cdid316c.bam b/iwdification/bam/cdid316c.bam new file mode 100644 index 0000000..d59d7c6 Binary files /dev/null and b/iwdification/bam/cdid316c.bam differ diff --git a/iwdification/bam/cdid318a.bam b/iwdification/bam/cdid318a.bam new file mode 100644 index 0000000..bd084fb Binary files /dev/null and b/iwdification/bam/cdid318a.bam differ diff --git a/iwdification/bam/cdid318b.bam b/iwdification/bam/cdid318b.bam new file mode 100644 index 0000000..a36f0bf Binary files /dev/null and b/iwdification/bam/cdid318b.bam differ diff --git a/iwdification/bam/cdid318c.bam b/iwdification/bam/cdid318c.bam new file mode 100644 index 0000000..4b05512 Binary files /dev/null and b/iwdification/bam/cdid318c.bam differ diff --git a/iwdification/bam/cdid318i.bam b/iwdification/bam/cdid318i.bam new file mode 100644 index 0000000..3c2e5a5 Binary files /dev/null and b/iwdification/bam/cdid318i.bam differ diff --git a/iwdification/bam/cdid319a.bam b/iwdification/bam/cdid319a.bam new file mode 100644 index 0000000..c01ecb6 Binary files /dev/null and b/iwdification/bam/cdid319a.bam differ diff --git a/iwdification/bam/cdid319b.bam b/iwdification/bam/cdid319b.bam new file mode 100644 index 0000000..b892014 Binary files /dev/null and b/iwdification/bam/cdid319b.bam differ diff --git a/iwdification/bam/cdid319c.bam b/iwdification/bam/cdid319c.bam new file mode 100644 index 0000000..e89b30b Binary files /dev/null and b/iwdification/bam/cdid319c.bam differ diff --git a/iwdification/bam/cdid320a.bam b/iwdification/bam/cdid320a.bam new file mode 100644 index 0000000..d1b0517 Binary files /dev/null and b/iwdification/bam/cdid320a.bam differ diff --git a/iwdification/bam/cdid320b.bam b/iwdification/bam/cdid320b.bam new file mode 100644 index 0000000..1a1f9e9 Binary files /dev/null and b/iwdification/bam/cdid320b.bam differ diff --git a/iwdification/bam/cdid320c.bam b/iwdification/bam/cdid320c.bam new file mode 100644 index 0000000..30303ae Binary files /dev/null and b/iwdification/bam/cdid320c.bam differ diff --git a/iwdification/bam/cdid320v.bam b/iwdification/bam/cdid320v.bam new file mode 100644 index 0000000..d1c27f7 Binary files /dev/null and b/iwdification/bam/cdid320v.bam differ diff --git a/iwdification/bam/cdid320x.bam b/iwdification/bam/cdid320x.bam new file mode 100644 index 0000000..b8ddb32 Binary files /dev/null and b/iwdification/bam/cdid320x.bam differ diff --git a/iwdification/bam/cdid320z.bam b/iwdification/bam/cdid320z.bam new file mode 100644 index 0000000..d1c27f7 Binary files /dev/null and b/iwdification/bam/cdid320z.bam differ diff --git a/iwdification/bam/cdid321a.bam b/iwdification/bam/cdid321a.bam new file mode 100644 index 0000000..193921b Binary files /dev/null and b/iwdification/bam/cdid321a.bam differ diff --git a/iwdification/bam/cdid321b.bam b/iwdification/bam/cdid321b.bam new file mode 100644 index 0000000..6ef0797 Binary files /dev/null and b/iwdification/bam/cdid321b.bam differ diff --git a/iwdification/bam/cdid321c.bam b/iwdification/bam/cdid321c.bam new file mode 100644 index 0000000..5acb155 Binary files /dev/null and b/iwdification/bam/cdid321c.bam differ diff --git a/iwdification/bam/cdid321v.bam b/iwdification/bam/cdid321v.bam new file mode 100644 index 0000000..b88bce8 Binary files /dev/null and b/iwdification/bam/cdid321v.bam differ diff --git a/iwdification/bam/cdid323a.bam b/iwdification/bam/cdid323a.bam new file mode 100644 index 0000000..4af73e2 Binary files /dev/null and b/iwdification/bam/cdid323a.bam differ diff --git a/iwdification/bam/cdid323b.bam b/iwdification/bam/cdid323b.bam new file mode 100644 index 0000000..68372ac Binary files /dev/null and b/iwdification/bam/cdid323b.bam differ diff --git a/iwdification/bam/cdid323c.bam b/iwdification/bam/cdid323c.bam new file mode 100644 index 0000000..8806f63 Binary files /dev/null and b/iwdification/bam/cdid323c.bam differ diff --git a/iwdification/bam/cdid323v.bam b/iwdification/bam/cdid323v.bam new file mode 100644 index 0000000..6c2e7ce Binary files /dev/null and b/iwdification/bam/cdid323v.bam differ diff --git a/iwdification/bam/cdid410a.bam b/iwdification/bam/cdid410a.bam new file mode 100644 index 0000000..62aa998 Binary files /dev/null and b/iwdification/bam/cdid410a.bam differ diff --git a/iwdification/bam/cdid410b.bam b/iwdification/bam/cdid410b.bam new file mode 100644 index 0000000..d8fc4ff Binary files /dev/null and b/iwdification/bam/cdid410b.bam differ diff --git a/iwdification/bam/cdid410c.bam b/iwdification/bam/cdid410c.bam new file mode 100644 index 0000000..a30baec Binary files /dev/null and b/iwdification/bam/cdid410c.bam differ diff --git a/iwdification/bam/cdid411a.bam b/iwdification/bam/cdid411a.bam new file mode 100644 index 0000000..125563f Binary files /dev/null and b/iwdification/bam/cdid411a.bam differ diff --git a/iwdification/bam/cdid411b.bam b/iwdification/bam/cdid411b.bam new file mode 100644 index 0000000..21bca64 Binary files /dev/null and b/iwdification/bam/cdid411b.bam differ diff --git a/iwdification/bam/cdid411c.bam b/iwdification/bam/cdid411c.bam new file mode 100644 index 0000000..0649ec3 Binary files /dev/null and b/iwdification/bam/cdid411c.bam differ diff --git a/iwdification/bam/cdid411v.bam b/iwdification/bam/cdid411v.bam new file mode 100644 index 0000000..b031946 Binary files /dev/null and b/iwdification/bam/cdid411v.bam differ diff --git a/iwdification/bam/cdid412a.bam b/iwdification/bam/cdid412a.bam new file mode 100644 index 0000000..1da7de5 Binary files /dev/null and b/iwdification/bam/cdid412a.bam differ diff --git a/iwdification/bam/cdid412b.bam b/iwdification/bam/cdid412b.bam new file mode 100644 index 0000000..26618f1 Binary files /dev/null and b/iwdification/bam/cdid412b.bam differ diff --git a/iwdification/bam/cdid412c.bam b/iwdification/bam/cdid412c.bam new file mode 100644 index 0000000..bc5f11e Binary files /dev/null and b/iwdification/bam/cdid412c.bam differ diff --git a/iwdification/bam/cdid412v.bam b/iwdification/bam/cdid412v.bam new file mode 100644 index 0000000..c3a003e Binary files /dev/null and b/iwdification/bam/cdid412v.bam differ diff --git a/iwdification/bam/cdid414a.bam b/iwdification/bam/cdid414a.bam new file mode 100644 index 0000000..8710574 Binary files /dev/null and b/iwdification/bam/cdid414a.bam differ diff --git a/iwdification/bam/cdid414b.bam b/iwdification/bam/cdid414b.bam new file mode 100644 index 0000000..d6abeaa Binary files /dev/null and b/iwdification/bam/cdid414b.bam differ diff --git a/iwdification/bam/cdid414c.bam b/iwdification/bam/cdid414c.bam new file mode 100644 index 0000000..6359c6a Binary files /dev/null and b/iwdification/bam/cdid414c.bam differ diff --git a/iwdification/bam/cdid415a.bam b/iwdification/bam/cdid415a.bam new file mode 100644 index 0000000..6793746 Binary files /dev/null and b/iwdification/bam/cdid415a.bam differ diff --git a/iwdification/bam/cdid415b.bam b/iwdification/bam/cdid415b.bam new file mode 100644 index 0000000..e270802 Binary files /dev/null and b/iwdification/bam/cdid415b.bam differ diff --git a/iwdification/bam/cdid415c.bam b/iwdification/bam/cdid415c.bam new file mode 100644 index 0000000..683c3f6 Binary files /dev/null and b/iwdification/bam/cdid415c.bam differ diff --git a/iwdification/bam/cdid417a.bam b/iwdification/bam/cdid417a.bam new file mode 100644 index 0000000..a742627 Binary files /dev/null and b/iwdification/bam/cdid417a.bam differ diff --git a/iwdification/bam/cdid417b.bam b/iwdification/bam/cdid417b.bam new file mode 100644 index 0000000..245796e Binary files /dev/null and b/iwdification/bam/cdid417b.bam differ diff --git a/iwdification/bam/cdid417c.bam b/iwdification/bam/cdid417c.bam new file mode 100644 index 0000000..9525dbb Binary files /dev/null and b/iwdification/bam/cdid417c.bam differ diff --git a/iwdification/bam/cdid417v.bam b/iwdification/bam/cdid417v.bam new file mode 100644 index 0000000..2507d58 Binary files /dev/null and b/iwdification/bam/cdid417v.bam differ diff --git a/iwdification/bam/cdid419a.bam b/iwdification/bam/cdid419a.bam new file mode 100644 index 0000000..0dacaee Binary files /dev/null and b/iwdification/bam/cdid419a.bam differ diff --git a/iwdification/bam/cdid419b.bam b/iwdification/bam/cdid419b.bam new file mode 100644 index 0000000..16156fb Binary files /dev/null and b/iwdification/bam/cdid419b.bam differ diff --git a/iwdification/bam/cdid419c.bam b/iwdification/bam/cdid419c.bam new file mode 100644 index 0000000..b4e20c2 Binary files /dev/null and b/iwdification/bam/cdid419c.bam differ diff --git a/iwdification/bam/cdid420a.bam b/iwdification/bam/cdid420a.bam new file mode 100644 index 0000000..6ab188f Binary files /dev/null and b/iwdification/bam/cdid420a.bam differ diff --git a/iwdification/bam/cdid420b.bam b/iwdification/bam/cdid420b.bam new file mode 100644 index 0000000..078b274 Binary files /dev/null and b/iwdification/bam/cdid420b.bam differ diff --git a/iwdification/bam/cdid420c.bam b/iwdification/bam/cdid420c.bam new file mode 100644 index 0000000..99d2eba Binary files /dev/null and b/iwdification/bam/cdid420c.bam differ diff --git a/iwdification/bam/cdid420i.bam b/iwdification/bam/cdid420i.bam new file mode 100644 index 0000000..9055fc0 Binary files /dev/null and b/iwdification/bam/cdid420i.bam differ diff --git a/iwdification/bam/cdid422a.bam b/iwdification/bam/cdid422a.bam new file mode 100644 index 0000000..c44d780 Binary files /dev/null and b/iwdification/bam/cdid422a.bam differ diff --git a/iwdification/bam/cdid422b.bam b/iwdification/bam/cdid422b.bam new file mode 100644 index 0000000..eb70f96 Binary files /dev/null and b/iwdification/bam/cdid422b.bam differ diff --git a/iwdification/bam/cdid422c.bam b/iwdification/bam/cdid422c.bam new file mode 100644 index 0000000..5ac6a95 Binary files /dev/null and b/iwdification/bam/cdid422c.bam differ diff --git a/iwdification/bam/cdid511a.bam b/iwdification/bam/cdid511a.bam new file mode 100644 index 0000000..ca7f8ec Binary files /dev/null and b/iwdification/bam/cdid511a.bam differ diff --git a/iwdification/bam/cdid511b.bam b/iwdification/bam/cdid511b.bam new file mode 100644 index 0000000..fbcdbf8 Binary files /dev/null and b/iwdification/bam/cdid511b.bam differ diff --git a/iwdification/bam/cdid511c.bam b/iwdification/bam/cdid511c.bam new file mode 100644 index 0000000..8fe56bc Binary files /dev/null and b/iwdification/bam/cdid511c.bam differ diff --git a/iwdification/bam/cdid512a.bam b/iwdification/bam/cdid512a.bam new file mode 100644 index 0000000..cab1447 Binary files /dev/null and b/iwdification/bam/cdid512a.bam differ diff --git a/iwdification/bam/cdid512b.bam b/iwdification/bam/cdid512b.bam new file mode 100644 index 0000000..8740b47 Binary files /dev/null and b/iwdification/bam/cdid512b.bam differ diff --git a/iwdification/bam/cdid512c.bam b/iwdification/bam/cdid512c.bam new file mode 100644 index 0000000..cdd9741 Binary files /dev/null and b/iwdification/bam/cdid512c.bam differ diff --git a/iwdification/bam/cdid512v.bam b/iwdification/bam/cdid512v.bam new file mode 100644 index 0000000..7d62564 Binary files /dev/null and b/iwdification/bam/cdid512v.bam differ diff --git a/iwdification/bam/cdid514a.bam b/iwdification/bam/cdid514a.bam new file mode 100644 index 0000000..34ab980 Binary files /dev/null and b/iwdification/bam/cdid514a.bam differ diff --git a/iwdification/bam/cdid514b.bam b/iwdification/bam/cdid514b.bam new file mode 100644 index 0000000..22d667c Binary files /dev/null and b/iwdification/bam/cdid514b.bam differ diff --git a/iwdification/bam/cdid514c.bam b/iwdification/bam/cdid514c.bam new file mode 100644 index 0000000..3f879a8 Binary files /dev/null and b/iwdification/bam/cdid514c.bam differ diff --git a/iwdification/bam/cdid514y.bam b/iwdification/bam/cdid514y.bam new file mode 100644 index 0000000..d491650 Binary files /dev/null and b/iwdification/bam/cdid514y.bam differ diff --git a/iwdification/bam/cdid514z.bam b/iwdification/bam/cdid514z.bam new file mode 100644 index 0000000..68f0fb4 Binary files /dev/null and b/iwdification/bam/cdid514z.bam differ diff --git a/iwdification/bam/cdid516a.bam b/iwdification/bam/cdid516a.bam new file mode 100644 index 0000000..5e0eed3 Binary files /dev/null and b/iwdification/bam/cdid516a.bam differ diff --git a/iwdification/bam/cdid516b.bam b/iwdification/bam/cdid516b.bam new file mode 100644 index 0000000..032328f Binary files /dev/null and b/iwdification/bam/cdid516b.bam differ diff --git a/iwdification/bam/cdid516c.bam b/iwdification/bam/cdid516c.bam new file mode 100644 index 0000000..4683adf Binary files /dev/null and b/iwdification/bam/cdid516c.bam differ diff --git a/iwdification/bam/cdid517a.bam b/iwdification/bam/cdid517a.bam new file mode 100644 index 0000000..46581e3 Binary files /dev/null and b/iwdification/bam/cdid517a.bam differ diff --git a/iwdification/bam/cdid517b.bam b/iwdification/bam/cdid517b.bam new file mode 100644 index 0000000..8141e16 Binary files /dev/null and b/iwdification/bam/cdid517b.bam differ diff --git a/iwdification/bam/cdid517c.bam b/iwdification/bam/cdid517c.bam new file mode 100644 index 0000000..1d53fbb Binary files /dev/null and b/iwdification/bam/cdid517c.bam differ diff --git a/iwdification/bam/cdid609a.bam b/iwdification/bam/cdid609a.bam new file mode 100644 index 0000000..58a454b Binary files /dev/null and b/iwdification/bam/cdid609a.bam differ diff --git a/iwdification/bam/cdid609b.bam b/iwdification/bam/cdid609b.bam new file mode 100644 index 0000000..95db0fc Binary files /dev/null and b/iwdification/bam/cdid609b.bam differ diff --git a/iwdification/bam/cdid609c.bam b/iwdification/bam/cdid609c.bam new file mode 100644 index 0000000..b869e51 Binary files /dev/null and b/iwdification/bam/cdid609c.bam differ diff --git a/iwdification/bam/cdid609v.bam b/iwdification/bam/cdid609v.bam new file mode 100644 index 0000000..84de005 Binary files /dev/null and b/iwdification/bam/cdid609v.bam differ diff --git a/iwdification/bam/cdid613a.bam b/iwdification/bam/cdid613a.bam new file mode 100644 index 0000000..fbd636e Binary files /dev/null and b/iwdification/bam/cdid613a.bam differ diff --git a/iwdification/bam/cdid613b.bam b/iwdification/bam/cdid613b.bam new file mode 100644 index 0000000..4c94a03 Binary files /dev/null and b/iwdification/bam/cdid613b.bam differ diff --git a/iwdification/bam/cdid613c.bam b/iwdification/bam/cdid613c.bam new file mode 100644 index 0000000..0f58e28 Binary files /dev/null and b/iwdification/bam/cdid613c.bam differ diff --git a/iwdification/bam/cdid613v.bam b/iwdification/bam/cdid613v.bam new file mode 100644 index 0000000..dd26f6e Binary files /dev/null and b/iwdification/bam/cdid613v.bam differ diff --git a/iwdification/bam/cdid714a.bam b/iwdification/bam/cdid714a.bam new file mode 100644 index 0000000..baade87 Binary files /dev/null and b/iwdification/bam/cdid714a.bam differ diff --git a/iwdification/bam/cdid714b.bam b/iwdification/bam/cdid714b.bam new file mode 100644 index 0000000..2da9bed Binary files /dev/null and b/iwdification/bam/cdid714b.bam differ diff --git a/iwdification/bam/cdid714c.bam b/iwdification/bam/cdid714c.bam new file mode 100644 index 0000000..0f30d19 Binary files /dev/null and b/iwdification/bam/cdid714c.bam differ diff --git a/iwdification/bam/cdid715a.bam b/iwdification/bam/cdid715a.bam new file mode 100644 index 0000000..655fc35 Binary files /dev/null and b/iwdification/bam/cdid715a.bam differ diff --git a/iwdification/bam/cdid715b.bam b/iwdification/bam/cdid715b.bam new file mode 100644 index 0000000..f7129cb Binary files /dev/null and b/iwdification/bam/cdid715b.bam differ diff --git a/iwdification/bam/cdid715c.bam b/iwdification/bam/cdid715c.bam new file mode 100644 index 0000000..b04a481 Binary files /dev/null and b/iwdification/bam/cdid715c.bam differ diff --git a/iwdification/bam/cdid716a.bam b/iwdification/bam/cdid716a.bam new file mode 100644 index 0000000..6eb75b4 Binary files /dev/null and b/iwdification/bam/cdid716a.bam differ diff --git a/iwdification/bam/cdid716b.bam b/iwdification/bam/cdid716b.bam new file mode 100644 index 0000000..a378828 Binary files /dev/null and b/iwdification/bam/cdid716b.bam differ diff --git a/iwdification/bam/cdid716c.bam b/iwdification/bam/cdid716c.bam new file mode 100644 index 0000000..dea6c83 Binary files /dev/null and b/iwdification/bam/cdid716c.bam differ diff --git a/iwdification/bam/cdid717a.bam b/iwdification/bam/cdid717a.bam new file mode 100644 index 0000000..28b7164 Binary files /dev/null and b/iwdification/bam/cdid717a.bam differ diff --git a/iwdification/bam/cdid717b.bam b/iwdification/bam/cdid717b.bam new file mode 100644 index 0000000..35d92c6 Binary files /dev/null and b/iwdification/bam/cdid717b.bam differ diff --git a/iwdification/bam/cdid717c.bam b/iwdification/bam/cdid717c.bam new file mode 100644 index 0000000..4051e31 Binary files /dev/null and b/iwdification/bam/cdid717c.bam differ diff --git a/iwdification/bam/cdid718a.bam b/iwdification/bam/cdid718a.bam new file mode 100644 index 0000000..70f4d26 Binary files /dev/null and b/iwdification/bam/cdid718a.bam differ diff --git a/iwdification/bam/cdid718b.bam b/iwdification/bam/cdid718b.bam new file mode 100644 index 0000000..9b9993a Binary files /dev/null and b/iwdification/bam/cdid718b.bam differ diff --git a/iwdification/bam/cdid718c.bam b/iwdification/bam/cdid718c.bam new file mode 100644 index 0000000..d9ac193 Binary files /dev/null and b/iwdification/bam/cdid718c.bam differ diff --git a/iwdification/bam/cdid718y.bam b/iwdification/bam/cdid718y.bam new file mode 100644 index 0000000..062f264 Binary files /dev/null and b/iwdification/bam/cdid718y.bam differ diff --git a/iwdification/bam/cdid718z.bam b/iwdification/bam/cdid718z.bam new file mode 100644 index 0000000..e5c8b95 Binary files /dev/null and b/iwdification/bam/cdid718z.bam differ diff --git a/iwdification/bam/cdid720a.bam b/iwdification/bam/cdid720a.bam new file mode 100644 index 0000000..ed932d8 Binary files /dev/null and b/iwdification/bam/cdid720a.bam differ diff --git a/iwdification/bam/cdid720b.bam b/iwdification/bam/cdid720b.bam new file mode 100644 index 0000000..86c5734 Binary files /dev/null and b/iwdification/bam/cdid720b.bam differ diff --git a/iwdification/bam/cdid720c.bam b/iwdification/bam/cdid720c.bam new file mode 100644 index 0000000..c54947c Binary files /dev/null and b/iwdification/bam/cdid720c.bam differ diff --git a/iwdification/bam/cdid720v.bam b/iwdification/bam/cdid720v.bam new file mode 100644 index 0000000..dd7aa91 Binary files /dev/null and b/iwdification/bam/cdid720v.bam differ diff --git a/iwdification/bam/cdid723a.bam b/iwdification/bam/cdid723a.bam new file mode 100644 index 0000000..1c7ae0b Binary files /dev/null and b/iwdification/bam/cdid723a.bam differ diff --git a/iwdification/bam/cdid723b.bam b/iwdification/bam/cdid723b.bam new file mode 100644 index 0000000..78884ff Binary files /dev/null and b/iwdification/bam/cdid723b.bam differ diff --git a/iwdification/bam/cdid723c.bam b/iwdification/bam/cdid723c.bam new file mode 100644 index 0000000..be6194d Binary files /dev/null and b/iwdification/bam/cdid723c.bam differ diff --git a/iwdification/bam/cdillush.bam b/iwdification/bam/cdillush.bam new file mode 100644 index 0000000..80dcfaa Binary files /dev/null and b/iwdification/bam/cdillush.bam differ diff --git a/iwdification/bam/cdinvoch.bam b/iwdification/bam/cdinvoch.bam new file mode 100644 index 0000000..3448407 Binary files /dev/null and b/iwdification/bam/cdinvoch.bam differ diff --git a/iwdification/bam/cdmsum1h.bam b/iwdification/bam/cdmsum1h.bam new file mode 100644 index 0000000..55113f1 Binary files /dev/null and b/iwdification/bam/cdmsum1h.bam differ diff --git a/iwdification/bam/cdmsum1x.bam b/iwdification/bam/cdmsum1x.bam new file mode 100644 index 0000000..c9dce9c Binary files /dev/null and b/iwdification/bam/cdmsum1x.bam differ diff --git a/iwdification/bam/cdnecroh.bam b/iwdification/bam/cdnecroh.bam new file mode 100644 index 0000000..f33cc46 Binary files /dev/null and b/iwdification/bam/cdnecroh.bam differ diff --git a/iwdification/bam/cdparalh.bam b/iwdification/bam/cdparalh.bam new file mode 100644 index 0000000..2377868 Binary files /dev/null and b/iwdification/bam/cdparalh.bam differ diff --git a/iwdification/bam/cdprayrh.bam b/iwdification/bam/cdprayrh.bam new file mode 100644 index 0000000..443ae69 Binary files /dev/null and b/iwdification/bam/cdprayrh.bam differ diff --git a/iwdification/bam/cdrecith.bam b/iwdification/bam/cdrecith.bam new file mode 100644 index 0000000..1872f8d Binary files /dev/null and b/iwdification/bam/cdrecith.bam differ diff --git a/iwdification/bam/cdrwofah.bam b/iwdification/bam/cdrwofah.bam new file mode 100644 index 0000000..44656ff Binary files /dev/null and b/iwdification/bam/cdrwofah.bam differ diff --git a/iwdification/bam/cdsalc.bam b/iwdification/bam/cdsalc.bam new file mode 100644 index 0000000..edd6a5f Binary files /dev/null and b/iwdification/bam/cdsalc.bam differ diff --git a/iwdification/bam/cdsalf.bam b/iwdification/bam/cdsalf.bam new file mode 100644 index 0000000..c3904b8 Binary files /dev/null and b/iwdification/bam/cdsalf.bam differ diff --git a/iwdification/bam/cduwardx.bam b/iwdification/bam/cduwardx.bam new file mode 100644 index 0000000..6f7e07a Binary files /dev/null and b/iwdification/bam/cduwardx.bam differ diff --git a/iwdification/bam/cgabjura.bam b/iwdification/bam/cgabjura.bam new file mode 100644 index 0000000..3b073ac Binary files /dev/null and b/iwdification/bam/cgabjura.bam differ diff --git a/iwdification/bam/cgaltera.bam b/iwdification/bam/cgaltera.bam new file mode 100644 index 0000000..e65434b Binary files /dev/null and b/iwdification/bam/cgaltera.bam differ diff --git a/iwdification/bam/cgconjur.bam b/iwdification/bam/cgconjur.bam new file mode 100644 index 0000000..3aaad83 Binary files /dev/null and b/iwdification/bam/cgconjur.bam differ diff --git a/iwdification/bam/cgdivina.bam b/iwdification/bam/cgdivina.bam new file mode 100644 index 0000000..620ccef Binary files /dev/null and b/iwdification/bam/cgdivina.bam differ diff --git a/iwdification/bam/cgenchan.bam b/iwdification/bam/cgenchan.bam new file mode 100644 index 0000000..9036ac3 Binary files /dev/null and b/iwdification/bam/cgenchan.bam differ diff --git a/iwdification/bam/cgillusi.bam b/iwdification/bam/cgillusi.bam new file mode 100644 index 0000000..1c61e57 Binary files /dev/null and b/iwdification/bam/cgillusi.bam differ diff --git a/iwdification/bam/cginvoca.bam b/iwdification/bam/cginvoca.bam new file mode 100644 index 0000000..37e3c8e Binary files /dev/null and b/iwdification/bam/cginvoca.bam differ diff --git a/iwdification/bam/cgnecrom.bam b/iwdification/bam/cgnecrom.bam new file mode 100644 index 0000000..1311839 Binary files /dev/null and b/iwdification/bam/cgnecrom.bam differ diff --git a/iwdification/cre/cdgibomb.cre b/iwdification/cre/cdgibomb.cre new file mode 100644 index 0000000..b9716cf Binary files /dev/null and b/iwdification/cre/cdgibomb.cre differ diff --git a/iwdification/cre/cdgiborb.cre b/iwdification/cre/cdgiborb.cre new file mode 100644 index 0000000..0eec50e Binary files /dev/null and b/iwdification/cre/cdgiborb.cre differ diff --git a/iwdification/cre/cdia513.cre b/iwdification/cre/cdia513.cre new file mode 100644 index 0000000..26e9359 Binary files /dev/null and b/iwdification/cre/cdia513.cre differ diff --git a/iwdification/cre/cdia517.cre b/iwdification/cre/cdia517.cre new file mode 100644 index 0000000..a860dd8 Binary files /dev/null and b/iwdification/cre/cdia517.cre differ diff --git a/iwdification/cre/cdia711.cre b/iwdification/cre/cdia711.cre new file mode 100644 index 0000000..0668922 Binary files /dev/null and b/iwdification/cre/cdia711.cre differ diff --git a/iwdification/cre/cdid613.cre b/iwdification/cre/cdid613.cre new file mode 100644 index 0000000..af17e1b Binary files /dev/null and b/iwdification/cre/cdid613.cre differ diff --git a/iwdification/cre/cdid723.cre b/iwdification/cre/cdid723.cre new file mode 100644 index 0000000..4a62756 Binary files /dev/null and b/iwdification/cre/cdid723.cre differ diff --git a/iwdification/cre/cdm4ghst.cre b/iwdification/cre/cdm4ghst.cre new file mode 100644 index 0000000..77ad861 Binary files /dev/null and b/iwdification/cre/cdm4ghst.cre differ diff --git a/iwdification/cre/cdm4ogr.cre b/iwdification/cre/cdm4ogr.cre new file mode 100644 index 0000000..e955b13 Binary files /dev/null and b/iwdification/cre/cdm4ogr.cre differ diff --git a/iwdification/cre/cdm4yeti.cre b/iwdification/cre/cdm4yeti.cre new file mode 100644 index 0000000..ac27acd Binary files /dev/null and b/iwdification/cre/cdm4yeti.cre differ diff --git a/iwdification/cre/cdm5gspi.cre b/iwdification/cre/cdm5gspi.cre new file mode 100644 index 0000000..3d7e42e Binary files /dev/null and b/iwdification/cre/cdm5gspi.cre differ diff --git a/iwdification/cre/cdm5jzom.cre b/iwdification/cre/cdm5jzom.cre new file mode 100644 index 0000000..0cb4605 Binary files /dev/null and b/iwdification/cre/cdm5jzom.cre differ diff --git a/iwdification/cre/cdm5mino.cre b/iwdification/cre/cdm5mino.cre new file mode 100644 index 0000000..d241b23 Binary files /dev/null and b/iwdification/cre/cdm5mino.cre differ diff --git a/iwdification/cre/cdm6crwl.cre b/iwdification/cre/cdm6crwl.cre new file mode 100644 index 0000000..1490536 Binary files /dev/null and b/iwdification/cre/cdm6crwl.cre differ diff --git a/iwdification/cre/cdm6pspi.cre b/iwdification/cre/cdm6pspi.cre new file mode 100644 index 0000000..df206c6 Binary files /dev/null and b/iwdification/cre/cdm6pspi.cre differ diff --git a/iwdification/cre/cdm6salc.cre b/iwdification/cre/cdm6salc.cre new file mode 100644 index 0000000..4a3256f Binary files /dev/null and b/iwdification/cre/cdm6salc.cre differ diff --git a/iwdification/cre/cdm6salf.cre b/iwdification/cre/cdm6salf.cre new file mode 100644 index 0000000..e15a54a Binary files /dev/null and b/iwdification/cre/cdm6salf.cre differ diff --git a/iwdification/cre/cdm7bgrd.cre b/iwdification/cre/cdm7bgrd.cre new file mode 100644 index 0000000..dbb2363 Binary files /dev/null and b/iwdification/cre/cdm7bgrd.cre differ diff --git a/iwdification/cre/cdm7umbh.cre b/iwdification/cre/cdm7umbh.cre new file mode 100644 index 0000000..ccd7d3c Binary files /dev/null and b/iwdification/cre/cdm7umbh.cre differ diff --git a/iwdification/cre/cds1gob1.cre b/iwdification/cre/cds1gob1.cre new file mode 100644 index 0000000..2617aa2 Binary files /dev/null and b/iwdification/cre/cds1gob1.cre differ diff --git a/iwdification/cre/cds1gob2.cre b/iwdification/cre/cds1gob2.cre new file mode 100644 index 0000000..1b4efe1 Binary files /dev/null and b/iwdification/cre/cds1gob2.cre differ diff --git a/iwdification/cre/cds1gob3.cre b/iwdification/cre/cds1gob3.cre new file mode 100644 index 0000000..ae0fe4a Binary files /dev/null and b/iwdification/cre/cds1gob3.cre differ diff --git a/iwdification/cre/cds1liz3.cre b/iwdification/cre/cds1liz3.cre new file mode 100644 index 0000000..e00623e Binary files /dev/null and b/iwdification/cre/cds1liz3.cre differ diff --git a/iwdification/cre/cds1liz4.cre b/iwdification/cre/cds1liz4.cre new file mode 100644 index 0000000..e56e4e6 Binary files /dev/null and b/iwdification/cre/cds1liz4.cre differ diff --git a/iwdification/cre/cds1trl6.cre b/iwdification/cre/cds1trl6.cre new file mode 100644 index 0000000..2eb2d45 Binary files /dev/null and b/iwdification/cre/cds1trl6.cre differ diff --git a/iwdification/cre/cds1trl7.cre b/iwdification/cre/cds1trl7.cre new file mode 100644 index 0000000..8f26636 Binary files /dev/null and b/iwdification/cre/cds1trl7.cre differ diff --git a/iwdification/cre/cds1trl8.cre b/iwdification/cre/cds1trl8.cre new file mode 100644 index 0000000..3344f32 Binary files /dev/null and b/iwdification/cre/cds1trl8.cre differ diff --git a/iwdification/cre/cds2gob1.cre b/iwdification/cre/cds2gob1.cre new file mode 100644 index 0000000..c67cdf5 Binary files /dev/null and b/iwdification/cre/cds2gob1.cre differ diff --git a/iwdification/cre/cds2gob2.cre b/iwdification/cre/cds2gob2.cre new file mode 100644 index 0000000..c3a7750 Binary files /dev/null and b/iwdification/cre/cds2gob2.cre differ diff --git a/iwdification/cre/cds2gob3.cre b/iwdification/cre/cds2gob3.cre new file mode 100644 index 0000000..ef07167 Binary files /dev/null and b/iwdification/cre/cds2gob3.cre differ diff --git a/iwdification/cre/cds2liz5.cre b/iwdification/cre/cds2liz5.cre new file mode 100644 index 0000000..5de2140 Binary files /dev/null and b/iwdification/cre/cds2liz5.cre differ diff --git a/iwdification/cre/cds2liz6.cre b/iwdification/cre/cds2liz6.cre new file mode 100644 index 0000000..d235ba0 Binary files /dev/null and b/iwdification/cre/cds2liz6.cre differ diff --git a/iwdification/cre/cds2liz7.cre b/iwdification/cre/cds2liz7.cre new file mode 100644 index 0000000..415b1d1 Binary files /dev/null and b/iwdification/cre/cds2liz7.cre differ diff --git a/iwdification/cre/cds3trl7.cre b/iwdification/cre/cds3trl7.cre new file mode 100644 index 0000000..b0118fb Binary files /dev/null and b/iwdification/cre/cds3trl7.cre differ diff --git a/iwdification/cre/cds3trl8.cre b/iwdification/cre/cds3trl8.cre new file mode 100644 index 0000000..a2838c6 Binary files /dev/null and b/iwdification/cre/cds3trl8.cre differ diff --git a/iwdification/cre/cds3umb8.cre b/iwdification/cre/cds3umb8.cre new file mode 100644 index 0000000..54a1dee Binary files /dev/null and b/iwdification/cre/cds3umb8.cre differ diff --git a/iwdification/cre/cds3umb9.cre b/iwdification/cre/cds3umb9.cre new file mode 100644 index 0000000..0b75ad9 Binary files /dev/null and b/iwdification/cre/cds3umb9.cre differ diff --git a/iwdification/cre/cdsuffo.cre b/iwdification/cre/cdsuffo.cre new file mode 100644 index 0000000..186126c Binary files /dev/null and b/iwdification/cre/cdsuffo.cre differ diff --git a/iwdification/cre/cduwar1.cre b/iwdification/cre/cduwar1.cre new file mode 100644 index 0000000..a61d48b Binary files /dev/null and b/iwdification/cre/cduwar1.cre differ diff --git a/iwdification/desktop.ini b/iwdification/desktop.ini new file mode 100644 index 0000000..2077481 --- /dev/null +++ b/iwdification/desktop.ini @@ -0,0 +1,6 @@ +[.ShellClassInfo] +IconResource=C:\Users\pca222\Desktop\ms\iwdification-Beta1\iwdification\style\g3.ico,0 +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/iwdification/dlg/botsmith.d b/iwdification/dlg/botsmith.d new file mode 100644 index 0000000..4b29739 --- /dev/null +++ b/iwdification/dlg/botsmith.d @@ -0,0 +1,23 @@ +EXTEND_BOTTOM BOTSMITH 4 + + IF ~PartyHasItem("cdax2h5")~ THEN GOTO PartyHasAxe + +END + +APPEND BOTSMITH + + IF ~~ THEN BEGIN PartyHasAxe SAY @6015 = @6016 + IF ~PartyGoldLT(5000)~ THEN REPLY #66606 GOTO 10 + IF ~PartyGoldGT(4999)~ THEN DO ~SetGlobal("cdax2h5","LOCALS",1) + TakePartyItemNum("cdax2h5",1) // battle standard +4 + DestroyItem("cdax2h5") + TakePartyGold(5000) + DestroyGold(5000)~ REPLY #66649 GOTO 11 + IF ~~ THEN REPLY #66650 GOTO MovingRightAlong + END + + IF ~~ THEN BEGIN MovingRightAlong SAY @6017 + COPY_TRANS BOTSMITH 4 + END + +END \ No newline at end of file diff --git a/iwdification/dlg/cdia517.d b/iwdification/dlg/cdia517.d new file mode 100644 index 0000000..f4e9787 --- /dev/null +++ b/iwdification/dlg/cdia517.d @@ -0,0 +1,5 @@ +BEGIN CDIA517 + +IF ~True()~ THEN BEGIN opening SAY @3034 + IF ~~ THEN DO ~DestroySelf()~ EXIT +END \ No newline at end of file diff --git a/iwdification/eff/cdfire1.eff b/iwdification/eff/cdfire1.eff new file mode 100644 index 0000000..49b0a7c Binary files /dev/null and b/iwdification/eff/cdfire1.eff differ diff --git a/iwdification/eff/cdia513.eff b/iwdification/eff/cdia513.eff new file mode 100644 index 0000000..6c437d5 Binary files /dev/null and b/iwdification/eff/cdia513.eff differ diff --git a/iwdification/eff/cdia611.eff b/iwdification/eff/cdia611.eff new file mode 100644 index 0000000..6a7e2e4 Binary files /dev/null and b/iwdification/eff/cdia611.eff differ diff --git a/iwdification/eff/cdia703.eff b/iwdification/eff/cdia703.eff new file mode 100644 index 0000000..3820bcc Binary files /dev/null and b/iwdification/eff/cdia703.eff differ diff --git a/iwdification/eff/cdia711.eff b/iwdification/eff/cdia711.eff new file mode 100644 index 0000000..876a785 Binary files /dev/null and b/iwdification/eff/cdia711.eff differ diff --git a/iwdification/eff/cdia803.eff b/iwdification/eff/cdia803.eff new file mode 100644 index 0000000..b00eef8 Binary files /dev/null and b/iwdification/eff/cdia803.eff differ diff --git a/iwdification/eff/cdia902.eff b/iwdification/eff/cdia902.eff new file mode 100644 index 0000000..398a9ec Binary files /dev/null and b/iwdification/eff/cdia902.eff differ diff --git a/iwdification/eff/cdid318.eff b/iwdification/eff/cdid318.eff new file mode 100644 index 0000000..c3848d0 Binary files /dev/null and b/iwdification/eff/cdid318.eff differ diff --git a/iwdification/eff/cdid321c.eff b/iwdification/eff/cdid321c.eff new file mode 100644 index 0000000..4cebeb2 Binary files /dev/null and b/iwdification/eff/cdid321c.eff differ diff --git a/iwdification/eff/cdid410.eff b/iwdification/eff/cdid410.eff new file mode 100644 index 0000000..f0c76e8 Binary files /dev/null and b/iwdification/eff/cdid410.eff differ diff --git a/iwdification/eff/cdid420.eff b/iwdification/eff/cdid420.eff new file mode 100644 index 0000000..8e3cc92 Binary files /dev/null and b/iwdification/eff/cdid420.eff differ diff --git a/iwdification/eff/cdid5110.eff b/iwdification/eff/cdid5110.eff new file mode 100644 index 0000000..ddb7a9f Binary files /dev/null and b/iwdification/eff/cdid5110.eff differ diff --git a/iwdification/eff/cdid5111.eff b/iwdification/eff/cdid5111.eff new file mode 100644 index 0000000..626480d Binary files /dev/null and b/iwdification/eff/cdid5111.eff differ diff --git a/iwdification/eff/cdid613.eff b/iwdification/eff/cdid613.eff new file mode 100644 index 0000000..12e4f71 Binary files /dev/null and b/iwdification/eff/cdid613.eff differ diff --git a/iwdification/eff/cdid613b.eff b/iwdification/eff/cdid613b.eff new file mode 100644 index 0000000..7df7e6f Binary files /dev/null and b/iwdification/eff/cdid613b.eff differ diff --git a/iwdification/eff/cdsalc.eff b/iwdification/eff/cdsalc.eff new file mode 100644 index 0000000..915c769 Binary files /dev/null and b/iwdification/eff/cdsalc.eff differ diff --git a/iwdification/eff/cdsalf.eff b/iwdification/eff/cdsalf.eff new file mode 100644 index 0000000..e13889e Binary files /dev/null and b/iwdification/eff/cdsalf.eff differ diff --git a/iwdification/eff/cduwar1.eff b/iwdification/eff/cduwar1.eff new file mode 100644 index 0000000..fe9d204 Binary files /dev/null and b/iwdification/eff/cduwar1.eff differ diff --git a/iwdification/itm/cd1d7sls.itm b/iwdification/itm/cd1d7sls.itm new file mode 100644 index 0000000..7837aca Binary files /dev/null and b/iwdification/itm/cd1d7sls.itm differ diff --git a/iwdification/itm/cdax2h1.itm b/iwdification/itm/cdax2h1.itm new file mode 100644 index 0000000..09c33f7 Binary files /dev/null and b/iwdification/itm/cdax2h1.itm differ diff --git a/iwdification/itm/cdax2h2.itm b/iwdification/itm/cdax2h2.itm new file mode 100644 index 0000000..34565a4 Binary files /dev/null and b/iwdification/itm/cdax2h2.itm differ diff --git a/iwdification/itm/cdax2h3.itm b/iwdification/itm/cdax2h3.itm new file mode 100644 index 0000000..6848464 Binary files /dev/null and b/iwdification/itm/cdax2h3.itm differ diff --git a/iwdification/itm/cdax2h4.itm b/iwdification/itm/cdax2h4.itm new file mode 100644 index 0000000..4d61dff Binary files /dev/null and b/iwdification/itm/cdax2h4.itm differ diff --git a/iwdification/itm/cdax2h5.itm b/iwdification/itm/cdax2h5.itm new file mode 100644 index 0000000..cbaf9b7 Binary files /dev/null and b/iwdification/itm/cdax2h5.itm differ diff --git a/iwdification/itm/cdax2h6.itm b/iwdification/itm/cdax2h6.itm new file mode 100644 index 0000000..9615c8e Binary files /dev/null and b/iwdification/itm/cdax2h6.itm differ diff --git a/iwdification/itm/cdgibomb.itm b/iwdification/itm/cdgibomb.itm new file mode 100644 index 0000000..5b22e97 Binary files /dev/null and b/iwdification/itm/cdgibomb.itm differ diff --git a/iwdification/itm/cdia221w.itm b/iwdification/itm/cdia221w.itm new file mode 100644 index 0000000..ebe2811 Binary files /dev/null and b/iwdification/itm/cdia221w.itm differ diff --git a/iwdification/itm/cdia513w.itm b/iwdification/itm/cdia513w.itm new file mode 100644 index 0000000..58bd7a7 Binary files /dev/null and b/iwdification/itm/cdia513w.itm differ diff --git a/iwdification/itm/cdia610w.itm b/iwdification/itm/cdia610w.itm new file mode 100644 index 0000000..1abb8f8 Binary files /dev/null and b/iwdification/itm/cdia610w.itm differ diff --git a/iwdification/itm/cdia618w.itm b/iwdification/itm/cdia618w.itm new file mode 100644 index 0000000..3fe74db Binary files /dev/null and b/iwdification/itm/cdia618w.itm differ diff --git a/iwdification/itm/cdia807w.itm b/iwdification/itm/cdia807w.itm new file mode 100644 index 0000000..641bd7f Binary files /dev/null and b/iwdification/itm/cdia807w.itm differ diff --git a/iwdification/itm/cdid217w.itm b/iwdification/itm/cdid217w.itm new file mode 100644 index 0000000..17de4f5 Binary files /dev/null and b/iwdification/itm/cdid217w.itm differ diff --git a/iwdification/itm/cdid318w.itm b/iwdification/itm/cdid318w.itm new file mode 100644 index 0000000..ebcdaa0 Binary files /dev/null and b/iwdification/itm/cdid318w.itm differ diff --git a/iwdification/itm/cdid420w.itm b/iwdification/itm/cdid420w.itm new file mode 100644 index 0000000..50c4ec2 Binary files /dev/null and b/iwdification/itm/cdid420w.itm differ diff --git a/iwdification/itm/cdid723w.itm b/iwdification/itm/cdid723w.itm new file mode 100644 index 0000000..7f32619 Binary files /dev/null and b/iwdification/itm/cdid723w.itm differ diff --git a/iwdification/itm/cdrg1hp2.itm b/iwdification/itm/cdrg1hp2.itm new file mode 100644 index 0000000..48a4b54 Binary files /dev/null and b/iwdification/itm/cdrg1hp2.itm differ diff --git a/iwdification/itm/cdsalc.itm b/iwdification/itm/cdsalc.itm new file mode 100644 index 0000000..8d67713 Binary files /dev/null and b/iwdification/itm/cdsalc.itm differ diff --git a/iwdification/itm/cdsalf.itm b/iwdification/itm/cdsalf.itm new file mode 100644 index 0000000..2134a7f Binary files /dev/null and b/iwdification/itm/cdsalf.itm differ diff --git a/iwdification/itm/cdsumamu.itm b/iwdification/itm/cdsumamu.itm new file mode 100644 index 0000000..8a121a7 Binary files /dev/null and b/iwdification/itm/cdsumamu.itm differ diff --git a/iwdification/itm/cdsumrng.itm b/iwdification/itm/cdsumrng.itm new file mode 100644 index 0000000..857b9c9 Binary files /dev/null and b/iwdification/itm/cdsumrng.itm differ diff --git a/iwdification/itm/cdtran20.itm b/iwdification/itm/cdtran20.itm new file mode 100644 index 0000000..3d31ead Binary files /dev/null and b/iwdification/itm/cdtran20.itm differ diff --git a/iwdification/itm/cdtran40.itm b/iwdification/itm/cdtran40.itm new file mode 100644 index 0000000..d2bcdca Binary files /dev/null and b/iwdification/itm/cdtran40.itm differ diff --git a/iwdification/itm/cdtran60.itm b/iwdification/itm/cdtran60.itm new file mode 100644 index 0000000..e493889 Binary files /dev/null and b/iwdification/itm/cdtran60.itm differ diff --git a/iwdification/itm/s5-20.itm b/iwdification/itm/s5-20.itm new file mode 100644 index 0000000..fb2af33 Binary files /dev/null and b/iwdification/itm/s5-20.itm differ diff --git a/iwdification/languages/english/setup.tra b/iwdification/languages/english/setup.tra new file mode 100644 index 0000000..2ebafc6 --- /dev/null +++ b/iwdification/languages/english/setup.tra @@ -0,0 +1,840 @@ + @0 = ~This functionality is already installed by another mod.~ + + @1000 = ~Icewind Dale Casting Graphics (Andyr)~ + + @2000 = ~Commoners Use Drab Colors~ + + @3000 = ~IWD Arcane Spell Pack~ + @3001 = ~Decastave~ + @3002 = ~Decastave +(Evocation) +Level: 2 +Range: Caster +Duration: 1 round/level +Casting Time: 2 +Area of Effect: Caster +Saving Throw: None +This spell creates a staff of force in the caster's hand. It is treated as a magical weapon, doing 1-6 hit points of damage per hit, and it can hit creatures immune to normal weapons. 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 1-2 hit points on the first strike. These hit points are added to the caster's, but they can only heal damage the caster has taken; they will not raise his hit points beyond his normal maximum.~ + @3003 = ~Cat's Grace~ + @3004 = ~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: Thieves gain 1d8 points, Fighters and Mages gain 1d6 points, and Clerics gain 1d4 points. Cat's Grace cannot raise a target's dexterity past 20.~ + @3005 = ~Snilloc's Snowball Swarm~ + @3006 = ~Snilloc's Snowball Swarm +(Evocation) +Level: 2 +Range: Sight of Caster +Duration: Instantaneous +Casting Time: 2 +Area of Effect: 25-foot radius +Saving Throw: 1/2 damage +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 1-3 hit points/level, up to a maximum of 8-24 hit points at level 8. Against fire-using or fire-dwelling creatures, it inflicts 1-6 hit points/level. ~ + @3007 = ~Icelance~ + @3008 = ~Icelance (Evocation) +Level: 3 +Range: Sight of Caster +Duration: Instantaneous +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 5-30 points of damage and forcing the target to make a saving throw vs. spell or be stunned for 1-4 rounds. ~ + @3009 = ~Lance of Disruption~ + @3010 = ~Lance of Disruption (Invocation) +Level: 3 +Range: 60 feet +Duration: Instantaneous +Casting Time: 3 +Area of Effect: Special +Saving Throw: 1/2 +This spell creates a lance of force, extending from the caster to a specified point 60 feet in the distance. Any creatures in the lance's path take 5d4 points of bludgeoning damage, +2 points of damage per level of the caster (maximum of +30). Victims can save vs. spell for half damage.~ + @3011 = ~Beltyn's Burning Blood~ + @3012 = ~Beltyn's Burning Blood +(Necromancy) +Level: 4 +Range: Sight of 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 3-12 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.~ + @3013 = ~Emotion: Hopelessness~ + @3014 = ~Emotion: Hopelessness +(Enchantment/Charm) +Level: 4 +Range: Sight of Caster +Duration: 1 turn +Casting Time: 4 +Area of Effect: 10-foot radius +Saving Throw: Neg. +This spell creates the emotion of hopelessness within the area of effect. All creatures affected by the spell just stand and do nothing for the duration of the spell. ~ + @3015 = ~Emotion: Courage~ + @3016 = ~Emotion: Courage +(Enchantment/Charm) +Level: 4 +Range: Sight of Caster +Duration: 5 turns +Casting Time: 4 +Area of Effect: 10-foot radius +Saving Throw: Neg. +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.~ + @3017 = ~Emotion: Fear~ + @3018 = ~Emotion: Fear +(Enchantment/Charm) +Level: 4 +Range: Sight of Caster +Duration: 5 rounds +Casting Time: 4 +Area of Effect: 10-foot radius +Saving Throw: Neg. +This spell creates the emotion of fear within the area of effect. All creatures affected by the spell flee for 5 rounds. ~ + @3019 = ~Emotion: Hope~ + @3020 = ~Emotion: Hope +(Enchantment/Charm) +Level: 4 +Range: Sight of Caster +Duration: 5 turns +Casting Time: 4 +Area of Effect: 10-foot radius +Saving Throw: Neg. +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. ~ + @3021 = ~Vitriolic Sphere~ + @3022 = ~Vitriolic Sphere (Conjuration) +Level: 4 +Range: Sight of Caster +Duration: Special +Casting Time: 4 +Area of Effect: Special +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 make a saving throw 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 the victim is entitled to a saving throw vs. spell to avoid further damage. The vitriolic sphere also splashes acid in a 5-foot radius around the primary target. Any creatures within the splash radius must save vs. polymorph/paralyzation 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.~ + @3023 = ~Shadow Monsters~ + @3024 = ~Shadow Monsters +(Illusion/Phantasm) +Level: 4 +Range: Sight of Caster +Duration: 1 round/level +Casting Time: 4 +Area of Effect: 20-foot cube +Saving Throw: Special +This spell shapes material from the Demiplane of Shadow into illusionary monsters. These monsters are randomly summoned one by one with Hit Dice between 1 and the level of the spellcaster, until the summoned creatures' Hit Dice total the spellcaster's level. (For example, a 15th level wizard could summon a 10th level creature one round, then the next round the next creature appearing would have 1 through 5 Hit Dice, and so on.) These shadowy creatures have only 20% of the hit points of their real-world counterparts, although their attacks do full damage. ~ + @3025 = ~Shroud of Flame~ + @3026 = ~Shroud of Flame (Invocation) +Level: 5 +Range: Sight of Caster +Duration: 1 round/2 levels (special) +Casting Time: 5 +Area of Effect: 1 creature +Saving Throw: Neg. +This spell causes a creature to burst into flames if it fails a saving throw vs. spell. The creature will burn for 2d6 points of damage every round, and gouts of flame erupt from the burning target, causing any creatures within ten feet of the target to take 1d4 points of damage from the flames. Anyone hit by the victim's flames must also make a saving throw 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.~ + @3027 = ~Demi-Shadow Monsters~ + @3028 = ~Demi-Shadow Monsters +(Illusion/Phantasm) +Level: 5 +Range: Sight of Caster +Duration: 1 round/level +Casting Time: 5 +Area of Effect: 20-foot cube +Saving Throw: None +This spell is similar to the 4th level wizard spell, Shadow Monsters, except the summoned creatures are much more powerful, with 40% of the hit points of their real-world counterpart.~ + @3029 = ~Summon Shadow~ + @3030 = ~Summon Shadow +(Conjuration/Summoning, Necromancy) +Level: 5 +Range: Sight of Caster +Duration: 1 round + 1 round/level +Casting Time: 5 +Area of Effect: 10-foot cube +Saving Throw: None +This spell summons one shadow for every three levels of the caster. This shadow will obey the orders of the caster, attacking his enemies or performing tasks until the spell expires or the shadows are slain. ~ + @3031 = ~Contact Other Plane~ + @3032 = ~Contact Other Plane (Divination) +Level: 5 +Range: Caster +Duration: Instantaneous +Casting Time: 1 round +Area of Effect: 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.~ + @3033 = ~Planar Spirit~ + @3034 = ~I don't do much yet.~ + @3035 = ~Lich Touch~ + @3036 = ~Lich Touch +(Necromancy) +Level: 6 +Range: Touch +Duration: 1 round/level +Casting Time: 6 +Area of Effect: 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 his hands glow with an unearthly green radiance that does 1-10 hit points of damage to a target and paralyzes them unless a saving throw vs. paralyzation is made. This spell has no effect on undead.~ + @3037 = ~Antimagic Shell~ + @3038 = ~Antimagic Shell +(Abjuration) +Level: 6 +Range: Caster +Duration: 1 turn/level +Casting Time: 1 +Area of Effect: Caster +Saving Throw: None +This spell surrounds the caster with an invisible barrier that moves with him. This barrier makes the wizard immune to any magical attacks, but it prevents the wizard from casting spells out of the shell.~ + @3039 = ~Monster Summoning IV~ + @3040 = ~Monster Summoning IV +(Conjuration/Summoning) +Level: 6 +Range: 40 yards +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 1-3 4th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ + @3041 = ~Otiluke's Freezing Sphere~ + @3042 = ~Otiluke's Freezing Sphere +(Alteration, Evocation) +Level: 6 +Range: Sight of Caster +Duration: Instantaneous +Casting Time: 6 +Area of Effect: 1 creature +Saving Throw: Neg. +This spell fires an orb of cold at a creature that inflicts 3-6 points of cold damage/level of the caster. If the target makes its saving throw, however, they have dodged the orb and avoided all damage.~ + @3043 = ~Shades~ + @3044 = ~Shades (Illusion/Phantasm) +Level: 6 +Range: Sight of Caster +Duration: 1 round/level +Casting Time: 6 +Area of Effect: 20-foot cube +Saving Throw: None +Shades is similar to Shadow Monsters and Demishadow 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 Demishadow Monsters, and they will obey the caster until the spell expires or they are slain.~ + @3045 = ~Darts of Bone~ + @3046 = ~Darts of Bone (Necromancy) +Level: 6 +Range: Caster +Duration: 5 rounds +Casting Time: 5 +Area of Effect: 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 damage, and a creature struck by a dart must save vs. death or take another 2d6 damage and have its strength reduced by 3 for 5 rounds. The caster's weapon proficiency with darts (or lack thereof) has no effect on the darts' chances to hit a target.~ + @3047 = ~Trollish Fortitude~ + @3048 = ~Trollish Fortitude (Necromancy) +Level: 6 +Range: Caster +Duration: 2 turns +Casting Time: 6 +Area of Effect: 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 his/her maximum hit points.~ + @3049 = ~Goblin Elite~ + @3050 = ~Tough Lizard Man~ + @3051 = ~Yeti~ + @3052 = ~Monster Summoning V~ + @3053 = ~Monster Summoning V +(Conjuration/Summoning) +Level: 7 +Range: 40 yards +Duration: 6 rounds + 1 round/level +Casting Time: 6 +Area of Effect: Special +Saving Throw: None +With the casting of this spell the wizard summons 1-3 5th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ + @3054 = ~Malavon's Rage~ + @3055 = ~Malavon's Rage +(Evocation) +Level: 7 +Range: Caster +Duration: Instantaneous +Casting Time: 1 +Area of Effect: 15-foot 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 20-80 points of piercing damage to everything caught in their path. This spell is especially useful when a mage is surrounded by enemies.~ + @3056 = ~Acid Storm~ + @3057 = ~Acid Storm +(Evocation) +Level: 7 +Range: Sight of Caster +Duration: 1 round/level +Casting Time: 7 +Area of Effect: 20-foot radius +Saving Throw: 1/2 +This spell unleashes an acidic downpour on the area of effect, doing 1-4 hit points of damage each round for the first three rounds, 1-6 hit points for the next three rounds, and 1-8 hit 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 the Acid Storm is cast continue to suffer damage as long as the spell duration lasts. Creatures make a saving throw vs. spell every round after they have been hit by the cloud - if successful, they only take half-damage (for that round only).~ + @3058 = ~Suffocate~ + @3059 = ~Suffocate (Alteration) +Level: 7 +Range: Sight of Caster +Duration: 4 rounds +Casting Time: 7 +Area of Effect: 10-foot radius +Saving Throw: 1/2 +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 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 may take a round for a character to catch their second wind.~ + @3060 = ~Monster Summoning VI~ + @3061 = ~Monster Summoning VI +(Conjuration/Summoning) +Level: 8 +Range: 40 yards +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 1-3 6th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ + @3062 = ~Monster Summoning VII~ + @3063 = ~Monster Summoning VII +(Conjuration/Summoning) +Level: 9 +Range: Special +Duration: 7 rounds + 1 round/level +Casting Time: 9 +Area of Effect: 80 yard radius +Saving Throw: None +With the casting of this spell the wizard summons 1-2 7th or 8th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.~ + @3064 = ~Ju-ju Zombie~ + @3065 = ~Boneguard Skeleton~ + @3066 = ~Mind Blank~ + @3067 = ~Mind Blank (Abjuration) +Level: 8 +Range: Caster +Duration: 1 Day +Casting Time: 1 +Area of Effect: 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, Command, Domination, Fear, Feeblemind, and any scrying by crystal balls or other divination methods.~ + @3068 = ~Iron Body~ + @3069 = ~Iron Body (Alteration) +Level: 8 +Range: Caster +Duration: 2 turns +Casting Time: 8 +Area of Effect: Caster +Saving Throw: None +This spell transforms the caster's body into living iron, granting him several powerful resistances and abilities. While the spell is in effect, the caster is 100% resistant to electricity, 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 + appropriate strength bonuses. Unfortunately, the caster's movement becomes slow and awkward, setting his movement rate to 25% of his normal, and he/she cannot cast spells while Iron Body is in effect.~ + @3070 = ~Iron Fist~ + + @4000 = ~IWD Divine Spell Pack~ + @4001 = ~Curse~ + @4002 = ~Curse (Conjuration/Summoning) +Level: 1 +Sphere: All +Range: Sight of Caster +Duration: 6 rounds +Casting Time: 1 round +Area of Effect: 25-foot radius +Saving Throw: None +When the Curse spell is uttered, the caster lowers the morale of enemy creatures and penalizes their saving throws and attack rolls by -1. At the instant the spell is completed, it affects all creatures in a 50-foot cube centered on the point selected by the caster (thus, affected creatures leaving the area are still subject to the spell's effect; those entering the area after the casting is completed are not).~ + @4003 = ~Cause Light Wounds~ + @4004 = ~Cause Light Wounds (Necromancy) +Level: 1 +Sphere: Healing +Range: Touch +Duration: Permanent +Casting Time: 5 +Area of Effect: 1 creature +Saving Throw: 1/2 +When casting this spell and touching a creature, the priest deals 8 points of damage (save for half damage) to the creature's body. This spell has no affect on undead, constructs, or extraplanar creatures. Cause Light Wounds cannot be cast by good characters.~ + @4005 = ~Sunscorch~ + @4006 = ~Sunscorch (Invocation) +Level: 1 +Sphere: Sun +Range: Sight of Caster +Duration: Instantaneous +Casting Time: 4 +Area of Effect: 1 creature +Saving Throw: 1/2 +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. The victim is allowed a saving throw vs. spell to take half damage. Any creature struck by the ray sustains 1d6 points of damage, plus 1 point per caster level. Undead creatures and monsters vulnerable to bright light sustain 1d6 points of damage, plus 2 points per level of the caster. In addition to sustaining damage, victims are also blinded for 3 rounds by the spell.~ + @4007 = ~Alicorn Lance~ + @4008 = ~Alicorn Lance +(Invocation) +Level: 2 +Sphere: Combat +Range: Sight of Caster +Duration: Instantaneous +Casting Time: 5 +Area of Effect: 1 creature +Saving Throw: 1/2 +This spell creates a silver-hued, partially ethereal lance shaped in the form of an alicorn (a unicorn horn). The spellcaster chooses a target and the alicorn lance instantaneously fires at it, inflicting 3d6 points of piercing damage, with a saving throw for half damage. Although the alicorn lance dissipates after it strikes, it leaves a silvery radiance around the target that makes it easier to see and hit, giving it a -2 penalty to its AC for 3 rounds.~ + @4009 = ~Beast Claw~ + @4010 = ~Beast Claw +(Alteration) +Level: 2 +Sphere: Combat +Range: Caster +Duration: 1 turn +Casting Time: 5 +Area of Effect: 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 (+ strength bonus) points of slashing damage. The caster can attack twice per round with the beast claws, with a +2 bonus to hit.~ + @4011 = ~Cause Moderate Wounds~ + @4012 = ~Cause Moderate Wounds (Necromancy) +Level: 2 +Sphere: Healing +Range: Touch +Duration: Permanent +Casting Time: 5 +Area of Effect: 1 creature +Saving Throw: 1/2 +When casting this spell and touching a creature, the priest deals 11 points of damage (save for half damage) to the creature's body. This spell has no affect on undead, constructs, or extraplanar creatures. Cause Moderate Wounds cannot be cast by good characters.~ + @4013 = ~Prayer~ + @4014 = ~Prayer (Conjuration/Summoning) +Level: 3 +Sphere: Combat +Range: Caster +Duration: 1 round/level +Casting Time: 6 +Area of Effect: 60-foot radius +Saving Throw: None +Prayer bestows favor on the priest and his allies, and curses their enemies. All attacks, damage, and saving throws by friendly characters gain +1, while enemy attacks, damage rolls and saves are all penalized by 1. Any creatures caught in 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 fighters want to chase down that fleeing goblin, the effects of the Prayer will follow him. ~ + @4015 = ~Cause Disease~ + @4016 = ~Cause Disease (Necromancy) +Level: 3 +Sphere: Healing +Range: Touch +Duration: 8 hours +Casting Time: 1 round +Area of Effect: 1 creature +Saving Throw: Neg. +This spell afflicts one creature the priest touches with a disease that saps the target of 5-20 points of strength. A saving throw vs. spell will negate the effects. This spell has no affect on undead, constructs, or extraplanar creatures. Cause Disease cannot be cast by good characters.~ + @4017 = ~Exaltation~ + @4018 = ~Exaltation (Abjuration) +Level: 3 +Sphere: Healing +Range: Touch +Duration: 1 turn +Casting Time: 1 round +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, 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.~ + @4019 = ~Moonblade~ + @4020 = ~Moonblade (Invocation) +Level: 3 +Sphere: Combat, Sun +Range: Caster +Duration: 2 turns +Casting Time: 6 +Area of Effect: Caster +Saving Throw: None +This spell summons forth a silent, weightless sword-like construct made of moonlight that extends 4 feet from the caster's hand. The moonblade is considered a +4 weapon for determining what creatures it can damage, though the bonus does not apply to THAC0. 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 damage, and 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.~ + @4021 = ~Circle of Bones~ + @4022 = ~Circle of Bones (Necromancy) +Level: 3 +Sphere: Guardian/Creation +Range: Caster +Duration: 3 rounds +Casting Time: 3 +Area of Effect: 3-foot radius +Saving Throw: None +This spell conjures forth a barrier of floating bones that spin rapidly around the caster. Anyone entering their path takes 1d6 crushing damage and 1d6 slashing damage per round. The caster cannot move for the duration of the spell. Circle of Bones cannot be cast by good characters.~ + @4023 = ~Spike Growth~ + @4024 = ~Spike Growth (Alteration) +Level: 3 +Sphere: Elemental (Earth) +Range: Sight of Caster +Duration: 1 turn +Casting Time: 6 +Area of Effect: 15-foot 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.~ + @4025 = ~Cloudburst~ + @4026 = ~Cloudburst (Invocation) +Level: 3 +Sphere: Elemental (Water) +Range: Sight of Caster +Duration: 2 rounds +Casting Time: 6 +Area of Effect: 30-foot radius +Saving Throw: None +This spell brings forth a magical rain that saturates the area of effect. All cold and fire-using/dwelling creatures take 2d3 points of 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 damage, with a saving throw for half damage. Flame Blade spells, Shroud of Flame, and salamander auras are extinguished by Cloudburst.~ + @4027 = ~Storm Shell~ + @4028 = ~Storm Shell (Abjuration) +Level: 3 +Sphere: Protection, Weather +Range: Caster +Duration: 1 turn +Casting Time: 6 +Area of Effect: Caster +Saving Throw: None +This spell surrounds the caster with a dark sphere of disruptive energy that moves with him. The storm shell reduces all fire, cold, and electrical damage to the caster by 50%.~ + @4029 = ~Giant Insect~ + @4030 = ~Giant Insect (Alteration) +Level: 4 +Sphere: Animal +Range: Sight of Caster +Duration: 8 hours +Casting Time: 7 +Area of Effect: 1-6 insects +Saving Throw: None +This spell summons small insects to the caster, then enlarges them to giant size, turning them into fearsome allies. The strength and kind of the insects varies according to the caster's level; the higher level the caster, the stronger insects that are summoned.~ + @4031 = ~Produce Fire~ + @4032 = ~Produce Fire (Alteration) +Level: 4 +Sphere: Elemental (Fire) +Range: Sight of Caster +Duration: 1 round +Casting Time: 7 +Area of Effect: 6-foot radius +Saving Throw: None +When cast, flames erupt from the target point, doing 1-4 hit points of fire damage plus 1 point per level of the caster to all creatures within the area of effect. ~ + @4033 = ~Static Charge~ + @4034 = ~Static Charge (Alteration) +Level: 4 +Sphere: Weather +Range: Caster +Duration: 1 turn/level +Casting Time: 1 round +Area of Effect: Sight of 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, doing 2-16 points of electrical damage, plus an additional 1-8 points for each of the caster's experience levels. The charge keeps going off, once every turn, for the duration of the spell. ~ + @4035 = ~Recitation~ + @4036 = ~Recitation +(Abjuration, Invocation/Evocation) +Level: 4 +Sphere: Combat +Range: Caster +Duration: 1 round/level +Casting Time: 7 +Area of Effect: 60-foot radius +Saving Throw: None +By reciting a sacred passage or declaration, the priest invokes his deity's blessing upon himself and his allies, while sowing confusion and weakness among his enemies. The priest's allies gain a +2 bonus to their attack and saving throws, and enemies of the priest receive a -2 penalty to their attacks and saving throws. This spell does not nullify a prayer spell - the two may be cast in tandem, and the effects are cumulative. ~ + @4037 = ~Blood Rage~ + @4038 = ~Blood Rage (Alteration) +Level: 4 +Sphere: Combat +Range: Sight of Caster +Duration: 2 turns +Casting Time: 7 +Area of Effect: 1 allied 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 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 strength, 10 extra hit points, and a bonus to his/her 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 their Strength drops to 3 for 2 turns. Blood Rage cannot affect creatures of lawful alignment and cannot be cast by lawful characters.~ + @4039 = ~Cloud of Pestilence~ + @4040 = ~Cloud of Pestilence (Alteration) +Level: 4 +Sphere: Combat, Elemental (Air) +Range: Sight of Caster +Duration: 4 rounds +Casting Time: 7 +Area of Effect: 20-foot radius +Saving Throw: Neg. +This spell transforms the air in a 20-foot radius into sickening, grayish mists. The caster and non-living creatures are immune to the effects of the cloud. Every round of exposure to the disease-ridden air causes the loss of 3 points of strength and dexterity, 3 points of damage, and blindness. These effects last 1 turn. Cloud of Pestilence can only be cast by evil characters.~ + @4041 = ~Unfailing Endurance~ + @4042 = ~Unfailing Endurance (Necromancy) +Level: 4 +Sphere: Necromantic +Range: Touch +Duration: Instantaneous +Casting Time: 1 round +Area of Effect: 1 creature +Saving Throw: None +This spell restores the stamina of the creature touched, bringing back the energy lost from a day and a half of exertion. Note that this may not be sufficient to bring a character out of the "fatigued" state.~ + @4043 = ~Star Metal Cudgel~ + @4044 = ~Star Metal Cudgel (Conjuration) +Level: 4 +Sphere: Combat +Range: Caster +Duration: 3 turns +Casting Time: 7 +Area of Effect: Caster +Saving Throw: None +This spell creates a meteoric iron magical club that is +2 to hit and damage, and treated as a +4 weapon for purposes of what it can hit. Proficiency, strength, and specialization bonuses and penalties apply. It does an additional 2d6 points of crushing damage against unnatural creatures (undead, elementals, golems, outer planar creatures, etc).~ + @4045 = ~Thorn Spray~ + @4046 = ~Thorn Spray (Alteration) +Level: 4 +Sphere: Plant +Range: Special +Duration: Instantaneous +Casting Time: 3 +Area of Effect: 30-foot long, 25-foot wide cone +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 his hand. The thorn spray covers a 30-foot long, 60-foot wide cone, inflicting 2d10 points of piercing damage to all creatures within the area of effect, or 1d10 points of damage if a saving throw vs. death is successful.~ + @4047 = ~Righteous Wrath of the Faithful~ + @4048 = ~Righteous Wrath of the Faithful +(Enchantment/Charm) +Level: 5 +Sphere: Combat +Range: Caster +Duration: 1 round/level +Casting Time: 8 +Area of Effect: 30-foot radius +Saving Throw: None +This spells 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 1-8 bonus hit points for the duration of the spell (these hit points can take a target beyond their hit point maximum). All creatures of the same alignment, however, gain an extra attack every round and a +2 to their attacks, damage rolls, and saving throws. Anyone affected by Righteous Wrath of the Faithful will suffer fatigue when the spell wears off.~ + @4049 = ~Spike Stones~ + @4050 = ~Spike Stones +(Alteration, Enchantment) +Level: 5 +Sphere: Elemental (Earth) +Range: Sight of Caster +Duration: 12 rounds +Casting Time: 6 +Area of Effect: 15-foot radius +Saving Throw: None +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%.~ + @4051 = ~Shield of Lathander~ + @4052 = ~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 a target immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Shield of Lathander. Only non-evil characters can cast a Shield of Lathander.~ + @4053 = ~Undead Ward~ + @4054 = ~Undead Ward (Necromancy) +Level: 5 +Sphere: Wards +Range: Caster +Duration: 1 turn +Casting Time: 7 +Area of Effect: 20-foot radius +Saving Throw: None +This spell amplifies the influence a priest has over undead, though it is tied to the area surrounding the priest where cast 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.~ + @4055 = ~Animal Rage~ + @4056 = ~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 of 19, +20 hit points, +20% movement, and +2 to all saving throws. The target loses the ability to cast spells while Animal Rage is in effect. He or she can be controlled normally unless enemies are within sight, at which time the target immediately attacks in melee, using whatever is in hand. There is a 5% chance per round that the target will go berserk, attacking friend and foe alike.~ + @4057 = ~Whirlwind~ + @4058 = ~Whirlwind +Level: 6 +Range: 35 Yards +Duration: 5 rounds +Casting Time: 9 +Area of Effect: 20' radius area +Saving Throw: Special + +This spell creates a small whirlwind, which the caster can direct to a location within his sight. This newly formed whirlwind starts to randomly wander around the target area, hurling away every creature in its path, be it friend or foe. Those who cannot escape automatically suffer 2d8 crushing and 2d8 slashing damage, and must save vs. breath or fall uncounscious for two rounds. The whirlwind instantly kills creatures with less than 3 Hit Dice. + +Once a whirlwind has been summoned the druid has no control over these raging winds, so this spell must be used with caution.~ + @4059 = ~Entropy Shield~ + @4060 = ~Entropy Shield (Abjuration) +Level: 6 +Sphere: Protection +Range: Caster +Duration: 1 round/level +Casting Time: 9 +Area of Effect: 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 and a 50% resistance to most attack forms: electricity, fire, cold, and so on. It also gives the caster +2 to all his/her saving throws and immunity to all missile-based attacks.~ + @4061 = ~Symbol of Pain~ + @4062 = ~Symbol of Pain +(Conjuration/Summoning) +Level: 7 +Sphere: Guardian +Range: Sight of Caster +Duration: 2-20 turns +Casting Time: 3 +Area of Effect: 60-foot radius +Saving Throw: Neg. +All creatures within 60 feet of the Symbol of Pain when it's invoked must make a saving throw vs. spell. If failed, they are overwhelmed by pain, suffering a -4 to their attack rolls, a -2 to Dexterity and a -2 to their Armor Class. ~ + @4063 = ~Symbol of Hopelessness~ + @4064 = ~Symbol of Hopelessness +(Conjuration/Summoning) +Level: 7 +Sphere: Guardian +Range: Sight of Caster +Duration: 2 turns +Casting Time: 3 +Area of Effect: 60-foot radius +Saving Throw: Neg. +All creatures within 60 feet of the symbol of hopelessness when it's invoked must make a saving throw vs. spell with a -2 penalty. If failed, they will stand in place, overwhelmed by dejection and surrender. They will make no move to defend themselves from attack.~ + @4065 = ~Impervious Sanctity of Mind~ + @4066 = ~Impervious Sanctity of Mind +(Abjuration) +Level: 7 +Sphere: Protection +Range: Caster +Duration: 1 turn/level +Casting Time: 1 round +Area of Effect: Caster +Saving Throw: None +This spell steels the caster's mind against any outside influence. Charm, Command, Confusion, Domination, Fear, Feeblemind, Hold, Sleep and any psionic attack directed at the caster will fail as long as this spell is in effect. ~ + @4067 = ~Destruction~ + @4068 = ~Destruction (Necromancy) +Level: 7 +Sphere: Healing +Range: Touch +Duration: Instantaneous +Casting Time: 1 round +Area of Effect: Caster +Saving Throw: Special +This spell instantly destroys a target, blasting them into small chunks. The victim is allowed a save vs. death at -4; if successful, the target takes 8d6 points of 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.~ + @4069 = ~Greater Shield of Lathander~ + @4070 = ~Greater Shield of Lathander +(Conjuration) +Level: 7 +Sphere: Guardian +Range: Touch +Duration: 3 rounds +Casting Time: 1 round +Area of Effect: 1 creature +Saving Throw: None +This spell grants a target 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 characters.~ + @4071 = ~Mist of Eldath~ + @4072 = ~Mist of Eldath (Invocation) +Level: 7 +Sphere: Elemental +Range: Sight of Caster +Duration: 1 round +Casting Time: 1 round +Area of Effect: 10-foot 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, poison, and healed of 25 points of damage.~ + @4073 = ~Stalker~ + @4074 = ~Stalker (Conjuration) +Level: 7 +Sphere: Plant +Range: Sight of Caster +Duration: 8 hours +Casting Time: 1 round +Area of Effect: Special +Saving Throw: None +This spell creates two shambling mounds. These creatures willingly aid the caster in combat or whatever other duties they are assigned and have the capability to carry out.~ + @4075 = ~Outlined in a Silvery Radiance (AC penalty of 2)~ + @4076 = ~Bombardier Beetle~ + @4077 = ~Boring Beetle~ + @4078 = ~Wracking Pains~ + @4079 = ~Cure Moderate Wounds~ + @4080 = ~Cure Moderate Wounds +(Necromancy) +Sphere: Healing +Level: 2 +Range: Touch +Duration: Instantaneous +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 points of damage to a living creature.~ + + @5000 = ~IWD Bard Song~ + @5001 = ~The Ballad of Three Heroes - Combat Bonuses~ + @5002 = ~The Tale of Curran Strongheart - Immunity Fear~ + @5003 = ~Tymora's Melody - Luck and Skill Bonuses~ + @5004 = ~The Song of Kaudies - Resistant to Sound Attacks~ + @5005 = ~The Siren's Yearning - Enthralls Creatures~ + @5006 = ~War Chant of Sith - Armor Bonuses and Regeneration~ + @5007 = ~Enthralled~ + + @6000 = ~Two Handed Axe Item Pack~ + @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/lib/baldur.baf b/iwdification/lib/baldur.baf new file mode 100644 index 0000000..028b33f --- /dev/null +++ b/iwdification/lib/baldur.baf @@ -0,0 +1,15 @@ +IF + Global("CDZOSA","GLOBAL",1) +THEN + RESPONSE #100 + SetGlobalTimer("CDZOSAREBOOT","GLOBAL",6) + SetGlobal("CDZOSA","GLOBAL",2) +END + +IF + Global("CDZOSA","GLOBAL",2) + GlobalTimerExpired("CDZOSAREBOOT","GLOBAL") +THEN + RESPONSE #100 + SetGlobal("CDZOSA","GLOBAL",0) +END \ No newline at end of file diff --git a/iwdification/lib/blank.itm b/iwdification/lib/blank.itm new file mode 100644 index 0000000..6c80dee Binary files /dev/null and b/iwdification/lib/blank.itm differ diff --git a/iwdification/lib/blankpr.itm b/iwdification/lib/blankpr.itm new file mode 100644 index 0000000..ae6d942 Binary files /dev/null and b/iwdification/lib/blankpr.itm differ diff --git a/iwdification/lib/cdcloudt.spl b/iwdification/lib/cdcloudt.spl new file mode 100644 index 0000000..a97c7e3 Binary files /dev/null and b/iwdification/lib/cdcloudt.spl differ diff --git a/iwdification/lib/cdstrimm.eff b/iwdification/lib/cdstrimm.eff new file mode 100644 index 0000000..363ea55 Binary files /dev/null and b/iwdification/lib/cdstrimm.eff differ diff --git a/iwdification/lib/cloud.cre b/iwdification/lib/cloud.cre new file mode 100644 index 0000000..6bdd194 Binary files /dev/null and b/iwdification/lib/cloud.cre differ diff --git a/iwdification/lib/cloud.eff b/iwdification/lib/cloud.eff new file mode 100644 index 0000000..dfb60e8 Binary files /dev/null and b/iwdification/lib/cloud.eff differ diff --git a/iwdification/lib/cloudmn.baf b/iwdification/lib/cloudmn.baf new file mode 100644 index 0000000..09e2a11 --- /dev/null +++ b/iwdification/lib/cloudmn.baf @@ -0,0 +1,59 @@ +IF + GlobalTimerExpired("OutOfTime","LOCALS") + Global("initialise","LOCALS",1) +THEN + RESPONSE #100 + DestroySelf() +END + +IF + !Global("initialise","LOCALS",1) +THEN + RESPONSE #100 + SetGlobal("shortstart","LOCALS",3) + SetGlobalTimer("OutOfTime","LOCALS",%cloud_dur%) + SetGlobal("initialise","LOCALS",1) + Continue() +END + +IF + !GlobalTimerNotExpired("cloudtime","LOCALS") + GlobalTimerExpired("shortstart","LOCALS") +THEN + RESPONSE #100 + SetGlobalTimer("cloudtime","LOCALS",1) + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + ReallyForceSpellRES("%code%",Myself) // No such index +END + +IF + !GlobalTimerNotExpired("cloudtime","LOCALS") +THEN + RESPONSE #100 + SetGlobalTimer("cloudtime","LOCALS",1) + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index + CreateCreature("%code%v",[-1.-1],0) // No such index +END + + diff --git a/iwdification/lib/cloudv.spl b/iwdification/lib/cloudv.spl new file mode 100644 index 0000000..a8e53f0 Binary files /dev/null and b/iwdification/lib/cloudv.spl differ diff --git a/iwdification/lib/cloudvs.baf b/iwdification/lib/cloudvs.baf new file mode 100644 index 0000000..52a8cc8 --- /dev/null +++ b/iwdification/lib/cloudvs.baf @@ -0,0 +1,24 @@ +IF + Global("sequence","LOCALS",0) +THEN + RESPONSE #100 + SetGlobal("sequence","LOCALS",1) + ReallyForceSpellRES("cdcloudt",Myself) // No such index +END + +IF + Global("sequence","LOCALS",1) +THEN + RESPONSE #100 + SetGlobal("sequence","LOCALS",2) + ReallyForceSpellRES("%code%v",Myself) // No such index +END + +IF + Global("sequence","LOCALS",2) +THEN + RESPONSE #100 + DestroySelf() +END + + diff --git a/iwdification/lib/common_spell.tpa b/iwdification/lib/common_spell.tpa new file mode 100644 index 0000000..6638358 --- /dev/null +++ b/iwdification/lib/common_spell.tpa @@ -0,0 +1,190 @@ + + + + +/* +// create zosa self-destruct script for cload spells +COPY ~iwdification/lib/zosa.baf~ ~iwdification/lib/cdzosa.baf~ + +COPY_EXISTING_REGEXP GLOB ~^spcl[0-9][0-9][0-9]\.spl$~ ~override~ + ~^spin[0-9][0-9][0-9]\.spl$~ ~override~ + ~^sppr[0-9][0-9][0-9]\.spl$~ ~override~ + ~^spwi[0-9][0-9][0-9]\.spl$~ ~override~ + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + READ_LONG 0x6a fx_off + SET append = 0 + FOR (index = 0 ; index < abil_num ; ++index) BEGIN // fix existing effects + READ_SHORT (abil_off + 0x1e + (0x28 * index)) abil_fx_num + READ_SHORT (abil_off + 0x20 + (0x28 * index)) abil_fx_idx + FOR (index2 = 0 ; index2 < abil_fx_num ; ++index2) BEGIN + READ_SHORT (fx_off + (0x30 * (abil_fx_idx + index2))) opcode + PATCH_IF (opcode = 273) BEGIN // no-save damage + SET append = 1 + SET index = abil_num + SET index2 = abil_fx_num + SPRINT spell "%SOURCE_RES%" + END + END + END + PATCH_IF append = 1 BEGIN + INNER_ACTION BEGIN + + COPY ~iwdification/lib/cdzosa.baf~ ~iwdification/lib/cdzosa.baf~ + REPLACE_EVALUATE ~OR(\([0-9]+\))~ + BEGIN SET "newor" = ("%MATCH1%" + 1) END + ~OR(%newor%) + SpellCast([ANYONE],%spell%)~ + + END + END + BUT_ONLY + +COPY ~iwdification/lib/cdzosa.baf~ ~iwdification/lib/cdzosa.baf~ + REPLACE_TEXTUALLY ~\(SpellCast(\[ANYONE\],\)spwi~ ~\12~ + REPLACE_TEXTUALLY ~SpellCast(\[ANYONE\],sppr~ ~SpellCastPriest([ANYONE],1~ + REPLACE_TEXTUALLY ~SpellCast(\[ANYONE\],spin~ ~SpellCastInnate([ANYONE],3~ + REPLACE_TEXTUALLY ~SpellCast(\[ANYONE\],spcl~ ~SpellCastInnate([ANYONE],4~ + +COMPILE ~iwdification/lib/cdzosa.baf~ +*/ + +COPY ~iwdification/bam/cdabjurh.bam~ ~override~ + ~iwdification/bam/cdacidh.bam~ ~override~ + ~iwdification/bam/cdalterh.bam~ ~override~ + ~iwdification/bam/cdcldama.bam~ ~override~ + ~iwdification/bam/cdcmdama.bam~ ~override~ + ~iwdification/bam/cdcoldh.bam~ ~override~ + ~iwdification/bam/cdconjuh.bam~ ~override~ + ~iwdification/bam/cddivinh.bam~ ~override~ + ~iwdification/bam/cdelecth.bam~ ~override~ + ~iwdification/bam/cdenchah.bam~ ~override~ + ~iwdification/bam/cdfireh.bam~ ~override~ + ~iwdification/bam/cdgnench.bam~ ~override~ + ~iwdification/bam/cdillush.bam~ ~override~ + ~iwdification/bam/cdinvoch.bam~ ~override~ + ~iwdification/bam/cdmsum1h.bam~ ~override~ + ~iwdification/bam/cdmsum1x.bam~ ~override~ + ~iwdification/bam/cdnecroh.bam~ ~override~ + ~iwdification/bam/cdparalh.bam~ ~override~ + ~iwdification/lib/cdstrimm.eff~ ~override~ + ~iwdification/vvc/cdabjurh.vvc~ ~override~ + ~iwdification/vvc/cdacidh.vvc~ ~override~ + ~iwdification/vvc/cdalterh.vvc~ ~override~ + ~iwdification/vvc/cdcldama.vvc~ ~override~ + ~iwdification/vvc/cdcmdama.vvc~ ~override~ + ~iwdification/vvc/cdcoldh.vvc~ ~override~ + ~iwdification/vvc/cdconjuh.vvc~ ~override~ + ~iwdification/vvc/cddivinh.vvc~ ~override~ + ~iwdification/vvc/cdelecth.vvc~ ~override~ + ~iwdification/vvc/cdenchah.vvc~ ~override~ + ~iwdification/vvc/cdfireh.vvc~ ~override~ + ~iwdification/vvc/cdgnench.vvc~ ~override~ + ~iwdification/vvc/cdillush.vvc~ ~override~ + ~iwdification/vvc/cdinvoch.vvc~ ~override~ + ~iwdification/vvc/cdmonsum.vvc~ ~override~ + ~iwdification/vvc/cdnecroh.vvc~ ~override~ + ~iwdification/vvc/cdparalh.vvc~ ~override~ + ~iwdification/wav/cdarem21.wav~ ~override~ + +DEFINE_PATCH_FUNCTION cd_scroll STR_VAR spell = cdnull BEGIN + + WRITE_ASCIIE 0x3a "%DEST_RES%" + WRITE_ASCII 0x41 a #1 + WRITE_ASCIIE 0x76 "%DEST_RES%" + WRITE_ASCII 0x7d a #1 + PATCH_IF (SOURCE_SIZE > 0xda) BEGIN // only for arcane scrolls that have second header for learning + WRITE_ASCIIE 0xae "%DEST_RES%" + WRITE_ASCII 0xb5 a #1 + WRITE_ASCIIE 0xf6 "%spell%" #8 + WRITE_ASCIIE 0x126 "%spell%" #8 + END ELSE BEGIN // divine scroll + WRITE_ASCIIE 0xbe "%spell%" #8 + END + +END + +DEFINE_ACTION_FUNCTION cd_create_cloud INT_VAR cloud_dur = 6 visloop = 5 zosa = 0 STR_VAR code = null BEGIN + + COPY ~iwdification/lib/cloud.eff~ ~override/%code%.eff~ + WRITE_ASCIIE 0x30 ~%code%M~ + + COPY ~iwdification/lib/cloud.cre~ ~override/%code%M.cre~ + ~iwdification/lib/cloud.cre~ ~override/%code%V.cre~ + WRITE_ASCIIE 0x248 ~%DEST_RES%~ + WRITE_ASCIIE 0x280 ~%DEST_RES%~ + + EXTEND_TOP ~%code%M.bcs~ ~iwdification/lib/cloudmn.baf~ EVALUATE_BUFFER + EXTEND_TOP ~%code%V.bcs~ ~iwdification/lib/cloudvs.baf~ EVALUATE_BUFFER + + ACTION_IF zosa = 1 BEGIN + + ACTION_IF NOT FILE_EXISTS ~iwdification/lib/cdzosa.baf~ THEN BEGIN // run only once across both components + + COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ ~override~ + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + READ_LONG 0x6a fx_off + SET delta = 0 + FOR (index = 0 ; index < abil_num ; ++index) BEGIN + READ_SHORT (abil_off + 0x1e + (0x28 * index)) abil_fx_num + WRITE_SHORT (abil_off + 0x20 + (0x28 * index)) (THIS + delta) + READ_SHORT (abil_off + 0x20 + (0x28 * index)) abil_fx_idx + FOR (index2 = 0 ; index2 < abil_fx_num ; ++index2) BEGIN + READ_SHORT (fx_off + (0x30 * (abil_fx_idx + index2))) opcode + INSERT_BYTES (fx_off + (0x30 * (abil_fx_idx + index2))) (48) + WRITE_SHORT (fx_off + (0x30 * (abil_fx_idx + index2))) 265 + WRITE_BYTE (fx_off + 0x02 + (0x30 * (abil_fx_idx + index2))) 1 + WRITE_LONG (fx_off + 0x04 + (0x30 * (abil_fx_idx + index2))) 1 + WRITE_BYTE (fx_off + 0x0c + (0x30 * (abil_fx_idx + index2))) 1 + WRITE_BYTE (fx_off + 0x12 + (0x30 * (abil_fx_idx + index2))) 100 + WRITE_ASCII (fx_off + 0x14 + (0x30 * (abil_fx_idx + index2))) CDZOSA + SET delta += 1 + WRITE_SHORT (abil_off + 0x1e + (0x28 * index)) (THIS + 1) + SET index2 = abil_fx_num // kill loop + END + END + BUT_ONLY + + COPY ~iwdification/lib/zosa.baf~ ~iwdification/lib/cdzosa.baf~ + + ACTION_FOR_EACH file IN baldur baldur25 BEGIN + + ACTION_IF FILE_EXISTS_IN_GAME ~%file%.bcs~ THEN BEGIN + + EXTEND_BOTTOM ~%file%.bcs~ ~iwdification/lib/baldur.baf~ + + END + + END + + END + + EXTEND_TOP ~%code%M.bcs~ ~iwdification/lib/cdzosa.baf~ + EXTEND_TOP ~%code%V.bcs~ ~iwdification/lib/cdzosa.baf~ + + END + + ACTION_IF NOT FILE_EXISTS_IN_GAME cdcloudt.spl THEN BEGIN + COPY ~iwdification/lib/cdcloudt.spl~ ~override~ // minions go away + END + + COPY ~iwdification/lib/cloudv.spl~ ~override/%code%v.spl~ + SET step = (100 / (visloop + 1)) + LPF ADD_SPELL_EFFECT INT_VAR opcode = 215 target = 1 parameter2 = 2 probability1 = step STR_VAR resource = EVALUATE_BUFFER ~%code%0~ END + FOR (index = 1 ; index <= visloop ; ++index) BEGIN + READ_BYTE 0xac temp_prob + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 215 target = 1 parameter2 = 2 + probability2 = (temp_prob + 1) probability1 = (temp_prob + step) STR_VAR resource = EVALUATE_BUFFER ~%code%%index%~ END + END + WRITE_BYTE 0xac 100 + + OUTER_FOR (index = 0 ; index <= visloop ; ++index) BEGIN + COPY ~iwdification/vvc/%code%%index%.vvc~ ~override~ + WRITE_ASCIIE 0x08 ~%code%V~ +// WRITE_ASCII 0x78 ~CDFFP111~ #8 +// WRITE_ASCII 0x80 ~CDAFTP24~ #8 + END + COPY ~iwdification/bam/%code%V.bam~ ~override~ + +END \ No newline at end of file diff --git a/iwdification/lib/cross_patch_arcane.tpa b/iwdification/lib/cross_patch_arcane.tpa new file mode 100644 index 0000000..ca524c3 --- /dev/null +++ b/iwdification/lib/cross_patch_arcane.tpa @@ -0,0 +1,17 @@ +ACTION_IF ((FILE_EXISTS_IN_GAME ~cdia807w.itm~) AND + (VARIABLE_IS_SET WIZARD_BELTYNS_BURNING_BLOOD_RES)) THEN BEGIN + + COPY_EXISTING ~cdia807w.itm~ ~override~ // add immunity to beltyns burning blood to iron body + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = EVALUATE_BUFFER "%WIZARD_BELTYNS_BURNING_BLOOD_RES%" END + +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 \ No newline at end of file diff --git a/iwdification/lib/cross_patch_both.tpa b/iwdification/lib/cross_patch_both.tpa new file mode 100644 index 0000000..95871d0 --- /dev/null +++ b/iwdification/lib/cross_patch_both.tpa @@ -0,0 +1,82 @@ +///// \\\\\ +///// arcane-divine cross-patching \\\\\ +///// \\\\\ + +// look up various spells in the table +OUTER_SET NUM_EMOTION_COURAGE = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_COURAGE~)) - 2000) +OUTER_SET NUM_EMOTION_FEAR = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_FEAR~)) - 2000) +OUTER_SET NUM_EMOTION_HOPE = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_EMOTION_HOPE~)) - 2000) +OUTER_SET NUM_MIND_BLANK = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_MIND_BLANK~)) - 2000) +OUTER_SET NUM_BLOOD_RAGE = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_BLOOD_RAGE~)) - 1000) +OUTER_SET NUM_IMPERVIOUS_SANCTITY_OF_MIND = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_IMPERVIOUS_SANCTITY_OF_MIND~)) - 1000) +OUTER_SET NUM_SYMBOL_OF_HOPELESSNESS = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_SYMBOL_OF_HOPELESSNESS~)) - 1000) +OUTER_SET NUM_UNFAILING_ENDURANCE = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_UNFAILING_ENDURANCE~)) - 1000) +OUTER_SET NUM_ICELANCE = ((IDS_OF_SYMBOL (~spell~ ~WIZARD_ICELANCE~)) - 2000) +OUTER_SET NUM_ENTROPY_SHIELD = ((IDS_OF_SYMBOL (~spell~ ~CLERIC_ENTROPY_SHIELD~)) - 1000) + +ACTION_IF NUM_BLOOD_RAGE > 0 BEGIN + + COPY_EXISTING ~sppr%NUM_BLOOD_RAGE%.spl~ ~override~ // add immunity to emotion series to blood rage + PATCH_IF NUM_EMOTION_COURAGE > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 4 opcode = 206 target = 2 power = 4 resist_dispel = 3 duration = 120 + STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_COURAGE%" END + END + PATCH_IF NUM_EMOTION_FEAR > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 4 opcode = 206 target = 2 power = 4 resist_dispel = 3 duration = 120 + STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_FEAR%" END + END + PATCH_IF NUM_EMOTION_HOPE > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 4 opcode = 206 target = 2 power = 4 resist_dispel = 3 duration = 120 + STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_HOPE%" END + END + BUT_ONLY + +END + +ACTION_IF NUM_IMPERVIOUS_SANCTITY_OF_MIND > 0 BEGIN + + COPY_EXISTING ~sppr%NUM_IMPERVIOUS_SANCTITY_OF_MIND%.spl~ ~override~ // add immunity to emotion series to impervious sanctity of mind + FOR (index = 1 ; index < 18 ; ++index) BEGIN + PATCH_IF NUM_EMOTION_COURAGE > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR header = index insert_point = 0 opcode = 206 target = 1 power = 7 resist_dispel = 3 + duration = ((60 * index) + 780) STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_COURAGE%" END + END + PATCH_IF NUM_EMOTION_FEAR > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR header = index insert_point = 0 opcode = 206 target = 1 power = 7 resist_dispel = 3 + duration = ((60 * index) + 780) STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_FEAR%" END + END + PATCH_IF NUM_EMOTION_HOPE > 0 BEGIN + LPF ADD_SPELL_EFFECT INT_VAR header = index insert_point = 0 opcode = 206 target = 1 power = 7 resist_dispel = 3 + duration = ((60 * index) + 780) STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_EMOTION_HOPE%" END + END + END + +END + +ACTION_IF ((NUM_MIND_BLANK > 0) AND + (NUM_SYMBOL_OF_HOPELESSNESS > 0)) BEGIN + + COPY_EXISTING ~spwi%NUM_MIND_BLANK%.spl~ ~override~ // add immunity to symbol of hopelessness to mind blank + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 0 opcode = 206 target = 1 power = 8 resist_dispel = 3 duration = 7200 + STR_VAR resource = EVALUATE_BUFFER "sppr%NUM_SYMBOL_OF_HOPELESSNESS%" END + +END + +ACTION_IF ((FILE_EXISTS_IN_GAME cdia807w.itm) AND + (NUM_UNFAILING_ENDURANCE > 0)) BEGIN + + COPY_EXISTING ~cdia807w.itm~ ~override~ // iron body: add immunity to unfailing endurance + LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 206 target = 1 timing = 2 STR_VAR resource = EVALUATE_BUFFER "SPPR%NUM_UNFAILING_ENDURANCE%" END + +END + +ACTION_IF ((NUM_ENTROPY_SHIELD > 0) AND + (NUM_ICELANCE > 0)) BEGIN + + COPY_EXISTING ~sppr%NUM_ENTROPY_SHIELD%.spl~ ~override~ // add immunity to emotion series to impervious sanctity of mind + FOR (index = 1 ; index < 21 ; ++index) BEGIN + LPF ADD_SPELL_EFFECT INT_VAR header = index insert_point = 0 opcode = 206 target = 1 power = 6 resist_dispel = 3 + duration = ((6 * index) + 60) STR_VAR resource = EVALUATE_BUFFER "spwi%NUM_ICELANCE%" END + END + +END diff --git a/iwdification/lib/cross_patch_divine.tpa b/iwdification/lib/cross_patch_divine.tpa new file mode 100644 index 0000000..dd17090 --- /dev/null +++ b/iwdification/lib/cross_patch_divine.tpa @@ -0,0 +1,35 @@ +ACTION_IF VARIABLE_IS_SET CLERIC_BLOOD_RAGE_RES BEGIN + + COPY_EXISTING ~%CLERIC_BLOOD_RAGE_RES%.spl~ ~override~ + PATCH_IF VARIABLE_IS_SET CLERIC_SYMBOL_OF_PAIN_RES BEGIN + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 3 opcode = 206 target = 2 power = 4 resist_dispel = 3 duration = 120 + STR_VAR resource = EVALUATE_BUFFER "%CLERIC_SYMBOL_OF_PAIN_RES%" END + END + PATCH_IF VARIABLE_IS_SET CLERIC_SYMBOL_OF_PAIN_RES BEGIN + LPF ADD_SPELL_EFFECT INT_VAR insert_point = 3 opcode = 206 target = 2 power = 4 resist_dispel = 3 duration = 120 + STR_VAR resource = EVALUATE_BUFFER "%CLERIC_SYMBOL_OF_HOPELESSNESS_RES%" END + END + BUT_ONLY + +END + +ACTION_IF ((VARIABLE_IS_SET CLERIC_IMPERVIOUS_SANCTITY_OF_MIND_RES) AND + (VARIABLE_IS_SET CLERIC_SYMBOL_OF_HOPELESSNESS_RES)) BEGIN + + COPY_EXISTING ~%CLERIC_IMPERVIOUS_SANCTITY_OF_MIND_RES%.spl~ ~override~ + FOR (index = 1 ; index < 18 ; ++index) BEGIN + LPF ADD_SPELL_EFFECT INT_VAR header = index insert_point = 0 opcode = 206 target = 1 power = 7 resist_dispel = 3 duration = ((index * 60) + 780) + STR_VAR resource = EVALUATE_BUFFER "%CLERIC_SYMBOL_OF_HOPELESSNESS_RES%" END + END + +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 \ No newline at end of file diff --git a/iwdification/lib/functions.tpa b/iwdification/lib/functions.tpa new file mode 100644 index 0000000..9ce7a83 --- /dev/null +++ b/iwdification/lib/functions.tpa @@ -0,0 +1,710 @@ +/* +v1: for iwd fixpack v2 +v2: for iwd fixpack v3, bgee fixpack development + fixed bug with unterminated WRITE_ASCII for item icons +v3: for bgee fixpack development + consolidated AREA_ALTER_CONTAINER_trap, cd_container_icons into new AREA_ALTER_CONTAINER + trapped and detected were writing to the wrong offsets in AREA_ALTER_REGION +v4: for bgee fixpack development + fixed bug with patching duration_high on item headers in ITEM_ALTER_EFFECT +v5: for bgee fixpack development + added support for primary, secondary schools for ITEM_ALTER_HEADER +v6: final touchups for WeiDU inclusion + renamed macros to be more in line with IESDP/WeiDU conventions + CONVERT_BG_IWD_DURATION now converts both directions + AREA_ALTER_ENTRANCE, AREA_ALTER_REGION now compare the target with _CASE rather than _REGEXP + the immunity fx batch stuff shouldn't have been included + flag_backstab and flag_noinvis support added for ITEM_ALTER_HEADER +v7: + fixed bug with duration_high and SPELL_ALTER_EFFECT +temporary documentation at http://camagna.net/functions.tpa.html +v8: + added CD_ADD_STRINGS_TO_D at Keith's request +*/ + +///// \\\\\ +///// coding functions \\\\\ +///// \\\\\ + +// this function is a way for folks to add the contents of strings to their raw d files +// copy your d file with a tp2/tph and apply this to it with a start and end range for strrefs +// will change #12345 to #12345 /* string contents */ +DEFINE_PATCH_FUNCTION CD_ADD_STRINGS_TO_D + INT_VAR + strref_start = 0 + strref_end = 0 + +BEGIN + + PATCH_IF (strref_end > strref_start) BEGIN // sanity check + FOR (index = strref_start ; index <= strref_end ; ++index) BEGIN + INNER_ACTION BEGIN + ACTION_GET_STRREF index text + END + REPLACE_TEXTUALLY ~#%index%~ ~#%index% /* %text% */~ + END + END ELSE BEGIN + PATCH_PRINT ~Starting strref is greater than the ending strref~ + END + +END + +///// \\\\\ +///// item/spell functions \\\\\ +///// \\\\\ + +DEFINE_PATCH_FUNCTION CONVERT_BG_IWD_DURATION + STR_VAR changeto = "iwd" // iwd changes effects to use round = 7; otherwise use round = 6 + BEGIN + + READ_LONG 0x6a fx_off + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + PATCH_IF ("%SOURCE_FILE%" STRING_COMPARE_REGEXP "^.+\.itm" = 0) BEGIN SET abil_length = 0x38 END ELSE BEGIN SET abil_length = 0x28 END + PATCH_IF (abil_num > 0) BEGIN // if there are headers, figure out the final effect + READ_SHORT (abil_off + 0x1e + ((abil_num - 1) * abil_length)) abil_fx_num + READ_SHORT (abil_off + 0x20 + ((abil_num - 1) * abil_length)) abil_fx_idx + SET fx_num = abil_fx_num + abil_fx_idx + END ELSE BEGIN // else read the last global + READ_SHORT 0x70 fx_num + END + FOR (index = 0 ; index < fx_num ; ++index) BEGIN + READ_LONG (fx_off + 0x0e + (index * 0x30)) duration + PATCH_IF (duration > 5) BEGIN // skip 0 duration or short lived cosmetic/auditory + PATCH_IF ("iwd" STRING_COMPARE_CASE "%changeto%" = 0) BEGIN + WRITE_LONG (fx_off + 0x0e + (index * 0x30)) ((duration * 7) / 6) + END ELSE BEGIN + WRITE_LONG (fx_off + 0x0e + (index * 0x30)) ((duration * 6) / 7) + END + END + END + +END + +///// \\\\\ +///// area functions \\\\\ +///// \\\\\ + +DEFINE_PATCH_FUNCTION AREA_ALTER_ENTRANCE + INT_VAR x_coord = "-1" // new x coordinate at 0x20; negative values mean no change + y_coord = "-1" // new y coordinate at 0x22; negative values mean no change + orient = "-1" // new orientation at 0x24; negative values mean no change + STR_VAR entry_name = "" // required, needs to match ascii name at 0x00 +BEGIN + + READ_LONG 0x68 ent_off + READ_LONG 0x6c ent_num + FOR (index = 0 ; index < ent_num ; ++index) BEGIN + READ_ASCII (ent_off + (index * 0x68)) "ent_name" (32) NULL + PATCH_IF ("%ent_name%" STRING_COMPARE_CASE "%entry_name%" = 0) BEGIN + PATCH_IF ("%x_coord%" >= 0) BEGIN WRITE_SHORT (ent_off + 0x20 + (index * 0x68)) "%x_coord%" END + PATCH_IF ("%y_coord%" >= 0) BEGIN WRITE_SHORT (ent_off + 0x22 + (index * 0x68)) "%y_coord%" END + PATCH_IF ("%orient%" >= 0) BEGIN WRITE_LONG (ent_off + 0x24 + (index * 0x68)) "%orient%" END + END + END + +END + +DEFINE_PATCH_FUNCTION AREA_ALTER_REGION + INT_VAR type = "-1" // region type at 0x20; negative values mean no change + cursor = "-1" // cursor type at 0x34; negative values mean no change + trap_detect = "-1" // difficulty of trap detection at 0x68; negative values mean no change + trap_remove = "-1" // difficulty of trap removal at 0x6a; negative values mean no change + trapped = "-1" // is trapped? at 0x6c; negative values mean no change + detected = "-1" // is detected? at 0x6e; negative values mean no change + // flag_ vars affect flags starting at 0x60; 0 means remove flag, 1 means add flag, -1 no change + flag_locked = "-1" // locked, bit0 + flag_resets = "-1" // trap resets, bit1 + flag_party_required = "-1" // party required, bit2 + flag_trap_detectable = "-1" // trap can be detected, bit3 + flag_trap_enemies = "-1" // trap can be set off by enemies, bit4 + flag_tutorial = "-1" // tutorial trigger, bit5 + flag_trap_npcs = "-1" // trap can be set off by npcs, bit6 + flag_silent = "-1" // silent trigger, bit7 + flag_deactivated = "-1" // deactivated, bit8 + flag_impassable_npc = "-1" // can not be passed by npcs, bit9 + flag_activation_point = "-1" // use activation point, bit10 + flag_connect_to_door = "-1" // connected to door, bit11 + STR_VAR trig_name = "" // required, at 0x00, used to match region + dest_area = "same" // changes destination area at 0x38; "same" means no change + ent_name = "same" // changes entrance name at 0x40; "same" means no change + door_key = "same" // resref of key to unlock at 0x74; "same" means no change + door_script = "same" // resref of region script at 0x7c; "same" means no change +BEGIN + + READ_SHORT 0x5a trig_num + READ_LONG 0x5c trig_off + FOR (index = 0 ; index < trig_num ; ++index) BEGIN + READ_ASCII (trig_off + (index * 0xc4)) "trig_name_file" (32) NULL + PATCH_IF ("%trig_name%" STRING_COMPARE_CASE "%trig_name_file%" = 0) BEGIN + PATCH_IF ("%type%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x20 + (index * 0xc4)) "%type%" END + PATCH_IF ("%cursor%" >= 0) BEGIN WRITE_LONG (trig_off + 0x34 + (index * 0xc4)) "%cursor%" END + PATCH_IF ("%trap_detect%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x68 + (index * 0xc4)) "%trap_detect%" END + PATCH_IF ("%trap_remove%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6a + (index * 0xc4)) "%trap_remove%" END + PATCH_IF ("%trapped%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6c + (index * 0xc4)) "%trapped%" END + PATCH_IF ("%detected%" >= 0) BEGIN WRITE_SHORT (trig_off + 0x6e + (index * 0xc4)) "%detected%" END + PATCH_IF ("%flag_locked%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111110) END + PATCH_IF ("%flag_resets%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111101) END + PATCH_IF ("%flag_party_required%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11111011) END + PATCH_IF ("%flag_trap_detectable%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11110111) END + PATCH_IF ("%flag_trap_enemies%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11101111) END + PATCH_IF ("%flag_tutorial%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b11011111) END + PATCH_IF ("%flag_trap_npcs%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b10111111) END + PATCH_IF ("%flag_silent%" = 0) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BAND 0b01111111) END + PATCH_IF ("%flag_deactivated%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111110) END + PATCH_IF ("%flag_impassable_npc%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111101) END + PATCH_IF ("%flag_activation_point%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11111011) END + PATCH_IF ("%flag_connect_to_door%" = 0) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BAND 0b11110111) END + PATCH_IF ("%flag_locked%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT0) END + PATCH_IF ("%flag_resets%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT1) END + PATCH_IF ("%flag_party_required%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT2) END + PATCH_IF ("%flag_trap_detectable%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT3) END + PATCH_IF ("%flag_trap_enemies%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT4) END + PATCH_IF ("%flag_tutorial%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT5) END + PATCH_IF ("%flag_trap_npcs%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT6) END + PATCH_IF ("%flag_silent%" = 1) BEGIN WRITE_BYTE (trig_off + 0x60 + (index * 0xc4)) (THIS BOR BIT7) END + PATCH_IF ("%flag_deactivated%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT0) END + PATCH_IF ("%flag_impassable_npc%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT1) END + PATCH_IF ("%flag_activation_point%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT2) END + PATCH_IF ("%flag_connect_to_door%" = 1) BEGIN WRITE_BYTE (trig_off + 0x61 + (index * 0xc4)) (THIS BOR BIT3) END + PATCH_IF ("%dest_area%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (trig_off + 0x38 + (index * 0xc4)) "%dest_area%" #8 // value from str_var + END + PATCH_IF ("%ent_name%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (trig_off + 0x40 + (index * 0xc4)) "%ent_name%" #32 // value from str_var + END + PATCH_IF ("%door_key%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (trig_off + 0x74 + (index * 0xc4)) "%door_key%" #8 // value from str_var + END + PATCH_IF ("%door_script%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (trig_off + 0x7c + (index * 0xc4)) "%door_script%" #8 // value from str_var + END + END + END + +END + +DEFINE_PATCH_FUNCTION AREA_ALTER_ACTOR + INT_VAR x_coord = "-1" // new x coordinate at 0x20 and 0x24; negative values mean no change + y_coord = "-1" // new y coordinate at 0x22 and 0x26; negative values mean no change + orient = "-1" // facing direction for actor at 0x34; negative values mean no change + STR_VAR actor_name = "" // required, at 0x00, used to match actor + dlg_file = "same" // changes dialog file at 0x48; "same" means no change + script_override = "same" // changes override script at 0x50; "same" means no change + script_general = "same" // changes general script at 0x58; "same" means no change + script_class = "same" // changes class script at 0x60; "same" means no change + script_race = "same" // changes race script at 0x68; "same" means no change + script_default = "same" // changes default script at 0x70; "same" means no change + script_specifics = "same" // changes specifics script at 0x78; "same" means no change + cre_file = "same" // changes creature file at 0x80; "same" means no change +BEGIN + + READ_LONG 0x54 cre_off + READ_SHORT 0x58 cre_num + FOR (index = 0 ; index < cre_num ; ++index) BEGIN + READ_ASCII (cre_off + (index * 0x110)) actor_name_file (32) NULL + PATCH_IF ("%actor_name%" STRING_COMPARE_CASE "%actor_name_file%" = 0) BEGIN + PATCH_IF ("%x_coord%" >= 0) BEGIN WRITE_SHORT (cre_off + 0x20 + (index * 0x110)) "%x_coord%" + WRITE_SHORT (cre_off + 0x24 + (index * 0x110)) "%x_coord%" END + PATCH_IF ("%y_coord%" >= 0) BEGIN WRITE_SHORT (cre_off + 0x22 + (index * 0x110)) "%y_coord%" + WRITE_SHORT (cre_off + 0x26 + (index * 0x110)) "%y_coord%" END + PATCH_IF ("%orient%" >= 0) BEGIN WRITE_SHORT (cre_off + 0x34 + (index * 0x110)) "%orient%" END + PATCH_IF ("%dlg_file%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x48 + (index * 0x110)) "%dlg_file%" #8 // value from str_var + END + PATCH_IF ("%script_override%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x50 + (index * 0x110)) "%script_override%" #8 // value from str_var + END + PATCH_IF ("%script_general%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x58 + (index * 0x110)) "%script_general%" #8 // value from str_var + END + PATCH_IF ("%script_race%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x68 + (index * 0x110)) "%script_race%" #8 // value from str_var + END + PATCH_IF ("%script_default%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x70 + (index * 0x110)) "%script_default%" #8 // value from str_var + END + PATCH_IF ("%script_class%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x60 + (index * 0x110)) "%script_class%" #8 // value from str_var + END + PATCH_IF ("%script_specifics%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x78 + (index * 0x110)) "%script_specifics%" #8 // value from str_var + END + PATCH_IF ("%cre_file%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cre_off + 0x80 + (index * 0x110)) "%cre_file%" #8 // value from str_var + END + END + END + +END + +DEFINE_PATCH_FUNCTION AREA_ALTER_CONTAINER + INT_VAR cont_icon = "-1" // icon displayed when opened at 0x24; negative values mean no change + trapped = "-1" // is trapped? at 0x30; negative values mean no change + detected = "-1" // is detected? at 0x32; negative values mean no change + string = "-1" // lockpick string at 0x84; negative values mean no change + lock_diff = "-1" // difficulty to pick lock at 0x26; negative values mean no change + trap_det_diff = "-1" // difficulty to detect trap at 0x2c; negative values mean no change + trap_rem_diff = "-1" // difficulty to remove tap at 0x2e; negative values mean no change + // flag_ vars affect flags starting at 0x28; 0 means remove flag, 1 means add flag, -1 no change + flag_locked = "-1" // locked, bit0 + flag_mlocked = "-1" // magical lock, bit2 + flag_resets = "-1" // trap resets, bit3 + flag_disabled = "-1" // disabled, bit5 + STR_VAR cont_name = "" // required, at 0x00, used to match container + cont_script = "same" // changes container script at 0x48; "same" means no change + cont_key = "same" // changes container key 0x78; "same" means no change +BEGIN + + READ_LONG 0x70 cont_off + READ_SHORT 0x74 cont_num + FOR (index = 0 ; index < cont_num ; ++index) BEGIN + READ_ASCII (cont_off + (index * 0xc0)) cont_name_file (32) NULL + PATCH_IF ("%cont_name%" STRING_COMPARE_CASE "%cont_name_file%" = 0) BEGIN + PATCH_IF (cont_icon >= 0) BEGIN WRITE_SHORT (cont_off + 0x24 + (index * 0xc0)) cont_icon END // value from int_var + PATCH_IF (lock_diff >= 0) BEGIN WRITE_SHORT (cont_off + 0x26 + (index * 0xc0)) lock_diff END // value from int_var + PATCH_IF (trap_det_diff >= 0) BEGIN WRITE_SHORT (cont_off + 0x2c + (index * 0xc0)) trap_det_diff END // value from int_var + PATCH_IF (trap_rem_diff >= 0) BEGIN WRITE_SHORT (cont_off + 0x2e + (index * 0xc0)) trap_rem_diff END // value from int_var + PATCH_IF (trapped >= 0) BEGIN WRITE_SHORT (cont_off + 0x30 + (index * 0xc0)) trapped END // value from int_var + PATCH_IF (detected >= 0) BEGIN WRITE_SHORT (cont_off + 0x32 + (index * 0xc0)) detected END // value from int_var + PATCH_IF (string >= 0) BEGIN WRITE_LONG (cont_off + 0x84 + (index * 0xc0)) string END // value from int_var + + PATCH_IF (flag_locked = 0) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS & `BIT0 END + PATCH_IF (flag_mlocked = 0) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS & `BIT2 END + PATCH_IF (flag_resets = 0) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS & `BIT3 END + PATCH_IF (flag_disabled = 0) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS & `BIT5 END + PATCH_IF (flag_locked = 1) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS | BIT0 END + PATCH_IF (flag_mlocked = 1) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS | BIT2 END + PATCH_IF (flag_resets = 1) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS | BIT3 END + PATCH_IF (flag_disabled = 1) BEGIN WRITE_BYTE (cont_off + 0x28 + (index * 0xc0)) THIS | BIT5 END + + // update script if matched + PATCH_IF ("%cont_script%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cont_off + 0x48 + (index * 0xc0)) "%cont_script%" #8 // value from str_var + END + // update script if matched + PATCH_IF ("%cont_key%" STRING_COMPARE_CASE "same") BEGIN // if script not set to same + WRITE_ASCIIE (cont_off + 0x78 + (index * 0xc0)) "%cont_key%" #8 // value from str_var + END + END + END + +END + +DEFINE_PATCH_FUNCTION AREA_ALTER_DOOR + INT_VAR door_icon = "-1" // changes cursor at 0x68; negative values mean no change + trap_detect = "-1" // difficulty of trap detection at 0x6c; negative values mean no change + trap_remove = "-1" // difficulty of trap removal at 0x6e; negative values mean no change + trapped = "-1" // is trapped? at 0x70; negative values mean no change + detected = "-1" // is detected? at 0x72; negative values mean no change + door_detect = "-1" // difficulty of detection at 0x88; negative values mean no change + lock_diff = "-1" // difficulty of lock at 0x8c; negative values mean no change + STR_VAR door_name = "" // required, at 0x00, used to match door + door_key = "same" // changes door key at 0x78; "same" means no change + door_script = "same" // changes door script at 0x80; "same" means no change; "same" means no change +BEGIN + + READ_LONG 0xa4 door_num + READ_LONG 0xa8 door_off + FOR (index = 0 ; index < door_num ; ++index) BEGIN + READ_ASCII (door_off + (index * 0xc8)) door_name_file (32) NULL + PATCH_IF ("%door_name%" STRING_COMPARE_CASE "%door_name_file%" = 0) BEGIN + PATCH_IF ("%door_icon%" >= 0) BEGIN WRITE_LONG (door_off + 0x68 + (index * 0xc8)) "%door_icon%" END + PATCH_IF ("%trap_detect%" >= 0) BEGIN WRITE_SHORT (door_off + 0x6c + (index * 0xc8)) "%trap_detect%" END + PATCH_IF ("%trap_remove%" >= 0) BEGIN WRITE_SHORT (door_off + 0x6e + (index * 0xc8)) "%trap_remove%" END + PATCH_IF ("%trapped%" >= 0) BEGIN WRITE_SHORT (door_off + 0x70 + (index * 0xc8)) "%trapped%" END + PATCH_IF ("%detected%" >= 0) BEGIN WRITE_SHORT (door_off + 0x72 + (index * 0xc8)) "%detected%" END + PATCH_IF ("%door_detect%" >= 0) BEGIN WRITE_LONG (door_off + 0x88 + (index * 0xc8)) "%door_detect%" END + PATCH_IF ("%lock_diff%" >= 0) BEGIN WRITE_LONG (door_off + 0x8c + (index * 0xc8)) "%lock_diff%" END + PATCH_IF ("%door_key%" STRING_COMPARE_CASE "same") BEGIN // if key not set to same + WRITE_ASCIIE (door_off + 0x78 + (index * 0xc8)) "%door_key%" #8 // value from str_var + END + PATCH_IF ("%door_script%" STRING_COMPARE_CASE "same") BEGIN // if key not set to same + WRITE_ASCIIE (door_off + 0x80 + (index * 0xc8)) "%door_script%" #8 // value from str_var + END + END + END + +END + +///// \\\\\ +///// item functions \\\\\ +///// \\\\\ + +DEFINE_PATCH_FUNCTION ITEM_ALTER_EFFECT + INT_VAR equipped = 0 // check global effects: 0 for no, 1 for yes + headers = 0 // check effects on headers; 0 for no, 1 for yes + type = "-1" // -1 to check all headers, otherwise use type specified + opcode = "-1" // opcode at 0x00 to match, use -1 for all + opcode_new = "-1" // if opcode matches, change to this value + target = "-1" // change target at 0x02; negative values mean no change + timing = "-1" // change timing at 0x0c; negative values mean no change + power = "-1" // change power level at 0x03; negative values mean no change + parameter1 = "-1" // change parameter at 0x04; negative values mean no change + parameter2 = "-1" // change parameter at 0x08; negative values mean no change + resist_dispel = "-1" // change resist/dispel at 0x0d; negative values mean no change + duration = "-1" // change duration at 0x0e; negative values mean no change + duration_high = "-1" // same as duration, but only if existing duration > 5 + probability1 = "-1" // change high probability at 0x12; negative values mean no change + probability2 = "-1" // change low probability at 0x13; negative values mean no change + dicenumber = "-1" // change number of dice at 0x1c; negative values mean no change + dicesize = "-1" // change size of dice at 0x20; negative values mean no change + savingthrow = "-1" // changing type of saving throw at 0x24; negative values mean no change + savebonus = "-11" // change save bonus/penalty; values -11 or lower are ignored + STR_VAR resource = "same" // resref at 0x14; same means no change, otherwise use this value +BEGIN + + READ_LONG 0x6a fx_off + PATCH_IF (equipped = 1) BEGIN + READ_SHORT 0x70 fx_num + FOR (index = 0 ; index < fx_num ; ++index) BEGIN + READ_SHORT (fx_off + (index * 0x30)) opcode_file + PATCH_IF ((opcode = opcode_file) OR (opcode < 0)) BEGIN + PATCH_IF (opcode_new >= 0) BEGIN WRITE_SHORT (fx_off + (index * 0x30)) opcode_new END + PATCH_IF (target >= 0) BEGIN WRITE_BYTE (fx_off + 0x02 + (index * 0x30)) target END + PATCH_IF (power >= 0) BEGIN WRITE_BYTE (fx_off + 0x03 + (index * 0x30)) power END + PATCH_IF (parameter1 >= 0) BEGIN WRITE_LONG (fx_off + 0x04 + (index * 0x30)) parameter1 END + PATCH_IF (parameter2 >= 0) BEGIN WRITE_LONG (fx_off + 0x08 + (index * 0x30)) parameter2 END + PATCH_IF (timing >= 0) BEGIN WRITE_BYTE (fx_off + 0x0c + (index * 0x30)) timing END + PATCH_IF (resist_dispel >= 0) BEGIN WRITE_BYTE (fx_off + 0x0d + (index * 0x30)) resist_dispel END + PATCH_IF (duration >= 0) BEGIN WRITE_LONG (fx_off + 0x0e + (index * 0x30)) duration END + PATCH_IF (probability1 >= 0) BEGIN WRITE_BYTE (fx_off + 0x12 + (index * 0x30)) probability1 END + PATCH_IF (probability2 >= 0) BEGIN WRITE_BYTE (fx_off + 0x13 + (index * 0x30)) probability2 END + PATCH_IF (dicenumber >= 0) BEGIN WRITE_LONG (fx_off + 0x1c + (index * 0x30)) dicenumber END + PATCH_IF (dicesize >= 0) BEGIN WRITE_LONG (fx_off + 0x20 + (index * 0x30)) dicesize END + PATCH_IF (savingthrow >= 0) BEGIN WRITE_LONG (fx_off + 0x24 + (index * 0x30)) savingthrow END + PATCH_IF (savebonus >= "-10") BEGIN WRITE_LONG (fx_off + 0x28 + (index * 0x30)) savebonus END + PATCH_IF (duration_high >= 0) BEGIN + READ_LONG (fx_off + 0x0e + (index * 0x30)) duration_file + PATCH_IF (duration_file > 5) BEGIN + WRITE_LONG (fx_off + 0x0e + (index * 0x30)) duration_high + END + END + PATCH_IF ("%resource%" STRING_COMPARE_CASE "same") BEGIN + WRITE_ASCIIE (fx_off + 0x14 + (index * 0x30)) "%resource%" #8 + END + END + END + END + PATCH_IF (headers = 1) BEGIN + READ_LONG 0x64 "abil_off" + READ_SHORT 0x68 "abil_num" + FOR (index2 = 0 ; index2 < abil_num ; ++index2) BEGIN // looks through headers + READ_BYTE (abil_off + (index2 * 0x38)) abil_type + PATCH_IF ((abil_type = type) OR (type < 0)) BEGIN + READ_SHORT (abil_off + 0x1e + (index2 * 0x38)) abil_fx_num + READ_SHORT (abil_off + 0x20 + (index2 * 0x38)) abil_fx_idx + FOR (index = 0 ; index < abil_fx_num ; index = index + 1) BEGIN + READ_SHORT (fx_off + ((abil_fx_idx + index) * 0x30)) opcode_file + PATCH_IF ((opcode = opcode_file) OR (opcode < 0)) BEGIN + PATCH_IF (opcode_new >= 0) BEGIN WRITE_SHORT (fx_off + ((index + abil_fx_idx) * 0x30)) opcode_new END + PATCH_IF (target >= 0) BEGIN WRITE_BYTE (fx_off + 0x02 + ((index + abil_fx_idx) * 0x30)) target END + PATCH_IF (power >= 0) BEGIN WRITE_BYTE (fx_off + 0x03 + ((index + abil_fx_idx) * 0x30)) power END + PATCH_IF (parameter1 >= 0) BEGIN WRITE_LONG (fx_off + 0x04 + ((index + abil_fx_idx) * 0x30)) parameter1 END + PATCH_IF (parameter2 >= 0) BEGIN WRITE_LONG (fx_off + 0x08 + ((index + abil_fx_idx) * 0x30)) parameter2 END + PATCH_IF (timing >= 0) BEGIN WRITE_BYTE (fx_off + 0x0c + ((index + abil_fx_idx) * 0x30)) timing END + PATCH_IF (resist_dispel >= 0) BEGIN WRITE_BYTE (fx_off + 0x0d + ((index + abil_fx_idx) * 0x30)) resist_dispel END + PATCH_IF (duration >= 0) BEGIN WRITE_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration END + PATCH_IF (probability1 >= 0) BEGIN WRITE_BYTE (fx_off + 0x12 + ((index + abil_fx_idx) * 0x30)) probability1 END + PATCH_IF (probability2 >= 0) BEGIN WRITE_BYTE (fx_off + 0x13 + ((index + abil_fx_idx) * 0x30)) probability2 END + PATCH_IF (dicenumber >= 0) BEGIN WRITE_LONG (fx_off + 0x1c + ((index + abil_fx_idx) * 0x30)) dicenumber END + PATCH_IF (dicesize >= 0) BEGIN WRITE_LONG (fx_off + 0x20 + ((index + abil_fx_idx) * 0x30)) dicesize END + PATCH_IF (savingthrow >= 0) BEGIN WRITE_LONG (fx_off + 0x24 + ((index + abil_fx_idx) * 0x30)) savingthrow END + PATCH_IF (savebonus >= "-10") BEGIN WRITE_LONG (fx_off + 0x28 + ((index + abil_fx_idx) * 0x30)) savebonus END + PATCH_IF (duration_high >= 0) BEGIN + READ_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration_file + PATCH_IF (duration_file > 5) BEGIN + WRITE_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration_high + END + END + PATCH_IF ("%resource%" STRING_COMPARE_CASE "same") BEGIN + WRITE_ASCIIE (fx_off + 0x14 + ((index + abil_fx_idx) * 0x30)) "%resource%" #8 + END + END + END + END + END + END + +END + +DEFINE_PATCH_FUNCTION ITEM_ALTER_HEADER + INT_VAR type = "-1" // -1 is all headers, >4 forces icon match, otherwise use value here + header = 0 // 0 matches all headers, otherwise just modify specified header - use with type = -1 + type_new = "-1" // change the type at 0x00 to this value; negative values mean no change + identify = "-1" // identify to use? at 0x01; negative values mean no change + location = "-1" // ability location at 0x02; negative values mean no change + target = "-1" // target at 0x0c; negative values mean no change + range = "-1" // range at 0x0e; negative values mean no change + launcher = "-1" // launcher required at 0x10; negative values mean no change + speed = "-1" // speed at 0x12; negative values mean no change + thac0_bonus = "-1" // to-hit bonus at 0x14; negative values mean no change + dicesize = "-1" // dice size at 0x16; negative values mean no change + primary = "-1" // primary school at 0x17; negative values mean no change + dicenum = "-1" // number of dice at 0x18; negative values mean no change + secondary = "-1" // seoncdary type at 0x19; negative values mean no change + damage_bonus = "-1" // +damage bonus at 0x1a; negative values mean no change + damage_type = "-1" // damage type at 0x1c; negative values mean no change + effects_num = "-1" // number of effects at 0x1e; negative values mean no change + effects_index = "-1" // effects index at 0x20; negative values mean no change + charges = "-1" // number of charges at 0x22; negative values mean no change + drained = "-1" // when drained? at 0x24; negative values mean no change + projectile = "-1" // projectile at 0x2a; negative values mean no change + anim_overhead = "-1" // % of overhead attacks at 0x2c; negative values mean no change + anim_backhand = "-1" // % of bakhand attacks at 0x2e; negative values mean no change + anim_thrust = "-1" // % of thirsuting attacks at 0x30; negative values mean no change + arrow = "-1" // is arrow? at 0x32; negative values mean no change + bolt = "-1" // is bolt? at 0x34; negative values mean no change + bullet = "-1" // is bullet? at 0x36; negative values mean no change + // flag_ vars affect flags starting at 0x26; 0 means remove flag, 1 means add flag, -1 no change + flag_strength = "-1" // add strength bonus, bit0 + flag_break = "-1" // breakable, bit1 + flag_hostile = "-1" // hostile, bit10 + flag_recharge = "-1" // recharge after resting, bit11 + flag_bypass = "-1" // bypass armor, bit16 + flag_keenedge = "-1" // keen edge, bit17 + flag_backstab = "-1" // tobex only, can backstab, bit25 + flag_noinvis = "-1" // tobex only, cannot target invisible, bit26 + STR_VAR icon = "same" // ability icon at 0x04; used to match if type > 4; same means no change otherwise use this value +BEGIN + + READ_LONG 0x64 "abil_off" + READ_SHORT 0x68 "abil_num" + PATCH_IF (header = 0) BEGIN SET loop_start = 0 SET loop_end = abil_num END + ELSE BEGIN SET loop_start = (header - 1) SET loop_end = header END + FOR (index = loop_start ; index < loop_end ; ++index) BEGIN + READ_BYTE (abil_off + (index * 0x38)) abil_type + READ_ASCII (abil_off + 0x04 + (index * 0x38)) icon_file + PATCH_IF ((type < 0) OR (abil_type = type) OR ((type > 4) AND ("%icon_file%" STRING_COMPARE_CASE "%icon%" = 0))) BEGIN + PATCH_IF (type_new >= 0) BEGIN WRITE_SHORT (abil_off + (index * 0x38)) type_new END + PATCH_IF (identify >= 0) BEGIN WRITE_BYTE (abil_off + 0x01 + (index * 0x38)) identify END + PATCH_IF (location >= 0) BEGIN WRITE_SHORT (abil_off + 0x02 + (index * 0x38)) location END + PATCH_IF (target >= 0) BEGIN WRITE_SHORT (abil_off + 0x0c + (index * 0x38)) target END + PATCH_IF (range >= 0) BEGIN WRITE_SHORT (abil_off + 0x0e + (index * 0x38)) range END + PATCH_IF (launcher >= 0) BEGIN WRITE_SHORT (abil_off + 0x10 + (index * 0x38)) launcher END + PATCH_IF (speed >= 0) BEGIN WRITE_SHORT (abil_off + 0x12 + (index * 0x38)) speed END + PATCH_IF (thac0_bonus >= 0) BEGIN WRITE_SHORT (abil_off + 0x14 + (index * 0x38)) thac0_bonus END + PATCH_IF (dicesize >= 0) BEGIN WRITE_BYTE (abil_off + 0x16 + (index * 0x38)) dicesize END + PATCH_IF (primary >= 0) BEGIN WRITE_BYTE (abil_off + 0x17 + (index * 0x38)) primary END + PATCH_IF (dicenum >= 0) BEGIN WRITE_BYTE (abil_off + 0x18 + (index * 0x38)) dicenum END + PATCH_IF (secondary >= 0) BEGIN WRITE_BYTE (abil_off + 0x19 + (index * 0x38)) secondary END + PATCH_IF (damage_bonus >= 0) BEGIN WRITE_SHORT (abil_off + 0x1a + (index * 0x38)) damage_bonus END + PATCH_IF (damage_type >= 0) BEGIN WRITE_SHORT (abil_off + 0x1c + (index * 0x38)) damage_type END + PATCH_IF (effects_num >= 0) BEGIN WRITE_SHORT (abil_off + 0x1e + (index * 0x38)) effects_num END + PATCH_IF (effects_index >= 0) BEGIN WRITE_SHORT (abil_off + 0x20 + (index * 0x38)) effects_index END + PATCH_IF (charges >= 0) BEGIN WRITE_SHORT (abil_off + 0x22 + (index * 0x38)) charges END + PATCH_IF (drained >= 0) BEGIN WRITE_SHORT (abil_off + 0x24 + (index * 0x38)) drained END + PATCH_IF (projectile >= 0) BEGIN WRITE_SHORT (abil_off + 0x2a + (index * 0x38)) projectile END + PATCH_IF (anim_overhead >= 0) BEGIN WRITE_SHORT (abil_off + 0x2c + (index * 0x38)) anim_overhead END + PATCH_IF (anim_backhand >= 0) BEGIN WRITE_SHORT (abil_off + 0x2e + (index * 0x38)) anim_backhand END + PATCH_IF (anim_thrust >= 0) BEGIN WRITE_SHORT (abil_off + 0x30 + (index * 0x38)) anim_thrust END + PATCH_IF (arrow >= 0) BEGIN WRITE_SHORT (abil_off + 0x32 + (index * 0x38)) arrow END + PATCH_IF (bolt >= 0) BEGIN WRITE_SHORT (abil_off + 0x34 + (index * 0x38)) bolt END + PATCH_IF (bullet >= 0) BEGIN WRITE_SHORT (abil_off + 0x36 + (index * 0x38)) bullet END + PATCH_IF (flag_strength = 0) BEGIN WRITE_BYTE (abil_off + 0x26 + (index * 0x38)) THIS & `BIT0 END + PATCH_IF (flag_break = 0) BEGIN WRITE_BYTE (abil_off + 0x26 + (index * 0x38)) THIS & `BIT1 END + PATCH_IF (flag_hostile = 0) BEGIN WRITE_BYTE (abil_off + 0x27 + (index * 0x38)) THIS & `BIT2 END + PATCH_IF (flag_recharge = 0) BEGIN WRITE_BYTE (abil_off + 0x27 + (index * 0x38)) THIS & `BIT3 END + PATCH_IF (flag_bypass = 0) BEGIN WRITE_BYTE (abil_off + 0x28 + (index * 0x38)) THIS & `BIT0 END + PATCH_IF (flag_keenedge = 0) BEGIN WRITE_BYTE (abil_off + 0x28 + (index * 0x38)) THIS & `BIT1 END + PATCH_IF (flag_backstab = 0) BEGIN WRITE_BYTE (abil_off + 0x29 + (index * 0x38)) THIS & `BIT1 END + PATCH_IF (flag_noinvis = 0) BEGIN WRITE_BYTE (abil_off + 0x29 + (index * 0x38)) THIS & `BIT2 END + PATCH_IF (flag_strength = 1) BEGIN WRITE_BYTE (abil_off + 0x26 + (index * 0x38)) THIS | BIT0 END + PATCH_IF (flag_break = 1) BEGIN WRITE_BYTE (abil_off + 0x26 + (index * 0x38)) THIS | BIT1 END + PATCH_IF (flag_hostile = 1) BEGIN WRITE_BYTE (abil_off + 0x27 + (index * 0x38)) THIS | BIT2 END + PATCH_IF (flag_recharge = 1) BEGIN WRITE_BYTE (abil_off + 0x27 + (index * 0x38)) THIS | BIT3 END + PATCH_IF (flag_bypass = 1) BEGIN WRITE_BYTE (abil_off + 0x28 + (index * 0x38)) THIS | BIT0 END + PATCH_IF (flag_keenedge = 1) BEGIN WRITE_BYTE (abil_off + 0x28 + (index * 0x38)) THIS | BIT1 END + PATCH_IF (flag_backstab = 1) BEGIN WRITE_BYTE (abil_off + 0x29 + (index * 0x38)) THIS | BIT1 END + PATCH_IF (flag_noinvis = 1) BEGIN WRITE_BYTE (abil_off + 0x29 + (index * 0x38)) THIS | BIT2 END + PATCH_IF ("%icon%" STRING_COMPARE_CASE "same") BEGIN + WRITE_ASCIIE (abil_off + 0x04 + (index * 0x38)) "%icon%" #8 + END + END + END + +END + +DEFINE_PATCH_FUNCTION ITEM_DELETE_HEADER + INT_VAR type = 0 // -1 for all headers, otherwise match type + BEGIN + + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + READ_LONG 0x6a fx_off + READ_SHORT 0x70 fx_num + SET fx_delta = 0 + FOR (index = 0 ; index < abil_num ; ++index) BEGIN // looks for default ability header + READ_BYTE (abil_off + (index * 0x38)) type_file + PATCH_IF ((type = type_file) OR (type < 0)) BEGIN // default ability check + READ_SHORT (0x1e + abil_off + (index * 0x38)) abil_fx_num + READ_SHORT (0x20 + abil_off + (index * 0x38)) abil_fx_idx + DELETE_BYTES (fx_off + (0x30 * (abil_fx_idx - fx_delta))) (0x30 * abil_fx_num) // deletes all associated effects + DELETE_BYTES (abil_off + (index * 0x38)) 0x38 // deletes ability itself + SET fx_delta = (fx_delta + abil_fx_num) + SET abil_num = (abil_num - 1) + SET index = (index - 1) + SET fx_off = (fx_off - 0x38) + END ELSE BEGIN // if non-matched ability, need to adjust effect indices + READ_SHORT (0x20 + abil_off + (index * 0x38)) abil_fx_idx + WRITE_SHORT (0x20 + abil_off + (index * 0x38)) (abil_fx_idx - fx_delta) + END + END + WRITE_SHORT 0x68 abil_num + WRITE_LONG 0x6a fx_off + +END + +///// \\\\\ +///// spell functions \\\\\ +///// \\\\\ + +DEFINE_PATCH_FUNCTION SPELL_ALTER_EFFECT + INT_VAR header = 0 // 0 for all, otherwise use number + type = "-1" // -1 to check all headers, otherwise use type specified + opcode = "-1" // opcode at 0x00 to match, use -1 for all + opcode_new = "-1" // if opcode matches, change to this value + target = "-1" // change target at 0x02; negative values mean no change + timing = "-1" // change timing at 0x0c; negative values mean no change + power = "-1" // change power level at 0x03; negative values mean no change + parameter1 = "-1" // change parameter at 0x04; negative values mean no change + parameter2 = "-1" // change parameter at 0x08; negative values mean no change + resist_dispel = "-1" // change resist/dispel at 0x0d; negative values mean no change + duration = "-1" // change duration at 0x0e; negative values mean no change + duration_high = "-1" // same as duration, but only if existing duration > 5 + probability1 = "-1" // change high probability at 0x12; negative values mean no change + probability2 = "-1" // change low probability at 0x13; negative values mean no change + dicenumber = "-1" // change number of dice at 0x1c; negative values mean no change + dicesize = "-1" // change size of dice at 0x20; negative values mean no change + savingthrow = "-1" // changing type of saving throw at 0x24; negative values mean no change + savebonus = "-11" // change save bonus/penalty; values -11 or lower are ignored + STR_VAR resource = "same" // resref at 0x14; same means no change, otherwise use this value +BEGIN + + READ_LONG 0x6a fx_off + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + PATCH_IF (header = 0) BEGIN SET loop_start = 0 SET loop_end = abil_num END + ELSE BEGIN SET loop_start = (header - 1) SET loop_end = header END + FOR (index2 = loop_start ; index2 < loop_end ; ++index2) BEGIN // looks through headers + READ_BYTE (abil_off + (index2 * 0x28)) abil_type + PATCH_IF ((abil_type = type) OR (type < 0)) BEGIN + READ_SHORT (abil_off + 0x1e + (index2 * 0x28)) abil_fx_num + READ_SHORT (abil_off + 0x20 + (index2 * 0x28)) abil_fx_idx + FOR (index = 0 ; index < abil_fx_num ; index = index + 1) BEGIN + READ_SHORT (fx_off + ((abil_fx_idx + index) * 0x30)) opcode_file + PATCH_IF ((opcode = opcode_file) OR (opcode < 0)) BEGIN + PATCH_IF (opcode_new >= 0) BEGIN WRITE_SHORT (fx_off + ((index + abil_fx_idx) * 0x30)) opcode_new END + PATCH_IF (target >= 0) BEGIN WRITE_BYTE (fx_off + 0x02 + ((index + abil_fx_idx) * 0x30)) target END + PATCH_IF (power >= 0) BEGIN WRITE_BYTE (fx_off + 0x03 + ((index + abil_fx_idx) * 0x30)) power END + PATCH_IF (parameter1 >= 0) BEGIN WRITE_LONG (fx_off + 0x04 + ((index + abil_fx_idx) * 0x30)) parameter1 END + PATCH_IF (parameter2 >= 0) BEGIN WRITE_LONG (fx_off + 0x08 + ((index + abil_fx_idx) * 0x30)) parameter2 END + PATCH_IF (timing >= 0) BEGIN WRITE_BYTE (fx_off + 0x0c + ((index + abil_fx_idx) * 0x30)) timing END + PATCH_IF (resist_dispel >= 0) BEGIN WRITE_BYTE (fx_off + 0x0d + ((index + abil_fx_idx) * 0x30)) resist_dispel END + PATCH_IF (duration >= 0) BEGIN WRITE_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration END + PATCH_IF (probability1 >= 0) BEGIN WRITE_BYTE (fx_off + 0x12 + ((index + abil_fx_idx) * 0x30)) probability1 END + PATCH_IF (probability2 >= 0) BEGIN WRITE_BYTE (fx_off + 0x13 + ((index + abil_fx_idx) * 0x30)) probability2 END + PATCH_IF (dicenumber >= 0) BEGIN WRITE_LONG (fx_off + 0x1c + ((index + abil_fx_idx) * 0x30)) dicenumber END + PATCH_IF (dicesize >= 0) BEGIN WRITE_LONG (fx_off + 0x20 + ((index + abil_fx_idx) * 0x30)) dicesize END + PATCH_IF (savingthrow >= 0) BEGIN WRITE_LONG (fx_off + 0x24 + ((index + abil_fx_idx) * 0x30)) savingthrow END + PATCH_IF (savebonus >= "-10") BEGIN WRITE_LONG (fx_off + 0x28 + ((index + abil_fx_idx) * 0x30)) savebonus END + PATCH_IF (duration_high >= 0) BEGIN + READ_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration_file + PATCH_IF (duration_file > 5) BEGIN + WRITE_LONG (fx_off + 0x0e + ((index + abil_fx_idx) * 0x30)) duration_high + END + END + PATCH_IF ("%resource%" STRING_COMPARE_CASE "same") BEGIN + WRITE_ASCIIE (fx_off + 0x14 + ((index + abil_fx_idx) * 0x30)) "%resource%" #8 + END + END + END + END + END + +END + +DEFINE_PATCH_FUNCTION SPELL_ALTER_HEADER + INT_VAR type = "-1" // -1 is all headers, >4 forces icon match, otherwise use value here + header = 0 // 0 matches all headers, otherwise just modify specified header - use with type = -1 + type_new = "-1" // change the type at 0x00 to this value; negative values mean no change + location = "-1" // ability location at 0x02; negative values mean no change + target = "-1" // target at 0x0c; negative values mean no change + range = "-1" // range at 0x0e; negative values mean no change + min_level = "-1" // minimum level at 0x10; negative values mean no change + speed = "-1" // speed at 0x12; negative values mean no change + thac0_bonus = "-1" // to-hit bonus at 0x14; negative values mean no change + dicesize = "-1" // dice size at 0x16; negative values mean no change + dicenum = "-1" // number of dice at 0x18; negative values mean no change + damage_bonus = "-1" // +damage bonus at 0x1a; negative values mean no change + damage_type = "-1" // damage type at 0x1c; negative values mean no change + effects_num = "-1" // number of effects at 0x1e; negative values mean no change + effects_index = "-1" // effects index at 0x20; negative values mean no change + charges = "-1" // number of charges at 0x22; negative values mean no change + projectile = "-1" // projectile at 0x26; negative values mean no change + STR_VAR icon = "same" // ability icon at 0x04; used to match if type > 4; same means no change otherwise use this value +BEGIN + + READ_LONG 0x64 "abil_off" + READ_SHORT 0x68 "abil_num" + PATCH_IF (header = 0) BEGIN SET loop_start = 0 SET loop_end = abil_num END + ELSE BEGIN SET loop_start = (header - 1) SET loop_end = header END + FOR (index = loop_start ; index < loop_end ; ++index) BEGIN + READ_BYTE (abil_off + (index * 0x28)) abil_type + READ_ASCII (abil_off + 0x04 + (index * 0x28)) icon_file + PATCH_IF ((type < 0) OR (abil_type = type) OR ((type > 4) AND ("%icon_file%" STRING_COMPARE_CASE "%icon%" = 0))) BEGIN + PATCH_IF (type_new >= 0) BEGIN WRITE_SHORT (abil_off + (index * 0x28)) type_new END + PATCH_IF (location >= 0) BEGIN WRITE_SHORT (abil_off + 0x02 + (index * 0x28)) location END + PATCH_IF (target >= 0) BEGIN WRITE_SHORT (abil_off + 0x0c + (index * 0x28)) target END + PATCH_IF (range >= 0) BEGIN WRITE_SHORT (abil_off + 0x0e + (index * 0x28)) range END + PATCH_IF (min_level >= 0) BEGIN WRITE_SHORT (abil_off + 0x10 + (index * 0x28)) min_level END + PATCH_IF (speed >= 0) BEGIN WRITE_SHORT (abil_off + 0x12 + (index * 0x28)) speed END + PATCH_IF (thac0_bonus >= 0) BEGIN WRITE_SHORT (abil_off + 0x14 + (index * 0x28)) thac0_bonus END + PATCH_IF (dicesize >= 0) BEGIN WRITE_SHORT (abil_off + 0x16 + (index * 0x28)) dicesize END + PATCH_IF (dicenum >= 0) BEGIN WRITE_SHORT (abil_off + 0x18 + (index * 0x28)) dicenum END + PATCH_IF (damage_bonus >= 0) BEGIN WRITE_SHORT (abil_off + 0x1a + (index * 0x28)) damage_bonus END + PATCH_IF (damage_type >= 0) BEGIN WRITE_SHORT (abil_off + 0x1c + (index * 0x28)) damage_type END + PATCH_IF (effects_num >= 0) BEGIN WRITE_SHORT (abil_off + 0x1e + (index * 0x28)) effects_num END + PATCH_IF (effects_index >= 0) BEGIN WRITE_SHORT (abil_off + 0x20 + (index * 0x28)) effects_index END + PATCH_IF (charges >= 0) BEGIN WRITE_SHORT (abil_off + 0x22 + (index * 0x28)) charges END + PATCH_IF (projectile >= 0) BEGIN WRITE_SHORT (abil_off + 0x26 + (index * 0x28)) projectile END + PATCH_IF ("%icon%" STRING_COMPARE_CASE "same") BEGIN + WRITE_ASCIIE (abil_off + 0x04 + (index * 0x28)) "%icon%" #8 + END + END + END + +END + +DEFINE_PATCH_FUNCTION SPELL_DELETE_HEADER + INT_VAR type = 0 // -1 for all headers, otherwise match type + min_level = "-1" // -1 for all headers, otherwise match + BEGIN + + READ_LONG 0x64 abil_off + READ_SHORT 0x68 abil_num + READ_LONG 0x6a fx_off + READ_SHORT 0x70 fx_num + SET fx_delta = 0 + FOR (index = 0 ; index < abil_num ; ++index) BEGIN // looks for default ability header + READ_BYTE (abil_off + (index * 0x28)) type_file + READ_SHORT (abil_off + 0x10 + (index * 0x28)) min_level_file + PATCH_IF (((type = type_file) OR (type < 0)) AND + ((min_level = min_level_file) OR (min_level < 0))) BEGIN // default ability check + READ_SHORT (0x1e + abil_off + (index * 0x28)) abil_fx_num + READ_SHORT (0x20 + abil_off + (index * 0x28)) abil_fx_idx + DELETE_BYTES (fx_off + (0x30 * (abil_fx_idx - fx_delta))) (0x30 * abil_fx_num) // deletes all associated effects + DELETE_BYTES (abil_off + (index * 0x28)) 0x28 // deletes ability itself + SET fx_delta = (fx_delta + abil_fx_num) + SET abil_num = (abil_num - 1) + SET index = (index - 1) + SET fx_off = (fx_off - 0x28) + END ELSE BEGIN // if non-matched ability, need to adjust effect indices + READ_SHORT (0x20 + abil_off + (index * 0x28)) abil_fx_idx + WRITE_SHORT (0x20 + abil_off + (index * 0x28)) (abil_fx_idx - fx_delta) + END + END + WRITE_SHORT 0x68 abil_num + WRITE_LONG 0x6a fx_off + +END \ No newline at end of file diff --git a/iwdification/lib/immunity.eff b/iwdification/lib/immunity.eff new file mode 100644 index 0000000..a0bab7a Binary files /dev/null and b/iwdification/lib/immunity.eff differ diff --git a/iwdification/lib/zosa.baf b/iwdification/lib/zosa.baf new file mode 100644 index 0000000..4dd68da --- /dev/null +++ b/iwdification/lib/zosa.baf @@ -0,0 +1,18 @@ +/* +IF + OR(1) + InMyArea("cdid613") +THEN + RESPONSE #100 + DestroySelf() +END +*/ + +IF + OR(2) + InMyArea("cdid613") + !Global("CDZOSA","GLOBAL",0) +THEN + RESPONSE #100 + DestroySelf() +END \ No newline at end of file diff --git a/iwdification/pro/cdgibomb.pro b/iwdification/pro/cdgibomb.pro new file mode 100644 index 0000000..9e747f1 Binary files /dev/null and b/iwdification/pro/cdgibomb.pro differ diff --git a/iwdification/pro/cdia220.pro b/iwdification/pro/cdia220.pro new file mode 100644 index 0000000..cb13838 Binary files /dev/null and b/iwdification/pro/cdia220.pro differ diff --git a/iwdification/pro/cdia318.pro b/iwdification/pro/cdia318.pro new file mode 100644 index 0000000..9d8cd80 Binary files /dev/null and b/iwdification/pro/cdia318.pro differ diff --git a/iwdification/pro/cdia319.pro b/iwdification/pro/cdia319.pro new file mode 100644 index 0000000..8e7da31 Binary files /dev/null and b/iwdification/pro/cdia319.pro differ diff --git a/iwdification/pro/cdia419.pro b/iwdification/pro/cdia419.pro new file mode 100644 index 0000000..9f6a57a Binary files /dev/null and b/iwdification/pro/cdia419.pro differ diff --git a/iwdification/pro/cdia420.pro b/iwdification/pro/cdia420.pro new file mode 100644 index 0000000..71afabd Binary files /dev/null and b/iwdification/pro/cdia420.pro differ diff --git a/iwdification/pro/cdia424.pro b/iwdification/pro/cdia424.pro new file mode 100644 index 0000000..b8e713d Binary files /dev/null and b/iwdification/pro/cdia424.pro differ diff --git a/iwdification/pro/cdia612.pro b/iwdification/pro/cdia612.pro new file mode 100644 index 0000000..59255ef Binary files /dev/null and b/iwdification/pro/cdia612.pro differ diff --git a/iwdification/pro/cdia707.pro b/iwdification/pro/cdia707.pro new file mode 100644 index 0000000..ac4699a Binary files /dev/null and b/iwdification/pro/cdia707.pro differ diff --git a/iwdification/pro/cdia708.pro b/iwdification/pro/cdia708.pro new file mode 100644 index 0000000..ae68b1b Binary files /dev/null and b/iwdification/pro/cdia708.pro differ diff --git a/iwdification/pro/cdia711.pro b/iwdification/pro/cdia711.pro new file mode 100644 index 0000000..b07ad6d Binary files /dev/null and b/iwdification/pro/cdia711.pro differ diff --git a/iwdification/pro/cdid111.pro b/iwdification/pro/cdid111.pro new file mode 100644 index 0000000..56cb767 Binary files /dev/null and b/iwdification/pro/cdid111.pro differ diff --git a/iwdification/pro/cdid216.pro b/iwdification/pro/cdid216.pro new file mode 100644 index 0000000..769062d Binary files /dev/null and b/iwdification/pro/cdid216.pro differ diff --git a/iwdification/pro/cdid320.pro b/iwdification/pro/cdid320.pro new file mode 100644 index 0000000..b07ad6d Binary files /dev/null and b/iwdification/pro/cdid320.pro differ diff --git a/iwdification/pro/cdid321.pro b/iwdification/pro/cdid321.pro new file mode 100644 index 0000000..b07ad6d Binary files /dev/null and b/iwdification/pro/cdid321.pro differ diff --git a/iwdification/pro/cdid411.pro b/iwdification/pro/cdid411.pro new file mode 100644 index 0000000..01281e1 Binary files /dev/null and b/iwdification/pro/cdid411.pro differ diff --git a/iwdification/pro/cdid417.pro b/iwdification/pro/cdid417.pro new file mode 100644 index 0000000..b07ad6d Binary files /dev/null and b/iwdification/pro/cdid417.pro differ diff --git a/iwdification/pro/cdid422.pro b/iwdification/pro/cdid422.pro new file mode 100644 index 0000000..edb5f40 Binary files /dev/null and b/iwdification/pro/cdid422.pro differ diff --git a/iwdification/pro/cdid512.pro b/iwdification/pro/cdid512.pro new file mode 100644 index 0000000..b07ad6d Binary files /dev/null and b/iwdification/pro/cdid512.pro differ diff --git a/iwdification/pro/cdid613.pro b/iwdification/pro/cdid613.pro new file mode 100644 index 0000000..ac62db9 Binary files /dev/null and b/iwdification/pro/cdid613.pro differ diff --git a/iwdification/pro/cdid715.pro b/iwdification/pro/cdid715.pro new file mode 100644 index 0000000..304d893 Binary files /dev/null and b/iwdification/pro/cdid715.pro differ diff --git a/iwdification/pro/cdid720.pro b/iwdification/pro/cdid720.pro new file mode 100644 index 0000000..d7bc3b3 Binary files /dev/null and b/iwdification/pro/cdid720.pro differ diff --git a/iwdification/pro/cdsalc.pro b/iwdification/pro/cdsalc.pro new file mode 100644 index 0000000..950846c Binary files /dev/null and b/iwdification/pro/cdsalc.pro differ diff --git a/iwdification/readme-iwdification.html b/iwdification/readme-iwdification.html new file mode 100644 index 0000000..6b5b9a4 --- /dev/null +++ b/iwdification/readme-iwdification.html @@ -0,0 +1,797 @@ + + +
+A Gibberlings Three Mod
+ Authors: CamDawg and DavidW
+ On the web: Home page and discussion
+ forum
Version Beta 3 - Check
+ for the most recent version
+ Languages: English
+ Platforms: Windows, Mac OS X, Linux
IWDification is a mod to bring some of the elements of Icewind Dale into the Baldur's Gate series of games. A lot of this project is based upon the work of the IWD-in-BG2 conversion project.
+The mod is currently an open beta so expect some bugs here and there. Please report them on the forums so that they can be addressed.
+IWDification works on all IE games that use the Baldur's Gate II engine, which includes the original Baldur's Gate II (Shadows of Amn with or without Throne of Bhaal), the two major Baldur's Gate conversion mods (Tutu and BGT), and the Baldur's Gate: Enhanced Edition. Content will be adjusted as appropriate for the detected platform--e.g. no +5 items or ninth level spells will be added to a Tutu or BGEE game. The Throne of Bhaal expansion is not required.
+TobEx is highly recommended for players using the spell packs. Without TobEx, spell selection screens during character creation are limited to 24 spells, as are spellbook pages. Since there are more than 24 spells available at some levels you will not be able to see all spells available or be able to select them. Cat's Grace, a second-level arcane spell, relies on functionality provided by TobEx and will be skipped if it's not detected.
+The fourth-level divine spell Giant Insect relies on Infinity Animations, as the beetles summoned by the spell do not have animations in BG2, and will be skipped without the mod being installed. One of the summons (yeti) for the sixth-level arcane spell Monster Summoning IV will not be available without Infinity Animations, though the spell will otherwise work with the other two summon options.
+Two-handed axes use the same combat and paperdoll animations as halberds.
+Contact Other Plane has no dialogue written, so summoning the spirit is fairly pointless at present.
+The Cat's Grace spell (part of the Arcane Spell Pack) requires TobEx for its unique dexterity modifications. Giant Insect (part of the Divine Spell Pack) requires the beetle animation, part of Infinity Animations. In addition, Monster Summoning IV (Arcane Spell Pack) will have yetis as a summoning option if the yeti animation and Infinity Animations is installed; otherwise the spell will still work with the other summoning options.
+Just like IWD-in-BG2, a small number of spells cannot currently be converted at all. The current list is: Seven Eyes, Soul Eater, (Great) Shout, Mordenkainen's Force Missiles, Spiritual Wrath, Mold Touch, Wall of Moonlight, and Smashing Wave. A few other spells are converted a bit suboptimally, and don't work quite the way they did in IWD. The current list is Blood Rage, Animal Rage, Static Charge, and Whirlwind.
+Windows
+ IWDification is packaged
+ and installed with WeiDU and
+ is distributed as a self-extracting archive. To install, simply double-click
+ the archive and follow the instructions on screen.
Alternatively the files can be extracted from the archive using WinRAR. + If properly extracted, you should have an iwdification folder and setup-iwdification.exe + in your BG2 folder. To install, + simply double-click setup-iwdification.exe and follow the instructions on screen.
+Please run setup-iwdification.exe in your BG2 folder + to reinstall, uninstall or otherwise change components.
+Mac OS X
+ If the mod was previously installed, uninstall it before extracting the
+ new version. IWDification is packaged and installed with WeiDU.
+ To install, simply extract the contents of the mod into your BG2 folder.
+ If properly extracted, you should have an iwdification folder, setup-iwdification,
+ and setup-iwdification.command in your BG2 folder.
+ To install, simply double-click setup-iwdification.command and
+ follow the instructions on screen.
Linux
+ Download the latest version of WeiDU for
+ Linux from weidu.org and extract
+ (at least) the WeiDU,
+ weinstall and tolower executables in a $PATH directory (E.G. /usr/bin). Following that, open a terminal, cd to your BG2 installation directory, run `tolower' and answer Y to both queries.
You can avoid running the second option (linux.ini) + if you've already ran it once in the same directory. To save time, the + archive is already tolowered, so there's no need to run the first option + (lowercasing file names) either if you've extracted only this mod since + the last time you lower cased file name. If you're unsure, running tolower and choosing both + options is the safe bet.
+After that, run 'weinstall iwdification from your game installation directory + to install or uninstall the mod.
+IWDification has several + components, which can be installed completely independently of one another.
+Also available in the BG2 Tweaks mod
+When your character casts a spell, you get a pretty sequence of colors swirling + around their hand depending on the school the spell cast came from. A necromantic + spell, for example, looks quite different from creating an illusion. The + Baldur's Gate and Icewind Dale games use different sets of animations for + the schools. This component changes the spellcasting animations to those + of Icewind Dale. Note that this is purely a cosmetic change--the spells + themselves function exactly as before. Screenshots for comparison are available + in the Tweaks + gallery.
+Also available in the BG2 Tweaks mod
+Unlike Icewind Dale, commoners in BG2 wear + brightly colored clothes. This tweak changes the random selections of colors + for commoners to a drab palette. The dress of noblemen and noblewomen are + not affected.
+This component adds about 30 arcane spells from Icewind Dale. This component does not alter existing BG2 spells to match their IWD counterparts, with one exception: BG2's standalone Emotion spell becomes IWD's Emotion: Hopelessness so that the full series of Emotion spells can be made available.
+Decastave
+ (Evocation)
+ Level: 2
+ Range: Caster
+ Duration: 1 round/level
+ Casting Time: 2
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell creates a staff of force in the caster's hand. It is treated as a magical weapon, doing 1-6 hit points of damage per hit, and it can hit creatures immune to normal weapons. 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 1-2 hit points on the first strike. These hit points are added to the caster's, but they can only heal damage the caster has taken; they will not raise his hit points beyond his normal maximum.
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: Thieves gain 1d8 points, Fighters and Mages gain 1d6 points, and Clerics gain 1d4 points. Cat's Grace cannot raise a target's dexterity past 20.
Cat's Grace requires TobEx to be installed, otherwise it will be skipped.
+Snilloc's Snowball Swarm
+ (Evocation)
+ Level: 2
+ Range: Sight of Caster
+ Duration: Instantaneous
+ Casting Time: 2
+ Area of Effect: 25-foot radius
+ Saving Throw: 1/2 damage
+ 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 1-3 hit points/level, up to a maximum of 8-24 hit points at level 8. Against fire-using or fire-dwelling creatures, it inflicts 1-6 hit points/level.
Icelance (Evocation)
+ Level: 3
+ Range: Sight of Caster
+ Duration: Instantaneous
+ 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 5-30 points of damage and forcing the target to make a saving throw vs. spell or be stunned for 1-4 rounds.
Lance of Disruption (Invocation)
+ Level: 3
+ Range: 60 feet
+ Duration: Instantaneous
+ Casting Time: 3
+ Area of Effect: Special
+ Saving Throw: 1/2
+ This spell creates a lance of force, extending from the caster to a specified point 60 feet in the distance. Any creatures in the lance's path take 5d4 points of bludgeoning damage, +2 points of damage per level of the caster (maximum of +30). Victims can save vs. spell for half damage.
Beltyn's Burning Blood
+ (Necromancy)
+ Level: 4
+ Range: Sight of 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 3-12 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.
Emotion: Hopelessness
+ (Enchantment/Charm)
+ Level: 4
+ Range: Sight of Caster
+ Duration: 1 turn
+ Casting Time: 4
+ Area of Effect: 10-foot radius
+ Saving Throw: Neg.
+ This spell creates the emotion of hopelessness within the area of effect. All creatures affected by the spell just stand and do nothing for the duration of the spell.
Emotion: Hopelessness will replace the existing Emotion spell in Baldur's Gate II.
+Emotion: Courage
+ (Enchantment/Charm)
+ Level: 4
+ Range: Sight of Caster
+ Duration: 5 turns
+ Casting Time: 4
+ Area of Effect: 10-foot radius
+ Saving Throw: Neg.
+ 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.
Emotion: Fear
+ (Enchantment/Charm)
+ Level: 4
+ Range: Sight of Caster
+ Duration: 5 rounds
+ Casting Time: 4
+ Area of Effect: 10-foot radius
+ Saving Throw: Neg.
+ This spell creates the emotion of fear within the area of effect. All creatures affected by the spell flee for 5 rounds.
Emotion: Hope
+ (Enchantment/Charm)
+ Level: 4
+ Range: Sight of Caster
+ Duration: 5 turns
+ Casting Time: 4
+ Area of Effect: 10-foot radius
+ Saving Throw: Neg.
+ 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.
Vitriolic Sphere (Conjuration)
+ Level: 4
+ Range: Sight of Caster
+ Duration: Special
+ Casting Time: 4
+ Area of Effect: Special
+ 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 make a saving throw 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 the victim is entitled to a saving throw vs. spell to avoid further damage. The vitriolic sphere also splashes acid in a 5-foot radius around the primary target. Any creatures within the splash radius must save vs. polymorph/paralyzation 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.
Shadow Monsters
+ (Illusion/Phantasm)
+ Level: 4
+ Range: Sight of Caster
+ Duration: 1 round/level
+ Casting Time: 4
+ Area of Effect: 20-foot cube
+ Saving Throw: Special
+ This spell shapes material from the Demiplane of Shadow into illusionary monsters. These monsters are randomly summoned one by one with Hit Dice between 1 and the level of the spellcaster, until the summoned creatures' Hit Dice total the spellcaster's level. (For example, a 15th level wizard could summon a 10th level creature one round, then the next round the next creature appearing would have 1 through 5 Hit Dice, and so on.) These shadowy creatures have only 20% of the hit points of their real-world counterparts, although their attacks do full damage.
Shroud of Flame (Invocation)
+ Level: 5
+ Range: Sight of Caster
+ Duration: 1 round/2 levels (special)
+ Casting Time: 5
+ Area of Effect: 1 creature
+ Saving Throw: Neg.
+ This spell causes a creature to burst into flames if it fails a saving throw vs. spell. The creature will burn for 2d6 points of damage every round, and gouts of flame erupt from the burning target, causing any creatures within ten feet of the target to take 1d4 points of damage from the flames. Anyone hit by the victim's flames must also make a saving throw 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.
Demi-Shadow Monsters
+ (Illusion/Phantasm)
+ Level: 5
+ Range: Sight of Caster
+ Duration: 1 round/level
+ Casting Time: 5
+ Area of Effect: 20-foot cube
+ Saving Throw: None
+ This spell is similar to the 4th level wizard spell, Shadow Monsters, except the summoned creatures are much more powerful, with 40% of the hit points of their real-world counterpart.
Summon Shadow
+ (Conjuration/Summoning, Necromancy)
+ Level: 5
+ Range: Sight of Caster
+ Duration: 1 round + 1 round/level
+ Casting Time: 5
+ Area of Effect: 10-foot cube
+ Saving Throw: None
+ This spell summons one shadow for every three levels of the caster. This shadow will obey the orders of the caster, attacking his enemies or performing tasks until the spell expires or the shadows are slain.
Contact Other Plane (Divination)
+ Level: 5
+ Range: Caster
+ Duration: Instantaneous
+ Casting Time: 1 round
+ Area of Effect: 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.
Lich Touch
+ (Necromancy)
+ Level: 6
+ Range: Touch
+ Duration: 1 round/level
+ Casting Time: 6
+ Area of Effect: 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 his hands glow with an unearthly green radiance that does 1-10 hit points of damage to a target and paralyzes them unless a saving throw vs. paralyzation is made. This spell has no effect on undead.
Antimagic Shell
+ (Abjuration)
+ Level: 6
+ Range: Caster
+ Duration: 1 turn/level
+ Casting Time: 1
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell surrounds the caster with an invisible barrier that moves with him. This barrier makes the wizard immune to any magical attacks, but it prevents the wizard from casting spells out of the shell.
Monster Summoning IV
+ (Conjuration/Summoning)
+ Level: 6
+ Range: 40 yards
+ 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 1-3 4th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.
Yeti will be available for Monster Summoning IV if the animation has been added by Infinity Animations.
+Otiluke's Freezing Sphere
+ (Alteration, Evocation)
+ Level: 6
+ Range: Sight of Caster
+ Duration: Instantaneous
+ Casting Time: 6
+ Area of Effect: 1 creature
+ Saving Throw: Neg.
+ This spell fires an orb of cold at a creature that inflicts 3-6 points of cold damage/level of the caster. If the target makes its saving throw, however, they have dodged the orb and avoided all damage.
Shades (Illusion/Phantasm)
+ Level: 6
+ Range: Sight of Caster
+ Duration: 1 round/level
+ Casting Time: 6
+ Area of Effect: 20-foot cube
+ Saving Throw: None
+ Shades is similar to Shadow Monsters and Demishadow 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 Demishadow Monsters, and they will obey the caster until the spell expires or they are slain.
Darts of Bone (Necromancy)
+ Level: 6
+ Range: Caster
+ Duration: 5 rounds
+ Casting Time: 5
+ Area of Effect: 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 damage, and a creature struck by a dart must save vs. death or take another 2d6 damage and have its strength reduced by 3 for 5 rounds. The caster's weapon proficiency with darts (or lack thereof) has no effect on the darts' chances to hit a target.
Trollish Fortitude (Necromancy)
+ Level: 6
+ Range: Caster
+ Duration: 2 turns
+ Casting Time: 6
+ Area of Effect: 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 his/her maximum hit points.
Monster Summoning V
+ (Conjuration/Summoning)
+ Level: 7
+ Range: 40 yards
+ Duration: 6 rounds + 1 round/level
+ Casting Time: 6
+ Area of Effect: Special
+ Saving Throw: None
+ With the casting of this spell the wizard summons 1-3 5th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.
Malavon's Rage
+ (Evocation)
+ Level: 7
+ Range: Caster
+ Duration: Instantaneous
+ Casting Time: 1
+ Area of Effect: 15-foot 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 20-80 points of piercing damage to everything caught in their path. This spell is especially useful when a mage is surrounded by enemies.
Acid Storm
+ (Evocation)
+ Level: 7
+ Range: Sight of Caster
+ Duration: 1 round/level
+ Casting Time: 7
+ Area of Effect: 20-foot radius
+ Saving Throw: 1/2
+ This spell unleashes an acidic downpour on the area of effect, doing 1-4 hit points of damage each round for the first three rounds, 1-6 hit points for the next three rounds, and 1-8 hit 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 the Acid Storm is cast continue to suffer damage as long as the spell duration lasts. Creatures make a saving throw vs. spell every round after they have been hit by the cloud - if successful, they only take half-damage (for that round only).
Suffocate (Alteration)
+ Level: 7
+ Range: Sight of Caster
+ Duration: 4 rounds
+ Casting Time: 7
+ Area of Effect: 10-foot radius
+ Saving Throw: 1/2
+ 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 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 may take a round for a character to catch their second wind.
Monster Summoning VI
+ (Conjuration/Summoning)
+ Level: 8
+ Range: 40 yards
+ 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 1-3 6th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.
Monster Summoning VII
+ (Conjuration/Summoning)
+ Level: 9
+ Range: Special
+ Duration: 7 rounds + 1 round/level
+ Casting Time: 9
+ Area of Effect: 80 yard radius
+ Saving Throw: None
+ With the casting of this spell the wizard summons 1-2 7th or 8th level monsters. These appear within spell range and may be commanded to attack the caster's opponents until the spell duration expires or the monsters are slain.
Mind Blank (Abjuration)
+ Level: 8
+ Range: Caster
+ Duration: 1 Day
+ Casting Time: 1
+ Area of Effect: 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, Command, Domination, Fear, Feeblemind, and any scrying by crystal balls or other divination methods.
Iron Body (Alteration)
+ Level: 8
+ Range: Caster
+ Duration: 2 turns
+ Casting Time: 8
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell transforms the caster's body into living iron, granting him several powerful resistances and abilities. While the spell is in effect, the caster is 100% resistant to electricity, 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 + appropriate strength bonuses. Unfortunately, the caster's movement becomes slow and awkward, setting his movement rate to 25% of his normal, and he/she cannot cast spells while Iron Body is in effect.
This component adds about 35 divine spells from Icewind Dale and does not alter existing BG2 spells to match their IWD counterparts. Divine spellcasters will receive these spells, as appropriate, in their spellbooks as they level up. Joinable NPCs also receive updates to their spellbooks to account for the new spells.
+Curse (Conjuration/Summoning)
+ Level: 1
+ Sphere: All
+ Range: Sight of Caster
+ Duration: 6 rounds
+ Casting Time: 1 round
+ Area of Effect: 25-foot radius
+ Saving Throw: None
+ When the Curse spell is uttered, the caster lowers the morale of enemy creatures and penalizes their saving throws and attack rolls by -1. At the instant the spell is completed, it affects all creatures in a 50-foot cube centered on the point selected by the caster (thus, affected creatures leaving the area are still subject to the spell's effect; those entering the area after the casting is completed are not).
Cause Light Wounds (Necromancy)
+ Level: 1
+ Sphere: Healing
+ Range: Touch
+ Duration: Permanent
+ Casting Time: 5
+ Area of Effect: 1 creature
+ Saving Throw: 1/2
+ When casting this spell and touching a creature, the priest deals 8 points of damage (save for half damage) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. Cause Light Wounds cannot be cast by good characters.
Sunscorch (Invocation)
+ Level: 1
+ Sphere: Sun
+ Range: Sight of Caster
+ Duration: Instantaneous
+ Casting Time: 4
+ Area of Effect: 1 creature
+ Saving Throw: 1/2
+ 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. The victim is allowed a saving throw vs. spell to take half damage. Any creature struck by the ray sustains 1d6 points of damage, plus 1 point per caster level. Undead creatures and monsters vulnerable to bright light sustain 1d6 points of damage, plus 2 points per level of the caster. In addition to sustaining damage, victims are also blinded for 3 rounds by the spell.
Alicorn Lance
+ (Invocation)
+ Level: 2
+ Sphere: Combat
+ Range: Sight of Caster
+ Duration: Instantaneous
+ Casting Time: 5
+ Area of Effect: 1 creature
+ Saving Throw: 1/2
+ This spell creates a silver-hued, partially ethereal lance shaped in the form of an alicorn (a unicorn horn). The spellcaster chooses a target and the alicorn lance instantaneously fires at it, inflicting 3d6 points of piercing damage, with a saving throw for half damage. Although the alicorn lance dissipates after it strikes, it leaves a silvery radiance around the target that makes it easier to see and hit, giving it a -2 penalty to its AC for 3 rounds.
Beast Claw
+ (Alteration)
+ Level: 2
+ Sphere: Combat
+ Range: Caster
+ Duration: 1 turn
+ Casting Time: 5
+ Area of Effect: 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 (+ strength bonus) points of slashing damage. The caster can attack twice per round with the beast claws, with a +2 bonus to hit.
Cure Moderate Wounds
+ (Necromancy)
+ Sphere: Healing
+ Level: 2
+ Range: Touch
+ Duration: Instantaneous
+ 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 points of damage to a living creature.
Cause Moderate Wounds (Necromancy)
+ Level: 2
+ Sphere: Healing
+ Range: Touch
+ Duration: Permanent
+ Casting Time: 5
+ Area of Effect: 1 creature
+ Saving Throw: 1/2
+ When casting this spell and touching a creature, the priest deals 11 points of damage (save for half damage) to the creature's body. This spell has no effect on undead, constructs, or extraplanar creatures. Cause Moderate Wounds cannot be cast by good characters.
Prayer (Conjuration/Summoning)
+ Level: 3
+ Sphere: Combat
+ Range: Caster
+ Duration: 1 round/level
+ Casting Time: 6
+ Area of Effect: 60-foot radius
+ Saving Throw: None
+ Prayer bestows favor on the priest and his allies, and curses their enemies. All attacks, damage, and saving throws by friendly characters gain +1, while enemy attacks, damage rolls and saves are all penalized by 1. Any creatures caught in 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 fighters want to chase down that fleeing goblin, the effects of the Prayer will follow him.
Cause Disease (Necromancy)
+ Level: 3
+ Sphere: Healing
+ Range: Touch
+ Duration: 8 hours
+ Casting Time: 1 round
+ Area of Effect: 1 creature
+ Saving Throw: Neg.
+ This spell afflicts one creature the priest touches with a disease that saps the target of 5-20 points of strength. A saving throw vs. spell will negate the effects. This spell has no effect on undead, constructs, or extraplanar creatures. Cause Disease cannot be cast by good characters.
Exaltation (Abjuration)
+ Level: 3
+ Sphere: Healing
+ Range: Touch
+ Duration: 1 turn
+ Casting Time: 1 round
+ 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, 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.
Moonblade (Invocation)
+ Level: 3
+ Sphere: Combat, Sun
+ Range: Caster
+ Duration: 2 turns
+ Casting Time: 6
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell summons forth a silent, weightless sword-like construct made of moonlight that extends 4 feet from the caster's hand. The moonblade is considered a +4 weapon for determining what creatures it can damage, though the bonus does not apply to THAC0. 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 damage, and 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.
+Circle of Bones (Necromancy)
+ Level: 3
+ Sphere: Guardian/Creation
+ Range: Caster
+ Duration: 3 rounds
+ Casting Time: 3
+ Area of Effect: 3-foot radius
+ Saving Throw: None
+ This spell conjures forth a barrier of floating bones that spin rapidly around the caster. Anyone entering their path takes 1d6 crushing damage and 1d6 slashing damage per round. The caster cannot move for the duration of the spell. Circle of Bones cannot be cast by good characters.
Spike Growth (Alteration)
+ Level: 3
+ Sphere: Elemental (Earth)
+ Range: Sight of Caster
+ Duration: 1 turn
+ Casting Time: 6
+ Area of Effect: 15-foot 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.
Cloudburst (Invocation)
+ Level: 3
+ Sphere: Elemental (Water)
+ Range: Sight of Caster
+ Duration: 2 rounds
+ Casting Time: 6
+ Area of Effect: 30-foot radius
+ Saving Throw: None
+ This spell brings forth a magical rain that saturates the area of effect. All cold and fire-using/dwelling creatures take 2d3 points of 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 damage, with a saving throw for half damage. Flame Blade spells, Shroud of Flame, and salamander auras are extinguished by Cloudburst.
Storm Shell (Abjuration)
+ Level: 3
+ Sphere: Protection, Weather
+ Range: Caster
+ Duration: 1 turn
+ Casting Time: 6
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell surrounds the caster with a dark sphere of disruptive energy that moves with him. The storm shell reduces all fire, cold, and electrical damage to the caster by 50%.
Giant Insect (Alteration)
+ Level: 4
+ Sphere: Animal
+ Range: Sight of Caster
+ Duration: 8 hours
+ Casting Time: 7
+ Area of Effect: 1-6 insects
+ Saving Throw: None
+ This spell summons small insects to the caster, then enlarges them to giant size, turning them into fearsome allies. The strength and kind of the insects varies according to the caster's level; the higher level the caster, the stronger insects that are summoned.
Giant Insect requires beetle animations added by Infinity Animations, and will be skipped without them.
+Produce Fire (Alteration)
+ Level: 4
+ Sphere: Elemental (Fire)
+ Range: Sight of Caster
+ Duration: 1 round
+ Casting Time: 7
+ Area of Effect: 6-foot radius
+ Saving Throw: None
+ When cast, flames erupt from the target point, doing 1-4 hit points of fire damage plus 1 point per level of the caster to all creatures within the area of effect.
Static Charge (Alteration)
+ Level: 4
+ Sphere: Weather
+ Range: Caster
+ Duration: 1 turn/level
+ Casting Time: 1 round
+ Area of Effect: Sight of 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, doing 2-16 points of electrical damage, plus an additional 1-8 points for each of the caster's experience levels. The charge keeps going off, once every turn, for the duration of the spell.
Recitation
+ (Abjuration, Invocation/Evocation)
+ Level: 4
+ Sphere: Combat
+ Range: Caster
+ Duration: 1 round/level
+ Casting Time: 7
+ Area of Effect: 60-foot radius
+ Saving Throw: None
+ By reciting a sacred passage or declaration, the priest invokes his deity's blessing upon himself and his allies, while sowing confusion and weakness among his enemies. The priest's allies gain a +2 bonus to their attack and saving throws, and enemies of the priest receive a -2 penalty to their attacks and saving throws. This spell does not nullify a prayer spell - the two may be cast in tandem, and the effects are cumulative.
Blood Rage (Alteration)
+ Level: 4
+ Sphere: Combat
+ Range: Sight of Caster
+ Duration: 2 turns
+ Casting Time: 7
+ Area of Effect: 1 allied 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 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 strength, 10 extra hit points, and a bonus to his/her 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 their Strength drops to 3 for 2 turns. Blood Rage cannot affect creatures of lawful alignment and cannot be cast by lawful characters.
Cloud of Pestilence (Alteration)
+ Level: 4
+ Sphere: Combat, Elemental (Air)
+ Range: Sight of Caster
+ Duration: 4 rounds
+ Casting Time: 7
+ Area of Effect: 20-foot radius
+ Saving Throw: Neg.
+ This spell transforms the air in a 20-foot radius into sickening, grayish mists. The caster and non-living creatures are immune to the effects of the cloud. Every round of exposure to the disease-ridden air causes the loss of 3 points of strength and dexterity, 3 points of damage, and blindness. These effects last 1 turn. Cloud of Pestilence can only be cast by evil characters.
Unfailing Endurance (Necromancy)
+ Level: 4
+ Sphere: Necromantic
+ Range: Touch
+ Duration: Instantaneous
+ Casting Time: 1 round
+ Area of Effect: 1 creature
+ Saving Throw: None
+ This spell restores the stamina of the creature touched, bringing back the energy lost from a day and a half of exertion. Note that this may not be sufficient to bring a character out of the "fatigued" state.
Star Metal Cudgel (Conjuration)
+ Level: 4
+ Sphere: Combat
+ Range: Caster
+ Duration: 3 turns
+ Casting Time: 7
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell creates a meteoric iron magical club that is +2 to hit and damage, and treated as a +4 weapon for purposes of what it can hit. Proficiency, strength, and specialization bonuses and penalties apply. It does an additional 2d6 points of crushing damage against unnatural creatures (undead, elementals, golems, outer planar creatures, etc.)
Thorn Spray (Alteration)
+ Level: 4
+ Sphere: Plant
+ Range: Special
+ Duration: Instantaneous
+ Casting Time: 3
+ Area of Effect: 30-foot long, 25-foot wide cone
+ 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 his hand. The thorn spray covers a 30-foot long, 60-foot wide cone, inflicting 2d10 points of piercing damage to all creatures within the area of effect, or 1d10 points of damage if a saving throw vs. death is successful.
Righteous Wrath of the Faithful
+ (Enchantment/Charm)
+ Level: 5
+ Sphere: Combat
+ Range: Caster
+ Duration: 1 round/level
+ Casting Time: 8
+ Area of Effect: 30-foot radius
+ Saving Throw: None
+ This spells 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 1-8 bonus hit points for the duration of the spell (these hit points can take a target beyond their hit point maximum). All creatures of the same alignment, however, gain an extra attack every round and a +2 to their attacks, damage rolls, and saving throws. Anyone affected by Righteous Wrath of the Faithful will suffer fatigue when the spell wears off.
Spike Stones
+ (Alteration, Enchantment)
+ Level: 5
+ Sphere: Elemental (Earth)
+ Range: Sight of Caster
+ Duration: 12 rounds
+ Casting Time: 6
+ Area of Effect: 15-foot radius
+ Saving Throw: None
+ 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%.
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 a target immunity to damage for the duration of the spell. Evil creatures cannot be protected by a Shield of Lathander. Only non-evil characters can cast a Shield of Lathander.
Undead Ward (Necromancy)
+ Level: 5
+ Sphere: Wards
+ Range: Caster
+ Duration: 1 turn
+ Casting Time: 7
+ Area of Effect: 20-foot radius
+ Saving Throw: None
+ This spell amplifies the influence a priest has over undead, though it is tied to the area surrounding the priest where cast 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.
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 of 19, +20 hit points, +20% movement, and +2 to all saving throws. The target loses the ability to cast spells while Animal Rage is in effect. He or she can be controlled normally unless enemies are within sight, at which time the target immediately attacks in melee, using whatever is in hand. There is a 5% chance per round that the target will go berserk, attacking friend and foe alike.
Whirlwind
+ Level: 6
+ Range: 35 Yards
+ Duration: 5 rounds
+ Casting Time: 9
+ Area of Effect: 20' radius area
+ Saving Throw: Special
This spell creates a small whirlwind, which the caster can direct to a location within his sight. This newly formed whirlwind starts to randomly wander around the target area, hurling away every creature in its path, be it friend or foe. Those who cannot escape automatically suffer 2d8 crushing and 2d8 slashing damage, and must save vs. breath or fall unconscious for two rounds. The whirlwind instantly kills creatures with less than 3 Hit Dice.
+Once a whirlwind has been summoned the druid has no control over these raging winds, so this spell must be used with caution.
+Entropy Shield (Abjuration)
+ Level: 6
+ Sphere: Protection
+ Range: Caster
+ Duration: 1 round/level
+ Casting Time: 9
+ Area of Effect: 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 and a 50% resistance to most attack forms: electricity, fire, cold, and so on. It also gives the caster +2 to all his/her saving throws and immunity to all missile-based attacks.
Symbol of Pain
+ (Conjuration/Summoning)
+ Level: 7
+ Sphere: Guardian
+ Range: Sight of Caster
+ Duration: 2-20 turns
+ Casting Time: 3
+ Area of Effect: 60-foot radius
+ Saving Throw: Neg.
+ All creatures within 60 feet of the Symbol of Pain when it's invoked must make a saving throw vs. spell. If failed, they are overwhelmed by pain, suffering a -4 to their attack rolls, a -2 to Dexterity and a -2 to their Armor Class.
Symbol of Hopelessness
+ (Conjuration/Summoning)
+ Level: 7
+ Sphere: Guardian
+ Range: Sight of Caster
+ Duration: 2 turns
+ Casting Time: 3
+ Area of Effect: 60-foot radius
+ Saving Throw: Neg.
+ All creatures within 60 feet of the symbol of hopelessness when it's invoked must make a saving throw vs. spell with a -2 penalty. If failed, they will stand in place, overwhelmed by dejection and surrender. They will make no move to defend themselves from attack.
Impervious Sanctity of Mind
+ (Abjuration)
+ Level: 7
+ Sphere: Protection
+ Range: Caster
+ Duration: 1 turn/level
+ Casting Time: 1 round
+ Area of Effect: Caster
+ Saving Throw: None
+ This spell steels the caster's mind against any outside influence. Charm, Command, Confusion, Domination, Fear, Feeblemind, Hold, Sleep and any psionic attack directed at the caster will fail as long as this spell is in effect.
Destruction (Necromancy)
+ Level: 7
+ Sphere: Healing
+ Range: Touch
+ Duration: Instantaneous
+ Casting Time: 1 round
+ Area of Effect: Caster
+ Saving Throw: Special
+ This spell instantly destroys a target, blasting them into small chunks. The victim is allowed a save vs. death at -4; if successful, the target takes 8d6 points of 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.
Greater Shield of Lathander
+ (Conjuration)
+ Level: 7
+ Sphere: Guardian
+ Range: Touch
+ Duration: 3 rounds
+ Casting Time: 1 round
+ Area of Effect: 1 creature
+ Saving Throw: None
+ This spell grants a target 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 characters.
Mist of Eldath (Invocation)
+ Level: 7
+ Sphere: Elemental
+ Range: Sight of Caster
+ Duration: 1 round
+ Casting Time: 1 round
+ Area of Effect: 10-foot 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, poison, and healed of 25 points of damage.
Stalker (Conjuration)
+ Level: 7
+ Sphere: Plant
+ Range: Sight of Caster
+ Duration: 8 hours
+ Casting Time: 1 round
+ Area of Effect: Special
+ Saving Throw: None
+ This spell creates two shambling mounds. These creatures willingly aid the caster in combat or whatever other duties they are assigned and have the capability to carry out.
Bards in Icewind Dale gained different bard songs as they leveled:
+As the songs become available to the bard, the ability to freely switch between them is available. This component only affects trueclass bards, as the available kits use variants of BG2 bard song for kit advantages and/or disadvantages.
+Icewind Dale also featured two-handed axes, as opposed to the strictly one-handed variety found in the Baldur's Gate series. This component scatters normal and magical two-handed axes throughout the game to make them available for players. Two-handed axes use the axe proficiency and have base stats of 9 speed and 1d10 damage.
+CamDawg created this mod, based primarily on the hard work of DavidW on IWD-in-BG2. You can find out more about IWDification by visiting the mod forum or the project page. Visit the Gibberlings Three Forums for information on this and any other Gibberlings Three + mods on which we may be working.
+Since this mod, and in particular the spell packs, draw heavily upon the work in IWD-in-BG2, the same thanks and acknowledgements apply. In particular thanks to Nythrun, who helped immensely with the conversion of the spells. Thanks to Andyr for the development of the IWD casting graphics, lifted entirely from the BG2 Tweak Pack.
+Tools Used in Creation
+ WeiDU by
+ Wes Weimer and the bigg
+ Near Infinity by Jon Olav Hauglid
+ ConTEXT Text Editor by Eden Kirin
+ WeiDU ConTEXT
+ Highlighters by Idobek, updated by cmorgan
+ IESDP maintained
+ by igi
+ DLTCEP by
+ Avenger
+ BAM Workshop by
+ Glenn Flansburg
The modding community for the Infinity Engine has been going strong for + more than 10 years now, and is the culmination of thousands of unpaid modding + hours by fellow fans of the game. Modders produce their best work and players + get the best, well-supported mods when we all work together.
+There are two big ways to upset this harmony. One is to claim someone else's + work as your own. The second is to host or redistribute a mod without permission + from the author(s).
+Be kind to your fellow players and modders. Don't do either.
+Version Beta 3 - August 28, 2013
+Version Beta 2 - August 18, 2013
+Version Beta 1 - July 18, 2013
+