From b1e133739ffebba299d3129bac6cdad57bd0dda1 Mon Sep 17 00:00:00 2001 From: Sagenlicht <herbstgeist@googlemail.com> Date: Fri, 14 May 2021 12:17:46 +0200 Subject: [PATCH] Help file updated Added Storm of Elemental Fury (deactivated for now) --- overrides.zip | Bin 16057 -> 0 bytes overrides/mes/help/stormlord_help.tab | 18 +++---- overrides/mes/stat_ext.mes | 7 ++- .../action03801_stormlord_storm_sla.py | 27 +++++++++++ overrides/scr/tpModifiers/stormlord.py | 45 ++++++++++++++++-- readme.txt | 9 +++- 6 files changed, 90 insertions(+), 16 deletions(-) delete mode 100644 overrides.zip create mode 100644 overrides/rules/d20_actions/action03801_stormlord_storm_sla.py diff --git a/overrides.zip b/overrides.zip deleted file mode 100644 index 51c603f131db11b1385bd7376a5a58b6e24bb424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16057 zcmb7r1z4TA+U-V)ySux)yA=20?o!;{y|}wWaV=1wNU;LN-Q9}26uU5U=L|FL{r_|K zem=6plVq*Dc_ZISA}<93iUN4~T!v*T{_*4g{(*W9ZJdqm?ahsh9q8r%lTJW6>mTXh z{*lh=A8Ez^l@|Gzv}VSZw*M&{0+6YnrKnhba0&?q0L;Py0HnXq;NWOuZ)Is?Z>0N@ zpUzR=ph8vK2AL7TlMeAo-z_f`p^bkfYI7b;NMj2QK}dOXk&`pP5PV@K2Hl&xuC0JH z_Y(vm>W^V{4^vaqZ(><EQFZsO7uL2sd&VC3?o5((Uwl%cS^`MEk6YT<&_hoT)jJhF zZN(n2hzo0EN+4yC$qofldZi~&zUNgkd7B$IFeb!h6FK@$vMS?(r9LW2aaX?n)bcyq zkDnfgDh2)-8vq<(DSdxdme@oNrBE@jjE1~U$V~@`nsc_>AR2!P3t9vP&|VRUnQ@fb z33pSk99;l3dCBN_NuEq$8EQb!*wDC_jW%JXqneRfLzc2pY&=Nd^}E?y5lqAcRtR+n zbQJRGjz}|l1()3Yxc#hBb<}FaknhZ4RDoUDNMu3`Z1PrZSS>7>D*NJZ_9$<|2hb~~ z#l6b}$F$N`b?fb=RxEO-P%vqV0l@NJ3JTctqNEuV9CKgZ)=y~2B~BL$Fze>1zHc#- z4gzWE7&S*E)fj>ycN1NbR72^M52=NNvyvQ1=)K$iIOHBueJ%h+kdGe%2k)pSC{!$U zyTMGoW1B#Bd$a1Aklpa(n;0e9G(l0Z*ZJKy7EVq)qMSQE?j>}So(JUEBKqA@m2Fw+ zGY#LNh`amww6qB;@^H$Zw|6@3k}lbL!VNJR#B`}<{qInL-|;wa@xuPh<#sBH5Mhb} z-umW%>QAFvv7d|L?*tq-w=+$FoSGii^rg#8R>XGtOP-e5e!5W*5*Bpmd~UnJC~{bm zs@c9#5SUCk9F5da8pEzgdQzg1_L^89Wa=dsgfs>Yq=jFU%Sewj>JZP(e5U@mWQUEY zcN}2NXKTgzHcqcoN`l`%WjDCSB<UOY?ubXkbx&XP`Q|0TkgR5fHHzDnvMAa446jA~ zI(DX-F@uJ50tFS8uhP4x&?Cha(6j|bnMB8QWH^!;P?(C5C6`va>tg=h$nmuwL)fb8 zeX`?U39z#Z^6ltvKQ(SiX`+3yW@~}E?6#nXB*9GLhYyvpQJS?Fk*3(_?<2ka@KC5W z#)q+3-jf>WCnG_Frhz)Rf~y8!wfadi0fWY7Lmz2GhDs%37725oept(hM9onP$e?F_ zbb9b}3ld$ZIo%us(R5J!ENlEw<@PQdt^`%Zg(a3%=>bw%B`#3TWm#{IZAz>XYQsT? ztX(O@{zOv4v~j`?*nL|XeMV4Tbx1uv`(zX<6ltxh@D;UpnGB`qT$EZsxGW#4>9jue z*>IwkCR=C?&)0_^Y}c`koa>k|`jJnm<*f9PbEl=B%`97TB|c1<EJ{inP>w+I?WE`G zltQ(+rzu%9R%d<aCF}^*>T4*A)HZjlL_A%iz}z;6SKU1oY+sNIxk=V8-0CGZ%<3NU zJM5k-p+Y&Tnxa>=ny?9AN_TC8H@sQr!O{K<r_IG98LZvm5$`Du{;-zVr--bqFrMC< z`k-T=f}IW)1n0;C<|1gPzi)<elivc5eXSvU)Ip2d{QWV|O+Wga$$g+sp0#zYZON-! z>*TBpTysCViW<)5foA7t@9ilEZo!ggAljy?Mn42T37>6d2FcV-ifs;ahw^<@qUhrc z@sEu+eg@89XcJ9I6+Bf4apTlK*QU*dE({u)t@$w{;%6QN`9p-9zrs(9t$kDqCYgx| z+*WX?Q%<*y*>DRZxvkzdD-lRupc2zb5SDuyd_uM~8qT)4iPC0mm*#fXHC-0_w$wOu z>0Mu1JAkH(JtZdk@c2gHbNc|U{%Haq(>~(%tmM$_mAt%~ZW7Ve2f3BOK0ayaouSWY zx48HW7uB9`Ke#5Zb<ny?0#yufOUEr9%%Fj?Mxr4XBKBUhO&4-3sIk2b{Cax+W**K5 z?Xc4au~hqpVd(qbHwDii2fI-%-*X*B5|EV1;SjLH`rZWmR{X1R1s~TNbnUYoKi(C> z?`~CeB|m<&PkvIC;uxu`-0*QC2-lYVXvUaynz^|V*o}SKc(ULv#hGq2V>j<}ee{3; zR=2^vQ5JeQvQz(cu6<4>CmEY<A(<mu<9H!;AMOzTw5K@^2oW0hX@%gsri=CR4dh=F z6$C&<HcJugma@_q9RT3q1pu&qnM)iT^&NGMT^;G3XRQiN35NwXls1>5C!j_$<hdG} zg<3C%3`dy>=>s;?&_EFpt#`f&c@`HdcdgfeIE{?Tcxhl?wdFP-_gh8Y$!3*fNBu89 zD;2AxTbYX9nUb@!v+Md?o*650=D+=zyw}Ry*1((}r{!UDKcj0EJhL#ADdlL6^7uVs zVSH7F`)1dY>AF55JNwjCWjA&05y9)YCYiR$r)}xWfD=<T>wF;()4a6~H*cBb<^0cX zI(v0jzqQ`Y>6yh=5tqWHalN$EG$z;`Z7X)0v&lKG{z<vQOk*amFH4>_k!5J9bjF)l z#EEr2s~OQ;*&$m38??6cjv{)Xpx!zGU}5fq(i@<Wh@-B3jv5t;+GP4<@@|8UO1oGS zpt5;|KMTQP6Kv1~3K@(m9JcmNxRfUb7-MB5zx!Q_9iCC8o?CZZYqo;Yl(-kCWqk9! z0KYi)y`;f`^7I+KQc}8m`>-g;3+Bm{+p_`|9$CrwPPMX+n(zYRbDKG#`{;Lp)DO%C z63T_MHq)+nSO$H1*HLun9aqa0WlglOp~!Ge7(f=Pw`tQ@cufRA#fOt*`fH?MWZ76D z8<So|AA%|*A8p?N;!9&Ad!-|Zj_hRsgIMVyGS&<(g<fptah$zGB`Y45U@A+E<L+UJ zJk5o}uujtw!IZO0bKx#6z`Y_HZss3@!Gk%LwgrnSA(S@;3(VZS-tesWDmTM%1HNa= zR6uJMEw;maEY<xk(xNz1OD_*Y(BRpGWoUVL1>q*TIB>~@<0725<(OsqHiezf@Mm$h zou0^J4OK*G(OzQZ{^Do>;c4+H7XcF=d8yw6UyKtC6MH{nz#Y2Z<>-~NTt;uQ{$f0! zMD@^f^?W|%O>piFd<+Re>^ZvLC0LnM=5-NB3I3SMaos?|l>;@2;VSt@#QWoF$VeTK zZ}3A#xEE><U|LpEXZtE|ri7Ko^W?bX{o8=2Y|2Q!W6zRYIv@J;#R+9IB2V58B-O7_ z$ybhM-+n(?l^W;JK&9OlR%s%3c5roec4i7Zd<S(0Gcqe;k!;!Yt)a%*;YW>Vpq3Q< zY?q?D0qo9Nx?1O?R5YyK(fc1^4^kh;4a<^;yXeMdCFn7l6EE`o;_<NAbxm`{P-Ij~ zF1j;NK|fqbsA%C;>z#jcw4=*`tSD<>wbq=m+9zwE8=jx8w#sa*P*`X-(>%m9px7J5 zL{<|ez+4DZ$CF2=W`rcrZ4lFeTbOoRz^bqK(BL%JP&q&S*-E>y0<EH~u7TB3bI0oa zWCPv&wDCf-h2}<s(^A7cbFV#EV}9^=^f4QJGsHwq_wxDv(wHm?#{#S}#srSO=-nfd zWIXCaB3WaZ3hRO{C@$S#<MNocdy>{--`#$EtjOlZ#9?_Z!LNL~-8iMwoF&toA*9%! zfaYDMNW@MEyw+Wq(=iS^J7CEYl(VE<T;G<)?CfzvyCC=49^~&AWyE_+o3v_&<Sc65 zfdj`0h2)Nj(`4r57-IGI)juqog~Kjy+MOW1Q`2Clm1!Y--$7h{J-O*tA6G-IQPE0E zw5yuz80et9i=?E*?IFEcpeGH~+S#{zLnCn6I{cBtimZ!W?WdWHkI~>*e0oopHDJs| zwo0=jWM^;=?5i)Whnm04I&@1a$tZqVDL)fQgPyF-5+<bKVX1wRAGg!&0WdOiH#qhF z5ZuNw8M0{-T6g&XE)Yg6AVLk`ejY&jxV#B1&DO@;L&MNTz$lD{Njj*UCqRQ*8V?ne z67COiJk`z0dgTvaOZrC6IS#wq0&YzuvqVCvY%$J8nOZZu6uk@j5`hnHvY!)pY{XW- zK?i>F!+R%q5erTBKtw*>V*CNDdohMc3V$$)pMJVjEJeD-jV9*yPRZUDo-&McfZ~Fg z(hj;!^mZRFtXzC+)bCYDj8{|>QuzatGJ<Bne5}pG)|5KhWm@c{Li&L@LF~6kvtJvP zsY=4bDj}oGfi+T38%*YrHFjt<VAMm<yzZpF3{Q#ePn6Dzot{C2tBNrg;VKG-1lqVX zf%nN1bk|Y#-$gifz$Y9Jjl+EzXHyoS*9IaA`kKltz+6+$s*}W)KsBfp^dy%Eyno)i zQ213RQkUSd6zibu`#Zroz{aP3Q9O$jb-lq&VtWnn(4<h?cfHl4YWN&m%mOH&V45e_ z<&+5L6DvWKQlVNmdX)UON=OF<ot%aI%AM_^qJHH&QxoBX;0YR2vJ3MoR8F;BW!i{5 z0}uyy)c`vP-fj_;F)9$^B;>hZ;Y%SV-bCaoz#FR#M*~KE#Y9*DSYgfLJ}F4tSCO$# zEi6Hf6uGcWjg-KTWK}ar;Yy_rpQV3bM!-sAIVyziL$bhk8raqz)m@`(R;!IcMFXGo zF{=mG=xzz(tD-`oO>K{YFlVL}Ty?AVwVObJO|B(l`GWQn+y{r;Ons^++S=30P(@bb zkjq0nkT6yv8x4{yb2KsHRahPN`yS!ik`XH>j)9H9$F#Otks1G^juU#f0;^40KVA;S zDm%{eOCX(G31f%ahU^q?NPj1uK91ou`4qc%bV&3?re*iOhp`tm6gl#t%mBn3l7(-F z7D&2yRG#D^ivFe@=FPGJ7p)gGrT>x)6NW;PM$&dkK_xH*?$6vbR<P_ju#34H0}_i7 zJcT#W#d+^RfpE(r=|IYOjX7C6^a~}W;j;T;2>A&`{JCf&X#<F6z7e`t#U=|>KSpIa zHH!=l7klj{?8b4x6BU9K+tL}mv6YClhxkDZJGx#9dR+Ds;t<X(z#)XzuCgJ#6R1Ad zCzT3o+hna{#&&jm8{rDF8>FdzjC7azQeAl}z^sZ1^o<&*Z79H|?8|VQc%DbWG=z1Q zi~<5sX7>4FG!ABoDU&1AIed(g)RC{afNT-WI@0d99q0?CF+kpK)XHq(`_Tz_pKl_U z5YVID-6<-^{-U{@<2?Pj_Fp-0$Zy?9ZefW+5LikucoElv#*smQ2;Ih<_N^gCaKX<L z*gT~mE9}6#r4adX$#nw@3Rf##>P5#AR;jIOi_5<`2c8M#n^l9Mf(zveWEAp0FzNRl zPh4b|kwz2^38s4DZaN~ACs68}=wG4r_H0--eOj*N)bvr$5G&Z%J}76?1_y+@UT3ti zr@fIfTa#fa)Zdc~NI}LL=t$TV3Pa=U;L^WZ1+f8|+~{9~Uqc>7<km2Jvw4?-Lw(N4 z2whwWPX?T%Kk_5%Ae?phXD#TbTCmF~!WN5w>-Jjjh72OWEqgD0+Qw2m&tR`7uO4+A z_8h<!0|K$8ok~jTh&xT%)RsqKuB&e-;AyI-;1rYI%CigF?sHHiFbXKtj6F>V@2pbt zM_vLwSW0hb8p>R$<w;iLpy@qGf8{9SHx2$&k<d!H)siQMT<i0cNFcnqh|^ygyb>{4 zaI&e^-zdM|sO1tkiTp?$rj`Qw2voxw^xil~e$5a}6amh6(Lod{fF3TG;lzvpfwN0u zk|<zX&^MPI3x^mnmy2m#{*zvPs!nH)t=bkCV-{mA>WQEy4dWn7=$90{AW#T$VBa&) zj6UffkUSYUR_p!)Y8*vu0uMI5@!aEIYzo|F;@dKh{KePjC;ju1*Pl+F+MwSh^VnlZ z%bPK0o_&MS7u|=CR*RVqw1p}&fGQ(NWvw_Z?ziSZ)C=($J8}@AN9#)jJ&NEV?SD&; zLH-7Nbl@^7643VH?HNh983-{;fnd%|-?C|fA|J@AfRsvdg#w{VKf{x5lIgdgt9ZYU zup{A1jR>)I9;kI5J#O9rE8|(vs*AL|{sHCyDI@`$?peZKQmb7=hP2%<iXUmG#6m-* zY3n$}ea%CGdSC)o8a(n*tr~mak-<2GuBRgUA`)0NP%?!)=H|&cFk10l3II%{n~A`B zqzKwM@%mZN4V4WGV_FYeZ6e+CvowN;N<Z`m-NjpW@3ma}&xWB<ejjM5&@?B5HE|_n zD6a^0!4qt~v!U08y~Zd(k~#IzumW+U5WU%05Pi7zeY&1X1}}^nLr>s~K@u}B%>pFF zRh<>FEgT@Gf)RMv91wE-okQ=ct_$<bJjV%&Fh}2DTN6l>(@mmG#}7e{sAKlg@*z}; ziqo+6*!DT~Kn4z_x^pLd__~B1+Mp{kUpT=pu5uX|2ha%AzV7b?BoLHs1*SKAxXhU+ zQ8)LoX$GXpBlKj(tl4Vsq8hB=*rN!q==P5S&u|KOy}jkalwLeK(?S+79&LH}x*AaM z^EMusA=1wQ!H>CEtZJZ`tyNYN^#NKR;oC66_NRwWr5)d$X)R@lb%%D|aDYIfYKoSi zO9fS@CXKtAtKc{@seDZe!dQ0cc$3l{4os&#&ktk&4GLvYxFHlvAb^xY;*Gp|ZTGf> z?f&~z2{(5GJut;UBgVar&IEyR#`qNS4Cr{Sgq_uOsF@tfDS5P6%QWos0**$MpK&}c zi@Qn*zJ9w%f;CASSV8T=x>B-YTd{`w<Ke)J4D^00sJ8P}3iLWK?eZTj>fi(6w0U)` z+z-pinUM}ELRF%glmW%gV7Z+9hlgEK&NOegQra`O<l`GkhXV4Y>T?LDp4gf2AxrQC zT1c>MEA(wY&FbxdVjSF}tSB$V>Ln_dGDLNo3(oAux%(O?`(wS~?(0Jmvl25GG+;?K zp?1tIaD>+~^ra>OLgGyBC<<r3eFVjWFtw!_+AQd)pS%T~n|43g+h)guXiPcUs2@SF zbL)d~Xx2fGb}8O2FBk0a-{2<r;br}yU*KUD1-fW=?11AZnWXJPI$XVZy3YayuYFdF ze<^V<IHUwVCE~sSS*{Uq8UagEDq}tAioWBUAC$T{4`P__8E<q^&m@HT$KZVI_=Q2e zZWT*Q<W_#3&>}u2YGxy9#~pl8nCFRmibWhE<_PS5f(>D&c7w^g$3Z1Ijer%)`dmz& zTjD<A5;#6)NaqU%dXR8b#Fry!j4OB6h*PaEmG=!Y;ox0svqzzhmi~65QGm@>Do|?_ z#g0J4<OMGUBvi<<SU$QkX6e+3{cINGr}!Kas+<QL54%E`bOl89J^pvRriSjFy)1gT zd%S8jRyKw|jvSuGrpaI??K+r?8X}O`=*v*WS%~o|(!;&<u>IfUeIuRD?_}_e_BW)O z0r9_668_;XJKbKLRTe9@dj)q|uCuoMruV}hBBQ0NU6u}FXEzZP=uXN9bc2k&_O}vn zI&SwYypB!65WwD>il^-KSH(>8z2xuH<Kypiy&u<>T=v$Ib(b?Uin+rtlM*;O>y;Eo z3b{A(+SW=Yd|@fLwahTY${Eh6<!d8R9l<k(1vkXS5WtKC?z_bmj+_Ltg$H}d2_6wu zj$^|i<2iVPEVUY#`jqlQos_cRf2xw=ELY@!B*bhPX^PPQWNDf0HT6p8?iuM`S0=#* zA&40yge?{kZ?f1*mE{x3j}x1yUfn7_8lNN~&&r#<(ug;XWFa8@$SD8ruwjC=LO14W z^uTaHoK(}7iP~IGE@G2u!@b&cw5t6vd>IfMv?s|?N<diDgM;IHO*E|(cN~t0hz4$P zGl3UN*SMr9)*uc*bc6S_#5`gUAKkfM{PFJ6hL`+3UsMl<gB+Tt+bKK4Vfip&ZzjfK z9lRe95vQ_Cxh>Egct3(QCF)mO+=SMMYuE&zw1kwcnveVW9`#FJeG+>YN6BLK9~Je= zLn6ifFzQlgd|N1~6*qdGG;66YVq}fvcJkh3`1(n*PBpzp!qc<f*Q@9>QN-sZKyyE- zZ<OC-O&l|_{!~(+skiOdc1WfEMUZ?g-++6^+^ZGCrmIZ3STyX$Zx5?s$Z0=i^unHL zmHoJz(?rHTPK3^)Crkg>dg8~MS^y$;!+7Cn@Aa|--hfn0H1Daa&0>Pi&q%Pn8lX`x zbvK#h%mQkm<YBqFI1;y+1Ra}e-5>sNS-$8l_{%=_(sN{eVPF&Bym6s#n=}RiR+~eJ z?>ZF-{oSQxH|0@#Ki;MADDp^FANzaPEqRE;^d(oXui9Dr--YzW#f*C_PX=?KUZp3b zMtGsyO&ZN?qCrEfDt9v891HAHm~3Wd*{=F6A8QA3J4=eqH13(!3L<l)abR4sj1UVb zSai?ThmHqyADLe$VTCvQfD-C&44ZL7Z*3~-7{#%}WqmH&>bD}6EE(%1hu8^2d$=RV zrSCAGgNk+_+#!)fK?8<dCu&{a<Wdc%XyVAx)+;Ht_dDZWfEcF9=R2No(J~cU!QB+P z=gSL8Z5io`RsyplGUi924)zxqRwY^^8;$EovH3DNt5~U{z(#LAgvgRZ@Im`1!)7Dk z;-lWI=?5bt(vG!n(#GhuumB`JV2TcG#m|)()kQwO2s7@KN<H2WA;M>hI6YzVVjrD9 z^M4wR5B{mU36qR39nGI{n(8kpnOiLDkiDL=Q_GA;N&w$E-N~+l?#iB%CqynBv@3$X zv&Ms_(hv|kl7Dz~?hU1Dl#>Kh5B$UnE>JoCPTDU$&z(C_LY`h^4=l+arJK0O5<srC z%y91+J3NjDb@Ets@$^MHx{urju?=@V7_RJt)%AHG`Bo9igzPpDc&&Nim*~S&;3l%$ z_Tt(20YNsy2cdg}E}^ZqGc~YJ`-)eFWqyGKU3G$vY!9{~_GR#3sKp}`S%-HSR%N)! z3z^wkmfn<+YGnEG5e4mt!Wf|#2Eom7(9q*uF*NBTYIHLcB(s5Ts=EbEgQ+Zh4{5Ur zmAF|b*O@1`n2twE#9zOjlNY4Z>i9x5-j_?^rl~HROvDUPFa8XIk_N#$jg<ZZ81^Ha zvR7e3hcXnmEh9)B6f4!+Hu6^k5xwTMUcsu_6jzrA;t?fHwqf`B90>^1Lec8Cxd5&N zV}V1OwchDV4ae`k>o3}^?dCHoMtkRg(|6$OwW6t`;u$N~Q)esY*KQ)o-cr7dP&O?a z-T08*Zz&Wq3IX4Lbzv$5=YKSDJ51M|;Mr(}gy!`zY{}CST0Sb>w4}><PErDs;6Vr^ zm>@I=r@juG0?T!BMa{ZIdcHOVZ>6z)c<vLef31mAemIJ+n2OAsC7_vLhvvMP_%3Rg zC_0`%1)ar;n|VuL=R~4g3qE%1AvE?ygsRn3N-j3ca3<8A@imn!9!yHQR@ZfIe~t4g z2<5{R`;@Hs1{?+777Sa#j;^kDy(hCZVr!{f#A_R{>tnFJrSzSOUe9lGtfzgcN8E~a zx=%UO5OR$TS`q-yn5!MR-SIx$`b@x8V$m6t{&je`VxuP>UP~a=1oyi-OGGGMveqp@ ze|R@k2s-xOkr--`I*u-n%bl|cVww6QO+f@=?QO>tfncPKKpJzC+mig?pdpFoo=<V1 zPSI$N3AqfAEEHX$Fgw9{d;!Z36e4Ab<>|Cf<>A0K_j0E3N$A?!utq|*80(BvC#3S_ zcDL?B*TiP_nQ&U9ROnN2yC{pk>IM<oZwJ-<!^drSJLQ@Host?_UP^D&9s2b6{pYHn zq{AMNzDeJN$b8=KQ~LUuSO0TlJ6soH{OBh0RU=rAv>tt`iaEN>uzUzR;PYZbUQwp3 z2i@%?sPmS1UKhG#jfs2(TEw~4bv{c8=aG@_07^X7HY8FZt&nWK_Io8qiAw4NiT26a zCtT#?1=ww#zP?`kdP0}Hb*vIP(f5gncoltOIb%iIa<`TPkpwN!d0oQm2f%Ag84QXy zrKA06Tq|LWcex}pw1Tsr9kzr?qTrjtR1H=payKS$7fyy*SS2nZtduBQf&5emZ}z~b z&=<7qb{EO{gDyjYWHX#{t}3Y7{K319T0=3i<qbVQjD8^m<M%kk`apR$9UF*MT#qRU zQBy!vAw}igE~dZl>clk<K?$Uy^ho>t=FQWizfV%NX72J2%9&`GLU}uRMYt=P$@h7p z9(I@fDk<%1dVGpbMuq4wKfnr()25167Q`6ZD4Pq>v$Qktyr&$1EWBWn43V*(Y{9i| zTf>9(ku~o;E_4ZTj?T&d66b&2ZASQqIB)M{`Hy|%VxWKSIb;7OwV|25y{@69zQf;} z)erzR#Vp15wkktzpa6iv^G-Fx|D5rU><r8ty8qc=rn7Y$Qjv<DU_fY7-Seq-rl);p zmYnQ*S?#E)_O7{@)>fd;K3>9NZ??y|fhP26cvd2<0FuU5;6k1>>y#bd=bSTE1+oUp z_r$2|6KP{}<~^kvvkb`Bh}@E`&PiAV`!dHyhx?s&>yHbNghccmQ3)bAm75Wyqx<|n zoFN`rX5UHKf9ik;ljq_owN$qh3`Jx{yRbPT^Oo|}{2UQoI+hxw_G7<yI##j)m?p-- zyN5J}9n01M#%OaMs0eC3d6;m0{38=04O@tB{yAhOC1l8gj{hv(R1$b3Op+=6t^sGe zCvR&;_MPn`NiUO3Ukt`~8dTdi{%Lsw);m@3#NZzh8Qvp2YBoCj47{Mi#re(}4-~kG z+Lfb~mM>WU)q!DAZO2cG$PmbHif8rer`agJBe%=G-iLZ9woTsZin!FS*5&{oqT|$A zqit}fbNkEz1Qt9K*iC)xzKoEVRQ#DCbcs00!D`mEiFh^|RL&950%Lz^#lwu2%wyxH z!C>e$tl4up7I`KCn;{%VFcM9erZ6Sz9M|Yn?SLY!w;1_*VNyxtJVwsPEwL8l1QC9c z!93>bGp<~AZ@La#6?u+7cQi<JNY_wxEJE|?5Y)^<A;P)2YUm$GS&wkiR5eB_c)Y`v zL*I*JwGoiR6@>RXHnH(|+OfQRTc&2Hl5&-M9gdkZsDWm=E7?CO|KYU6FK{Bz{Cg_J z`;;6G+L&x)=b$at_msRl2oIg71&*H4J&T}j89$)=-xSfkQ_A?zkc4Sk09>IideY-h ze3?5+`>qt^hSUG_3WoT?K$+~Av^QI<SBxCbDJHmgrR1=*)?Gj{A^-t7Au?+siXUS2 zI-xY+#KTt-`l=FEw8E0Mj#KzZialGl-7X<!jJGqq2Y4;z;2{(gA~N0=)#A=o;4O0= zOKN1cyXqqKBwS}}d-@@~>BI;0x|xl+xG0@0Z94k5j`v3fTm(axb2o?f-YTr9Qr_Rc z(Lh8G;6Nr1<+v?7EjO_vfL-;HdC{w8>wv6MSd5;`U4&|Q5gFt2f5f4TTpAj%Z!O@i z`pBXP6g8g~2BF@2;mZ<f5;<|DR3^{#SaPc59AdQ9QgDW|xPj|aAZmCo`S$(ZZI-S( zQ2b=1W|dr4tOqSE#m{)*cSqkbEJxb027!@<U~9}F;C8*KM^Eu2sP@OEX$*Bnl7kJ? zEnF@yvttY$?ZiUEWex7h2n9=7@p3=E%^<sg?W=KqG7e8!hQ*N9X{n$KsjY$#IP3XY z@&sH>GMzi$B=n{F<AVJOnlF1XGJlo&w&FG(ue3qTkVUR7A@B40A=Yh@A<k6TUa{AD zK14?5G+F6Oug#|ekD>3uAC~C55?0DxIBFZkIr0<D<vy*<2e`L{lWn3#Pa{~?(%tj- z5VKmq_E{A9eNP0tZ9KART-`i@T09pxyB{BDF58r$jj2x8fn>78R#fypx$3uyh*zy! zVIlcQG5u5!!g{5b$kOiVqiy;GR%yhNY8!U;gzEkTuC3vUw1xSolE@GEd$hz2|L55p zoZk#%MobL4`i73?Hr9U+fB*nC;GZKW+HZ2280$O!od*Iy+?uIKq%cmE^PG0;`C<Kk z=K0SsNnmVkrf+R%Y(!w8?`&*oZtXzl=<28({T0ez07dlL|H<~+-$*d91<fi?`=P_Z z^GEkh?{;LEPd29LS8Z*$WQQOwI=d)7$KenxaB~Tm8IJLQOjMcpvi!GF2jd0sI5(BX zX_Mt-vwRx#q*qL9SG|Y}t73wzemN`38{lD3X#wQ|Vv(#EsqXZgbQQ|)bijg8ky8>( z=?t(nIkHR<d23n4_f)mZAAia`o^}#ldTf7^7kvc%%fJu-&}TEH<3cSvK3BEi`QiRA zs%&m$<z#K{=tkgZLtt!aZ0KljZulI1skqEAFBC8%Lhu@247VqEOvRET8k&D5ImDbD zZVJi%Acd=kkHFHI72a|ZHEG6|_lcFraP`YrcOc6(=v0+jI+$JRXO@r)7-*!0WrY}I zwRvASu9K=ABE0=ZGmQdZ?ou7LO;!`7ecW#RZ_M_SH_|&fc!2({%&AtEV(s3Y#prV- z6o3GL=e_S&C%OKdTmNkHzuV8=*ungHJN&r`e^;FtDcNoYnBeO~_mC$*e(YOdzh=X) zQK+^+?2ILaESQ!cdxsL-BgzG{Pa6)oso<WjQ=F=iuBONiRDNryRjC1Gpr?h$ZA_%t zCyOp(##=VnKj~`UB<4%ef`EO&fN*A&BI${_O|BD!@<b9wPM0zWls4g(j))b`bkl|$ zFj7?1$=M-mLtAq|99Zp4OTwL(Zmsag0Y6uQdF=iu;~ubz4T^Vtqa_tlf3J0}VSnyw zCPalOcgX7&DRl?vp`ga!Dr&1X1Zn4ATp;5-czR_jT9GV8E4~5p^Jf#4Kbz`z>w|xr z%E8RW@I8TxvA(U1^-E)0#WKouF(3q8OFqEcfI^Dqft1$PFw~%i-D2q)1{j94NJ%~N zI*a6%Qn^)^U$<Q!Wtgp^aers(rh((mZjt-K9LZUs8Y14>Fk7jbUwx9?u%BpnND_f& zZ*iJovfD?}=MT?i4+9xr+vN==`1JYKSH?b6i$r-}_*fkQg-lunreLbNJ3GmBk+Z0C zUl8)%O32kw4#Ppb2(>SkJAU*{`kGlz)-m=MH@-VV6*^CRC^vkA#7v%Kmm<R+jaYZd zdac%{Myr#!t>(w+d#4BR(TZDWi_-qwjDp@xYZ!It19F8stAz}g2;;BGK4;AZ)@k^E z`<lvg#{p-KBCCEjAnLOL|C^5Uhu0C<n7s5FD`RU%eM<rpC;LA-j&Zb9X{P{!=#JmP z8r^DZ4lyY+I2RJmXaBrAGV@)z@*|3)<>DJ4Q&9z{qb3DlO&qE5)%f|Hz)AgmOpFh% z2V||&$~%Q4w9`(kREZxKrxT6Y_IlS9Eo&&%=mr2I%n$gWx3H{8u^$l>zf|c$wkksT zUyLR8BO%fDI_9!*hzLi#Q)_z6D;k6kvKg_y3N-o*2g2yU;X|iteB(p$)wPs)s0@I2 zwX$@5UDqVy0P?pXB-=9;kue3_wVn-O|NPKBKYt&e{C%hU(-1EQEdLlZ1_hyf2@u|{ zwXWiBgVGZ72!AR@7Jm%NiHZ~+Jq#c+yGFyWx`7e<P`lZUw4BEYrdCJV&Mp?fs!YI< zR!5dofmHUEE{aSgyot;RMKlNcr@H&<6VJLxUR%p6kN@13sc1PKv7r0R&*A@zr;EPj z`#*VdLj^HB^W=-+9fY#9cIe0I?(O7C(S?-7lLh;_1RbvD5*{7z<)5$cfrJhzE3g0D zWT?~ID(Z3iou8h~aGEchR5_NEGYd*#3KcOSHE`zWQIF&I<K}NbMY=ApsLDN?lyx52 z>t!5MfA+2aW*%}hbFwxvwl}vnebqya<y)+~1Yj0mZ}2}mQGR(taSxQ)TrXfcmE<*} zb)+Q`7TaDm+y~u9CQl;DIN|5vsSzto#k5Y1bKZw^9$`~dxY>}3G&H|aVTGo@#(%hA zVuVXVhbDD&ssjqz>Xrb>4K41u4!RP=0iL8P&nJvdR<cTe%Vq-FtDugEN+#V)EWR{+ zBsfhgzB6~jM2tGaLC$qaUSwuk?uTp2r5wh|DqpF-=Lx?<r`$c!9l$BwrBm}3T9()& zubqM=LEopzgLhiHr9-9L&<}rMrse2A-S5}esDB>DbuhI5&)M1+ul(my;GgHAUeY?+ z%Gem0o0uEhzg`YFWo0SugWQ>AK>z@J<NyHKKRo;2`TjGdJij>|YW%1i7eINmS?7*O zas40&e1uJ=wX2NsRba_r(8vtDIH}=>bXCj9QEF<##Q3w`<zuOp<1ox_%3oI<;Sam+ zi0saCVK5EHZv_nAl+F;!;eHiX1@dIR`dKRZ?am10y6<?x>e;PBKRMp>&SQ^GJj4Q? zKFqhp%h_9poe^!GJK|ZKW)XNwe9*QHd-fA@BjL#HrSlyG9>guX&HUaB@UdQKqK~nL zsUef+V1ag6xP6f%A7E)J+bt;a&UZTdE;%g*cLz|_7y{co-+xN(5c#Z-R6%JJGm!56 zMUc0fV{JD7<75|2CRMI4q!okBfkIA~S}MHZhIo{7<<c~c*id#ut^tbu4IB`w)w&zB zLA&WL6xR_xv1{b^W<s9QdQSo+w5*r>5ENe1J;#Zmvor=P#7?)4(!3CfMh#ltM;!1E zE+vA6qZ>-_juMm$oLj01*s0oS;l_e!_KJGyewXtC0c*HAU=jfHD3#zU*NM3WXhQs} z4sNS;j<>*&Le3h+&*zVkwMA-1_=6_R2}78;?S<DWT8bGFd?STe9EY>N|DZ27sK{UK zg1j-#{uxG8xN8FfB@)?<2`#nhG@jB`hD)>EWk8qw4X$FQu6UDBa&UJ%AO9%{%c5bW zqDyM#{4oj4pi(!UU+V0~I_{p;^KpiGAo(F8)s|z9X#dq#eGS(=^fN><w(Qk@M}vlh z*aopk6WWwfg#{u1p*wnMPo_+D;{96$z3&ny6UEHuMwV?B%E6m*0c|*u-zvf(Vtq?b z2(_2xDAs6T%gU?U3P@l)lj?)u&+ag^VDLQ7{We@cw;dnQ{6}<FtJK6LNZM;y)kJ&} zvzO8G1Of`r=>#Drbdgtzh7E%T12?Xcl2gV+R3^W#E1Z4#MtCpWRGww=mZmt8glNe) zstMLo4M9kixqHWWfJo8^`O;l{KSMeb)kXiYF2RM>BkP*4nNsjlIFXTUQnd#9L|aC% z)#}mOl)qz&2atb<SxFhbR1(!Q4-UP9xo{A3uexS)?M~gEB<>ZVNY37{C#)?1(;r-Z zb+zz>c<Mp~ynPOmr9K-wEJ2eo$9*F}>?pw!t^b7SJ@3PTg+k65`1HOC0JwMhqDk0H z%z(Wj^YD0wUG{{K9xwLL-{EN?OXJCt$&=kK>N0knHmhtIVCTd4jof6#osW6P)mp|> z?%Tv1Ll5@)H~EBb`Th4+#5+eHLLi<@&pudhDK~-75Do;7A@DXuOnOTSQ6qrXBSb<? zYtufI9_?_q1Rk_|Foq;_d`~PT@{mVW04}2*k6=29$oT|3k<S*bwXl^P5zqiIEr;y! z^d1#<LHd-(T_*YMlE;|LKCO#=Qm@HivDA3K)5tuxm^={D+4y7l-e#l;YlFN7(;BU1 z)Q}%5HtgH!eKd&C!;S`HmW1q>ed3^rW%*#OV0*ZdP&eM<Of~EqPA0s~uTH=RzEkS9 z2s(!7!zz+7*XkEUxNS~$>ftN5T-7UOk0$puY-zewNoWcF;x5t57n<ztmgRkcx_vC_ z4k48h;NXv4d=Gj!PMPUqL#?qen{RvDi7o4jD<Cuq@1r8xz1UZ*-+!sT=!23j<2uao z@dvMqWyQMq#_8){^v$mOCaHNTYFw4ymZBrO7tci)J`SX>43@A@i-YfLdW6cF*<52T zo<O7!x?y$?Vq%RziEyTe(EY7t3V)2Ra%fja;_imi8x88!OD?a4)w3Xig>~vP5^_z^ z>6Y7xigo$(oJ(mWYRxb07!0?--yAJwl33M&kx;bzq3)Z#4-G6)FyW5tnt<O?$xd@! z;kqRhLp)yCKjm=sNPr%2=T4pA)0#{01P21yb^=T%BDxTlY$#!ZAdM^tz9x0dp!O}~ z>D><-#D*#cQf=zkK@>gZvlbP#ndKkQQ-@3ke!?027(bRH57Dgpo=WgcON1*RP7q8Z zjx^{=P{LnvA;13nR6400uWhp-F<De|iw6I#f!T-4#mg^=@eyWS41)np99m2$R#WB` zp6rdmH=rZgsT+)VX%3-ZO{=9Or=*dz5}|UAy6{T*F|YKYry9#2S0(CZdlVs)bO2VF z6VW)rt+{UvkxoQ(_gK>EH8m?jGP76>)}rC*bPW|uBZ$#-Fo9F#FuDDaN*;~!cExbV zLO@X(cuO&&1qsA#w+Z4Psjm!q92S5sHSa#Z>;5j@95*Ax0#$BW@ng!V<=wJay39dW z-i0*x$EDOdNIe&6OZkD_Pux?H7xPmjK9$M^(Fvw2I)tR9P7;!ivwVbw(`}r9GKEOH z8@Sx@pFaiEc=qz(N!h*5Sp5&wnyD28Zqta8$OY85A=GF5cEr=_TQro+N`$Xb;uLAk z>b^50sA>yPg?cTwQ|P#mu*I*+!m%8B$0@UM-{?7R_G=yOO2O7SepYUK@-;jYlQbi( z`|>m(f(%9#(kE)<y*bKSz?gI8Vc!qO3q`vcN5~wTLgwQ@VNEc(Ri?Ia+*+%ksK|-z zWQ%^;kT^6k=O^r7rJ6!luaLDaR2A4#KQs!^HXiIo*8aL6h%K3u>j||^3;|6KAu=j4 zb&EAFiP||!9GkWs8YbZ9tLa;Ren@3Ap4~>dWCxN+IJGELXdMegsiHTY4`bvheyziO ze?3U=z76;mk)zYk5+?j3zlp~8=rR98ULjW}TdE`K_k-+{;>RE%P4OnFFGyyQ4Q?`X zdNPOC0Rs1rfyYZg4+>6GMMVWpL=_22VOsf4RAw@2T0cyH2!-Zz8A{A1+A1PquJDqu zn)LdPWQDUn^U-MWJ!xWFV^=A5*1d(D;NP5cOVqjZ$VO{kS`4OKVKkLKQK6?CsL-Mz zh4ZDp?f^D(yAfC%Aj%3@7PKR9->a4rs9}^Vsml3A->b%ncuhzl2l=t0x%qOzB;Gt^ z;^$~-1zx+=IE%a{x4m@LjnA{Z0tCzt_<vn~B6(irynGP;3|_6}p#TJb{0|6#0dPGA z3xwjG0m6y))!%v!VTYFkUgEFI{`JDt>#`}H%li90;pO_&>+;WP*{d?1%ZpRTBHw-v zKLW4+QvR=(tX`M@?w9iaxN`Lx<k$z}^9xAF@Sh+o3&#~N@xLqayNg+WfxH+a==UK1 zSquK>n$~OBV7nT_l4qFOkAK1%SRejT*VnMWp5cEDJNA4_?4P!KeWL$0R;R;aP~tPz zUv^aRJNd<q|Gof+0Qd{*#RshMUSs|FKKB}7=f~9_CE}&i8N7IcAMWWd2)}M)yhh0Q z4Z^EUjn`n6$w>1e&mirUDWNZ5U*i4^_Pec*zrbEvZ0dgo`|U=^YX*uAo_49v$W-+* zjx*2UP!*vv`*Zkr;{gD_s+NB-crj=O@vjDbtzo`Ko9=+Eed$)7`8a=cgRuJZUyS>! z()k)~`Zs8Q3OlcHE?t}Pg`aU|!MDR+?D|)u{#~ozsiS}4yx0}$Ir6tl{{FT9w_53I z8XvwVXbL>T#|`{h-EsIQ;+Obq8ow%*uW3B|7c~9{{qi*#N%<9!7n|gr{z-;0QFB)4 zUu1q&9AA?ec)rE?zuDw})E{5dA>pNKE_jCTem>#)G9o&=Y<vCNHovNRujyPqzrg-) zbpEaJy=EZqgwhoLj67!YCj+zD>8F1)_*E8r&4BHB(Enc<yj*epy-4<&410rv-b?HJ zMMlsr66z)X+Esp)re2fbr~Gfp{3TSq#s`5G?|Siu>ra0gqe8{7@Za9?tK{?=f9Jo( z|4V>+jejKpOZbBKwD2eX?t>E0zwv+7kzV7+QT^}r|E;R@n#LUaeE$n9G6>!uUdbtj zMfXn{ztd{|qVX~u)>FTx@uI4{F2BYI{Ev0U+u3r%mx1Z8b;sY${5yT;b@^+*l>b`o zd5y(GBjEeuLdKJ*MlV=@VgHQ<0r*uD`U~r25X7YUcU@j%{byD1tPs7%<p=F|`|*rt h&XDTy5+W5Gc>d|iZ=UD*XL<SgTMP*R+_AjG{tun|ju!v` diff --git a/overrides/mes/help/stormlord_help.tab b/overrides/mes/help/stormlord_help.tab index d771934..2ba8034 100644 --- a/overrides/mes/help/stormlord_help.tab +++ b/overrides/mes/help/stormlord_help.tab @@ -1,8 +1,10 @@ -TAG_STORMLORDS TAG_PRESTIGE_CLASSES Stormlords Stormlords often live as brigands, indulging their personal desires for wealth, food, luxury items, and wanton behavior as they crave random, spectacular acts of violence.Most Stormlords are cleric, druids, or cleric/sorcerers, although other class combinations, particulalry those including fighter or even barbarian are not unknown.Hit Die: d8Requirements:To qualify to become a Stormlord, a character must fulfill all the following criteria. Alignment: Chaotic or Neutral Evil or Chaotic Neutral. Feats: ~Great Fortitude~[TAG_GREAT_FORT], ~Weapon Focus~[TAG_WEAPON_FOCUS](any spear or javelin). Base Save Bonus: ~Fortitude~[TAG_FORTITUDE] +4 Spells: Able to cast 3rd-level divine spells.Omitted: Feat Endurance(not in the game) Patron: Talos Special: The character must have been hit by a bolt of lightning, whether a natural bolt or one created by magic, and survived.Base Attack and Base Save Bonuses: see ~table~[TAG_CLASS_FEATURES_STORMLORD_TABLES]Class Skills: TBD Skill Points at Each Level: 2 + Int modifierClass Features:[CMD_CHILDREN] -TAG_CLASS_FEATURES_STORMLORD_SPELLS_PER_DAY TAG_STORMLORDS Stormlord Spells per Day At each stormlord level, the character gains new spells per day (and spells known, if applicable) as if he had also gained a level in a divine spellcasting class to which he belonged before adding the prestige class level. He does not, however, gain any other benefit a character of that class would have gained (improved chance of turning or destroying undead, additional favored enemies, and so on). If the character had more than one divine spellcasting class before becoming a stormlord, the player must decide to which class to add each stormlord level for the purpose of determining spells per day and spells known. -TAG_CLASS_FEATURES_STORMLORD_GRANTED_PROFICIENCIES TAG_STORMLORDS Stormlord Weapon and Armor Proficiency Stormlords gain no weapon or armor proficiencies. -TAG_CLASS_FEATURES_STORMLORD_ENHANCED_JAVELINS TAG_STORMLORDS Stormlord Enhanced Javelins Any javelin thrown by a stormlord counts as a +1 magic weapon. This bonus increases at 6th level to +2 and at 10th level to +3. -TAG_CLASS_FEATURES_STORMLORD_RESISTANCE_TO_ELECTRICITY TAG_STORMLORDS Stormlord Resistance to Electricity As a stormlord gains levels in this prestige class, he becomes increasingly ~resistant~[TAG_SPECIAL_ABILITIES_RESISTANCE_TO_ENERGY] to electrical energy, starting at 1st level with resistance to electricity 5. This bonus increases at 4th and 7th level by an additional 5. -TAG_CLASS_FEATURES_STORMLORD_SHOCK_WEAPONS TAG_STORMLORDS Stormlord Shock Weapons Any spear or javelin used by a stormlord of 2nd level or higher is treated as a shock weapon (dealing an extra 1d6 points of electricity damage). The weapon loses this ability when leaving the hand of the stormlord. For a stormlord of 8th level or higher, any spear or javelin he uses is instead treated as a shocking burst weapon. -TAG_CLASS_FEATURES_STORMLORD_THUNDERING_WEAPONS TAG_STORMLORDS Stormlords Thundering Weapons For a stormlord of 5th level or higher, any spear or javelin he uses is treated as a thundering weapon. The weapon loses this ability when leaving the hand of the stormlord. This effect stacks with that of the stormlord's shock weapon ability. -TAG_CLASS_FEATURES_STORMLORD_IMMUNITY_TO_ELECTRICITY_TAG_STORMLORDS Stormlords Immunity to Electricity At 9th level, a stormlord gains immunity to electricity. (Not yet implemented!) +TAG_STORMLORDS TAG_PRESTIGE_CLASSES Stormlords Stormlords often live as brigands, indulging their personal desires for wealth, food, luxury items, and wanton behavior as they crave random, spectacular acts of violence.Most Stormlords are cleric, druids, or cleric/sorcerers, although other class combinations, particulalry those including fighter or even barbarian are not unknown.Hit Die: d8Requirements:To qualify to become a Stormlord, a character must fulfill all the following criteria. Alignment: Chaotic or Neutral Evil or Chaotic Neutral. Feats: ~Great Fortitude~[TAG_GREAT_FORT], ~Weapon Focus~[TAG_WEAPON_FOCUS](any spear or javelin). Base Save Bonus: ~Fortitude~[TAG_FORTITUDE] +4 Spells: Able to cast 3rd-level divine spells.Omitted: Feat Endurance(not in the game) Patron: Talos Special: The character must have been hit by a bolt of lightning, whether a natural bolt or one created by magic, and survived.Base Attack and Base Save Bonuses: see ~table~[TAG_CLASS_FEATURES_STORMLORD_TABLES]Class Skills: ~Concentration(Con)~[TAG_CONCENTRATION], Disguise(Cha), ~Gather Information(Cha)~[TAG_GATHER_INFORMATION], ~Intimidate(Cha)~[TAG_INTIMIDATE], Knowledge (nature)(Int), Knowledge (religion)(Int), ~Survival(Wis)~[TAG_SURVIVAL], Swim(Str)Skill Points at Each Level: 2 + Int modifierClass Features:[CMD_CHILDREN] +TAG_CLASS_FEATURES_STORMLORD_TABLES TAG_STORMLORDS Stormlord Base Attack & Base Save Bonuses Level ~BAB~[TAG_LEVEL_BONUSES] ~Fort.~[TAG_FORTITUDE] ~Reflex~[TAG_REFLEX] ~Will~[TAG_WILL] 1 +0 +2 +0 +2 2 +1 +3 +0 +3 3 +2 +3 +1 +3 4 +3 +3 +1 +3 5 +3 +4 +1 +4 6 +4 +5 +2 +5 7 +5 +5 +2 +5 8 +6 +6 +2 +6 9 +6 +6 +3 +6 10 +7 +7 +3 +7 +TAG_CLASS_FEATURES_STORMLORD_SPELLS_PER_DAY TAG_STORMLORDS Stormlord Spells per Day At each stormlord level, the character gains new spells per day (and spells known, if applicable) as if he had also gained a level in a divine spellcasting class to which he belonged before adding the prestige class level. He does not, however, gain any other benefit a character of that class would have gained (improved chance of turning or destroying undead, additional favored enemies, and so on). If the character had more than one divine spellcasting class before becoming a stormlord, the player must decide to which class to add each stormlord level for the purpose of determining spells per day and spells known. +TAG_CLASS_FEATURES_STORMLORD_GRANTED_PROFICIENCIES TAG_STORMLORDS Stormlord Weapon and Armor Proficiency Stormlords gain no weapon or armor proficiencies. +TAG_CLASS_FEATURES_STORMLORD_ENHANCED_JAVELINS TAG_STORMLORDS Stormlord Enhanced Javelins Any javelin thrown by a stormlord counts as a +1 magic weapon. This bonus increases at 6th level to +2 and at 10th level to +3. +TAG_CLASS_FEATURES_STORMLORD_RESISTANCE_TO_ELECTRICITY TAG_STORMLORDS Stormlord Resistance to Electricity As a stormlord gains levels in this prestige class, he becomes increasingly ~resistant~[TAG_SPECIAL_ABILITIES_RESISTANCE_TO_ENERGY] to electrical energy, starting at 1st level with resistance to electricity 5. This bonus increases at 4th and 7th level by an additional 5. +TAG_CLASS_FEATURES_STORMLORD_SHOCK_WEAPONS TAG_STORMLORDS Stormlord Shock Weapons Any spear or javelin used by a stormlord of 2nd level or higher is treated as a shock weapon (dealing an extra 1d6 points of electricity damage). The weapon loses this ability when leaving the hand of the stormlord. For a stormlord of 8th level or higher, any spear or javelin he uses is instead treated as a shocking burst weapon. +TAG_CLASS_FEATURES_STORMLORD_THUNDERING_WEAPONS TAG_STORMLORDS Stormlords Thundering Weapons For a stormlord of 5th level or higher, any spear or javelin he uses is treated as a thundering weapon. The weapon loses this ability when leaving the hand of the stormlord. This effect stacks with that of the stormlord's shock weapon ability. +TAG_CLASS_FEATURES_STORMLORD_IMMUNITY_TO_ELECTRICITY_TAG_STORMLORDS Stormlords Immunity to Electricity At 9th level, a stormlord gains immunity to electricity. +TAG_CLASS_FEATURES_STORMLORD_STORM_OF_ELEMENTAL_FURY TAG_STORMLORDS Stormlords Storm of Elemental Fury At 10th level, a stormlord can summon a storm of great magnitude and power. Once per day, a stormlord can use storm of elemental fury as if he were a 17th-level cleric.Deactivated until Spell Compendium is merged to temple+ diff --git a/overrides/mes/stat_ext.mes b/overrides/mes/stat_ext.mes index 217c78c..acde9dd 100644 --- a/overrides/mes/stat_ext.mes +++ b/overrides/mes/stat_ext.mes @@ -65,6 +65,9 @@ // {82}{Fochlucan Lyrist} +{83}{Marshal} +{84}{Hexblade} + {300}{Psi Points} // max {301}{Psi Points} // cur @@ -86,7 +89,7 @@ {1031}{Sdwd} {1032}{Thmg} -{1033}{Wrlk} +{1033}{Wlk} {1034}{Fvrd} {1035}{} {1036}{} @@ -137,6 +140,7 @@ {1080}{Rkvn} {1081}{Ssnj} {1082}{Foch} +{1083}{Mrshl} @@ -321,6 +325,7 @@ Alignment: Neutral good, neutral, chaotic neutral, or neutral evil. Spells: Casts 1st-level arcane and divine spells. Special: Bardic knowledge, Speak Language (Druidic) and evasion abilities. } +{13076}Marshal{Sometimes it is not enough to be a conquering warrior, a champion of all that's right, an experienced sellsword, or an elite foot soldier. Sometimes the circumstances require a solid commander of soldiers and situations. Sometimes the circumstances demand a marshal.} // Cannot Pick Class Short Help Goes in the range of 20007+ {20007} Arcane Archer{Arcane Archer requirements: diff --git a/overrides/rules/d20_actions/action03801_stormlord_storm_sla.py b/overrides/rules/d20_actions/action03801_stormlord_storm_sla.py new file mode 100644 index 0000000..e7914e3 --- /dev/null +++ b/overrides/rules/d20_actions/action03801_stormlord_storm_sla.py @@ -0,0 +1,27 @@ +from toee import * +import tpactions + + +def GetActionName(): + return "Stormlord Storm SLA" + + +def GetActionDefinitionFlags(): + return D20ADF_MagicEffectTargeting | D20ADF_Breaks_Concentration | D20ADF_QueryForAoO + + +def GetTargetingClassification(): + return D20TC_CastSpell + + +def GetActionCostType(): + return D20ACT_Full_Round_Action + + +def AddToSequence(d20action, action_seq, tb_status): + action_seq.add_action(d20action) + return AEC_OK + +def ModifyPicker( picker_args ): + picker_args.set_mode_target_flag(tpactions.ModeTarget.Area) #PickOrigin + return 1 diff --git a/overrides/scr/tpModifiers/stormlord.py b/overrides/scr/tpModifiers/stormlord.py index 8421f74..aaeae13 100644 --- a/overrides/scr/tpModifiers/stormlord.py +++ b/overrides/scr/tpModifiers/stormlord.py @@ -2,6 +2,7 @@ from toee import * import tpdp import char_class_utils +import tpactions ################################################### @@ -15,8 +16,13 @@ def GetSpellCasterConditionName(): classEnum = stat_level_stormlord classSpecModule = __import__('class038_stormlord') + ################################################### +########## Python Action ID's ########## +pythonActionStormId = 3801 +######################################## + #### standard callbacks - BAB and Save values def OnGetToHitBonusBase(attachee, args, evt_obj): @@ -46,12 +52,14 @@ def OnGetSaveThrowWill(attachee, args, evt_obj): classSpecObj.AddHook(ET_OnSaveThrowLevel, EK_SAVE_REFLEX, OnGetSaveThrowReflex, ()) classSpecObj.AddHook(ET_OnSaveThrowLevel, EK_SAVE_WILL, OnGetSaveThrowWill, ()) -## Stormlord Feats +#### Stormlord Feats #### +## Define Stormlord Weapons; list can be extended if ever necessary ## def stormlordWeapons(): weaponList = [wt_javelin, wt_longspear, wt_shortspear, wt_spear] return weaponList +## Enhanced Javelins ## def featEnhancedJavelinsToHit(attachee, args, evt_obj): usedWeapon = evt_obj.attack_packet.get_weapon_used() if usedWeapon.obj_get_int(obj_f_weapon_type) == wt_javelin: @@ -86,6 +94,7 @@ def featEnhancedJavelinsDamage(attachee, args, evt_obj): enhancedJavelins.AddHook(ET_OnToHitBonus2, EK_NONE, featEnhancedJavelinsToHit, ()) enhancedJavelins.AddHook(ET_OnDealingDamage, EK_NONE, featEnhancedJavelinsDamage, ()) +## Resistance to Electricity ## def featResistanceToElectricity(attachee, args, evt_obj): classLevel = attachee.stat_level_get(classEnum) if classLevel >= 9: @@ -103,6 +112,8 @@ def featResistanceToElectricity(attachee, args, evt_obj): electricityResistance.MapToFeat("Stormlord Resistance to Electricity") electricityResistance.AddHook(ET_OnTakingDamage , EK_NONE, featResistanceToElectricity, ()) +## Shock Weapon ## +## Should not stack with existing shock property on weapon but can't be queried at the moment ## def featShockWeapon(attachee, args, evt_obj): usedWeapon = evt_obj.attack_packet.get_weapon_used() weaponList = stormlordWeapons() @@ -118,7 +129,6 @@ def featShockWeapon(attachee, args, evt_obj): if critMultiplier > 3: #unsure if needed; D20SRD description ends at x4 critMultiplier = 3 bonusDiceBurst.number = critMultiplier - print "bonusDiceBurst: {}".format(bonusDiceBurst) evt_obj.damage_packet.add_dice(bonusDiceBurst, D20DT_ELECTRICITY, 100) #ID 100 in damage.mes is Weapon return 0 @@ -126,18 +136,17 @@ def featShockWeapon(attachee, args, evt_obj): shockWeapon.MapToFeat("Stormlord Shock Weapon") shockWeapon.AddHook(ET_OnDealingDamage, EK_NONE, featShockWeapon, ()) +## Thundering Weapon ## +## Should not stack with existing thundering property on weapon but can't be queried at the moment ## def featThunderingWeaponDamage(attachee, args, evt_obj): usedWeapon = evt_obj.attack_packet.get_weapon_used() weaponList = stormlordWeapons() target = evt_obj.attack_packet.target if not usedWeapon.obj_get_int(obj_f_weapon_type) in weaponList: return 0 - print "passed weapon test" if evt_obj.attack_packet.get_flags() & D20CAF_CRITICAL: - print "passed crit flag" bonusDice = dice_new('1d8') critMultiplier = evt_obj.damage_packet.critical_multiplier - print "critMultiplier: {}".format(critMultiplier) if critMultiplier > 3: #unsure if needed; D20SRD description ends at x4 critMultiplier = 3 bonusDice.number = critMultiplier @@ -155,6 +164,7 @@ def featThunderingWeaponDamage(attachee, args, evt_obj): thunderingWeapon.MapToFeat("Stormlord Thundering Weapon") thunderingWeapon.AddHook(ET_OnDealingDamage, EK_NONE, featThunderingWeaponDamage, ()) +## Immunity to Electricity ## def featImmunityToElectricity(attachee, args, evt_obj): evt_obj.damage_packet.add_mod_factor(0.0, D20DT_ELECTRICITY, 132) #ID 132 in damage.mes is Immunity return 0 @@ -163,6 +173,31 @@ def featImmunityToElectricity(attachee, args, evt_obj): electricityImmunity.MapToFeat("Stormlord Immunity to Electricity") electricityImmunity.AddHook(ET_OnTakingDamage , EK_NONE, featImmunityToElectricity, ()) + +## Storm of Elemental Fury ## +## Deactivated until Storm is merged into temple+ ## +#def radialStormOfElementalFury(attachee, args, evt_obj): +# stormSpellStore = PySpellStore(spell_storm_of_elemental_fury, 137, 7) +# stormSlaId = tpdp.RadialMenuEntryPythonAction(stormSpellStore, D20A_PYTHON_ACTION, pythonActionStormId, 1171, "TAG_CLASS_FEATURES_MARSHAL_STORM_OF_ELEMENTAL_FURY") +# stormSlaId.add_child_to_standard(attachee, tpdp.RadialMenuStandardNode.Class) +# return 0 + +def pythonActionPerformStorm(attachee, args, evt_obj): + currentSequence = tpactions.get_cur_seq() + spellPacket = currentSequence.spell_packet + newSpellId = tpactions.get_new_spell_id() + #evt_obj.d20a.spell_id = newSpellId + spellPacket.caster_level = 17 #set caster level manually, SLA is cast as a level 17 cleric + tpactions.register_spell_cast(spellPacket, newSpellId) + tpactions.trigger_spell_effect(evt_obj.d20a.spell_id) + return 0 + +#stormlordSLA = PythonModifier("Stormlord Storm of Elemental Fury SLA", 0) +#stormlordSLA.MapToFeat("Stormlord Storm of Elemental Fury") +#stormlordSLA.AddHook(ET_OnBuildRadialMenuEntry , EK_NONE, radialStormOfElementalFury, ()) +#stormlordSLA.AddHook(ET_OnD20PythonActionPerform, pythonActionStormId, pythonActionPerformStorm, ()) + + ##### Spell casting # configure the spell casting condition to hold the highest Divine classs diff --git a/readme.txt b/readme.txt index 5c0db37..7b12c70 100644 --- a/readme.txt +++ b/readme.txt @@ -1,6 +1,11 @@ Stormlord Prestige Class for ToEE Temple+ required -Work in Progress +Fully working +Ingame help included -What is working? +What's currently missing? +Storm Walk not implemented +Storm of Elemental Fury deactivated until the spell is merged to temple+ + +Storm Ride is not implemented as there is no fly spell in ToEE \ No newline at end of file