From bf7c5cbbc023430cf5bf00ed9a6960c8cd44813b Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Sat, 11 Nov 2023 11:53:59 -0500 Subject: [PATCH] Updated beholder rays for PRC's Immunity to Petrification Updated beholder rays for PRC's Immunity to Petrification --- _module/ncs/_inc_color_text_.ncs | Bin 319 -> 0 bytes _module/ncs/aps_include.ncs | Bin 23 -> 0 bytes _module/ncs/btlr__inc.ncs | Bin 503 -> 0 bytes _module/ncs/cheat_config.ncs | Bin 23 -> 0 bytes _module/ncs/clickforxp.ncs | Bin 102 -> 86 bytes _module/ncs/dm_chat_inc.ncs | Bin 145 -> 0 bytes _module/ncs/fky_chat_config.ncs | Bin 23 -> 0 bytes _module/ncs/fky_chat_dmfi.ncs | Bin 23 -> 0 bytes _module/ncs/fky_chat_fr_lang.ncs | Bin 23 -> 0 bytes _module/ncs/fky_chat_inc.ncs | Bin 23 -> 0 bytes _module/ncs/fky_chat_misc.ncs | Bin 23 -> 0 bytes _module/ncs/fky_chat_vfx.ncs | Bin 23 -> 0 bytes _module/ncs/hgll_classft_inc.ncs | Bin 23 -> 0 bytes _module/ncs/hgll_featreq_inc.ncs | Bin 23 -> 0 bytes _module/ncs/hgll_func_inc.ncs | Bin 85 -> 0 bytes _module/ncs/hgll_leto_inc.ncs | Bin 23 -> 0 bytes _module/ncs/hgll_struct_stat.ncs | Bin 35 -> 0 bytes _module/ncs/inc_emotewand.ncs | Bin 64 -> 0 bytes _module/ncs/rr_debug.ncs | Bin 23 -> 0 bytes _module/ncs/rr_loops.ncs | Bin 23 -> 0 bytes _module/ncs/rr_tagbased.ncs | Bin 23 -> 0 bytes _module/ncs/sf_socket_inc.ncs | Bin 23 -> 0 bytes _module/ncs/sha_disallo_devc.ncs | Bin 23 -> 0 bytes _module/ncs/tlr_include.ncs | Bin 305 -> 0 bytes _module/ncs/x2_s1_beholdray.ncs | Bin 0 -> 7238 bytes _module/ncs/xp_inc.ncs | Bin 83 -> 0 bytes _module/ncs/zdlg_include_i.ncs | Bin 129 -> 0 bytes _module/ncs/zep_inc_craft.ncs | Bin 35 -> 0 bytes _module/nss/x2_s1_beholdray.nss | 218 +++++++++++++++++++++++++++++++ 29 files changed, 218 insertions(+) delete mode 100644 _module/ncs/_inc_color_text_.ncs delete mode 100644 _module/ncs/aps_include.ncs delete mode 100644 _module/ncs/btlr__inc.ncs delete mode 100644 _module/ncs/cheat_config.ncs delete mode 100644 _module/ncs/dm_chat_inc.ncs delete mode 100644 _module/ncs/fky_chat_config.ncs delete mode 100644 _module/ncs/fky_chat_dmfi.ncs delete mode 100644 _module/ncs/fky_chat_fr_lang.ncs delete mode 100644 _module/ncs/fky_chat_inc.ncs delete mode 100644 _module/ncs/fky_chat_misc.ncs delete mode 100644 _module/ncs/fky_chat_vfx.ncs delete mode 100644 _module/ncs/hgll_classft_inc.ncs delete mode 100644 _module/ncs/hgll_featreq_inc.ncs delete mode 100644 _module/ncs/hgll_func_inc.ncs delete mode 100644 _module/ncs/hgll_leto_inc.ncs delete mode 100644 _module/ncs/hgll_struct_stat.ncs delete mode 100644 _module/ncs/inc_emotewand.ncs delete mode 100644 _module/ncs/rr_debug.ncs delete mode 100644 _module/ncs/rr_loops.ncs delete mode 100644 _module/ncs/rr_tagbased.ncs delete mode 100644 _module/ncs/sf_socket_inc.ncs delete mode 100644 _module/ncs/sha_disallo_devc.ncs delete mode 100644 _module/ncs/tlr_include.ncs create mode 100644 _module/ncs/x2_s1_beholdray.ncs delete mode 100644 _module/ncs/xp_inc.ncs delete mode 100644 _module/ncs/zdlg_include_i.ncs delete mode 100644 _module/ncs/zep_inc_craft.ncs create mode 100644 _module/nss/x2_s1_beholdray.nss diff --git a/_module/ncs/_inc_color_text_.ncs b/_module/ncs/_inc_color_text_.ncs deleted file mode 100644 index 891878d18bf7a8453f6b75ccaad4d93fb73995a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmeZs4ps;=)H85mU|_VDV*mmU1qLQo7FI?k1rmUwqOyvrn!1LjmbQ+rp1y&hk+F%X znYo3fm9>qnoxOvjle3Gfo4bdnm$#3vpMOALP;f|SSa?KaRCH`yd_rPUa!P7idPZhe zc1~_yenDYTaY<=ec|~PabxmzuLsN50Yg>CqXIFPm-^59ir%atTea6gLv**m4zi`pw zB}-L?y_wGM<_~`MIr_Y|hc=_t}o44=YfBf|M%hzw;fBgLQ`_JEh|Nb#D d{{R2~2Lp>V1Cais#Q+W;0c{2dUx7h^0RWW(jl2K= diff --git a/_module/ncs/aps_include.ncs b/_module/ncs/aps_include.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/btlr__inc.ncs b/_module/ncs/btlr__inc.ncs deleted file mode 100644 index 8a63aae6006b332251f7b7929b05bfc0647925b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmeZs4ps;=)H85mU|{?%#{dKz3JgrlEX+VY10&=A|Nnn5ut+li=|A{H8BSnRi$gR8 wt6C$hqSLU7VpmIwD6Pz8!s=eEAqf=36281z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/clickforxp.ncs b/_module/ncs/clickforxp.ncs index e3667adf1178ad9cdf532e2865b9519913a2c214..db41db8b075c8b8ad15648b90e7cb70d9a726e0f 100644 GIT binary patch delta 32 lcmYcblk#&8RtPiHGjL*HUyRtyuhYye&O1lIrn delta 48 zcmWGb)ADl;RtPiHGjL*HU`Ue#5)2#)3`}gS49r#xjEw*P|Np_jBFzA#|4fv!0RZiO B4E_KB diff --git a/_module/ncs/dm_chat_inc.ncs b/_module/ncs/dm_chat_inc.ncs deleted file mode 100644 index ab9e65246f50bea488cf78da6755fb08e40724f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145 zcmeZs4ps;=)H85mU|^Ui2P7Cc6c|{TK@2d-$gLm`;^;$oEUXOt0j@#8p1~omej)MB l9*!Zb3=E$bfP^`-EJz_60nN@}P4UkDej!2rKIobi7yy9K5Jvz2 diff --git a/_module/ncs/fky_chat_config.ncs b/_module/ncs/fky_chat_config.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/fky_chat_dmfi.ncs b/_module/ncs/fky_chat_dmfi.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/fky_chat_fr_lang.ncs b/_module/ncs/fky_chat_fr_lang.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/fky_chat_inc.ncs b/_module/ncs/fky_chat_inc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/fky_chat_misc.ncs b/_module/ncs/fky_chat_misc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/fky_chat_vfx.ncs b/_module/ncs/fky_chat_vfx.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/hgll_classft_inc.ncs b/_module/ncs/hgll_classft_inc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/hgll_featreq_inc.ncs b/_module/ncs/hgll_featreq_inc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/hgll_func_inc.ncs b/_module/ncs/hgll_func_inc.ncs deleted file mode 100644 index 52b6eee9dbfb4b7930d04cc1108dd5f2cec8741c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85 zcmeZs4ps;=)H85mU|1z3JgrlEX*J#Bjf-7|9>#BNHYNGKTuIdR8cJkur2{@ M2C%9h3JeMi0AT1B(EtDd diff --git a/_module/ncs/hgll_leto_inc.ncs b/_module/ncs/hgll_leto_inc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/hgll_struct_stat.ncs b/_module/ncs/hgll_struct_stat.ncs deleted file mode 100644 index 5bf4aef3483e95986c467fd77c95a29de59587a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 kcmeZs4ps;=)H85mU|>*|0}>1z3Jh8dU>27)g8~o&08#e?QUCw| diff --git a/_module/ncs/inc_emotewand.ncs b/_module/ncs/inc_emotewand.ncs deleted file mode 100644 index 752cf5860c53255272ecf60ff1881ae24f9fea3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 zcmeZs4ps;=)H85mU|?{N0}>1z3JgqatPBkA7#JD<|NsAkfkm1DNdIAC)?xrF5YT1- Li~LYvP+$N6%wrIg diff --git a/_module/ncs/rr_debug.ncs b/_module/ncs/rr_debug.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/rr_loops.ncs b/_module/ncs/rr_loops.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/rr_tagbased.ncs b/_module/ncs/rr_tagbased.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/sf_socket_inc.ncs b/_module/ncs/sf_socket_inc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/sha_disallo_devc.ncs b/_module/ncs/sha_disallo_devc.ncs deleted file mode 100644 index ecb1c72d2b249d3cdcff5ed38020576abd2280f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 ccmeZs4ps;=)H85mU|1z3JeMi04)0gsQ>@~ diff --git a/_module/ncs/tlr_include.ncs b/_module/ncs/tlr_include.ncs deleted file mode 100644 index a82e80eadc6ff5de67efa9c7d6c802f64c7327ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeZs4ps;=)H85mU|=+qV*mmU1qLQ&7G@xepONwZ|NlQ2Sfm+%^dG3GJXTQ^tfD?x tMI*6_YG4%=#VTrqRa6?Qs03C~A*`Y-sG?d7;1CheW&nr41qB8L1^{$(YC-@2 diff --git a/_module/ncs/x2_s1_beholdray.ncs b/_module/ncs/x2_s1_beholdray.ncs new file mode 100644 index 0000000000000000000000000000000000000000..6d49584be51f26e039f06bb6691b139745c2ea78 GIT binary patch literal 7238 zcmcIpZ)jCz7=Pb$&fOok+?vbGG;f=NPOZ%nbyRL{SGQVswOzF|I?iosvE8kqG$Wys zqCzOl!Vh90CiX@8AVMZ&QfLqap|Na)l!&C%jC~j(t>=B7=e;}6@m?>ksd&ykzxVn7 z?|siPUe_93Q}saQ3Z-VOyidWOyr}XbYHIRjzrC%yx9x?^Nxx&G-_g0LZClq?SSbmu z^!HX(DC8`jukKZ&qoX5H6;W!$Tpm=8>$si^a*G_#DW<=!2C4z&;r+Vu%(|Ob5S?T6 z|0vLWMt>6MBu38*w1ClH1zO1HZvri1^pZe}8T~_`cQX2?KuZ`M5a<*}Pt7#GoIuaD zW`8j{*Ky?luDEGd-pM^QS+3j}Y|LgKVqG;4|9 zf);JGN}kXNoE^n^HzsNYI;(Obw+g+jaSC3R)B7(RC3BIvPPiLpBR&!!WFy!iJmz$!XGc z)sm1FBse=pNOFOE&@&c$eem-wQ&@e}B&jOOW+a;Dg-mS&L19zV*a0>M?C`vrlQ4da zC)QBNd@6=ysQcZx3|c)NgMeowWe;@=S_k!KYBukZiJZF>$o7R=Z(KI+8jp>hSDQU( z&YphqII zp5%B(=NEB^EXU|%;+T#cqmsiZrcm()3|^32-kA4eI$^ucbcXnr%1B61bG90U z(g2oFC61~i$&Mny6ecSBSrme&K80O^jkiGVJwKr2-Ee-;cx6NL4J&nBp zjnFuP90r=-W>itAbp%bcJ1(4v@EJ~1b4)6y;gjY0x*(c+v-PFHbv$Tja(rB!YSm$v0~yE10TB5(KJQD4l9yE z#czEb0)=d15yu4z*+O)wK%tWntrMun=t2zB8eD^_f{bksotKedF%rO-1+Pv+STI&J zuZbM|p;kn4-Vnj9RWLIlU|FxBx%vYba+DevS`?MT9l+C6)?lj50Ge_NNo+gVx3<>< z0f)LknpDYyut6_XdJE9*`9_5iyniQ&ryL;T8Kd8+h(Hy2HI?|zn(NRy79I?mKm_LV zJOvcF!|KiXg3edUU&zr(OK6UZgCt`BEx5`D6y8woM=n^h+>oK=_zLPB4|z9*tObGj znr8)yR5=b>ei5%jyabg9{?>AZqI5_B-eJjz(l1dFxw{40%jl~D-N5LkAgYct`jkK) zW>mbrs>O`X7PK&#=RkeAlLfkrP-jG-k1#4e*r-Pt{a(<<7(FJ?dPYAH=yQy|E6`^d z-73)aj6N^WX^b`mQQgDnB7ycXIwOdx&5Y&QeO9i@>Q1!1szhv~XK<#He@nKMZ z$h0SdwEAO44+-=DqvA`AKFH`Rg7#BJI|O=!Q8CK(IYz}O*XJ266B2%5l-?|YLm6fr zjU>7vmzjU|o7-nJzw9m_WQA6jOg#9lW}Lcr;S=qo2Q?pnNJ_c`8YCGfC5&m5J&ZG# zw&)Sk7Mwk*0yY|}&-A#W%^5s^5oQ*}?pjLI4X^ZCj)plGNCr4W1ZMx%f6;Fn5qrnI zecesgw(~gvY(UyWAq!_&NjQb=Lt$CaQvG6TF5|~F#Sufb^HA&#jsqACuI4x>$WC7b zb<%7Mf1C6CVe;0rP()4Yuk^cnI<|FnRuzsx5$S8TH(r>D5P54j3CD!66YFF7Hg6wMY)&@P* zae;oa(WX;ChywF)5(TDKY)~<^)8*QYa&?t38l+(2Xo}kCLv7pWdwy;Gnz6V8yu`(b zz$c1;^eh~xGjMD|oy$_TMpP+;t?|U~;3>+( zkp~k2B;@;z@x1z3JgrlEX+WbBqQVh|Nnn5ut+li=|51>6lRd<7X}t_ M1yp&ksvimr0AXSq*Z=?k diff --git a/_module/ncs/zdlg_include_i.ncs b/_module/ncs/zdlg_include_i.ncs deleted file mode 100644 index 199203beb2ff2487c68af249ccf34cb99e5339cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeZs4ps;=)H85mU|?vJ0}>1z3JgrFEUXL+jEw*P|Np_jBFzA#|1hz!umNQm(L|Y9 dm_eGbiZV(vql#-WfNc=aW&oS{L4iSm0RU2XC{h3b diff --git a/_module/ncs/zep_inc_craft.ncs b/_module/ncs/zep_inc_craft.ncs deleted file mode 100644 index 5bf4aef3483e95986c467fd77c95a29de59587a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 kcmeZs4ps;=)H85mU|>*|0}>1z3Jh8dU>27)g8~o&08#e?QUCw| diff --git a/_module/nss/x2_s1_beholdray.nss b/_module/nss/x2_s1_beholdray.nss new file mode 100644 index 0000000..bfc0c90 --- /dev/null +++ b/_module/nss/x2_s1_beholdray.nss @@ -0,0 +1,218 @@ +//:://///////////////////////////////////////////// +//:: Beholder Ray Attacks +//:: x2_s2_beholdray +//:: Copyright (c) 2003 Bioware Corp. +//::////////////////////////////////////////////// +/* + Implementation for the new version of the + beholder rays, using projectiles instead of + rays +*/ +//::////////////////////////////////////////////// +//:: Created By: Georg Zoeller +//:: Created On: 2003-09-16 +//::////////////////////////////////////////////// + + +#include "x0_i0_spells" + + +void DoBeholderPetrify(int nDuration,object oSource, object oTarget, int nSpellID); + +void main() +{ + + int nSpell = GetSpellId(); + object oTarget = GetSpellTargetObject(); + int nSave, bSave; + int nSaveDC = 15; + float fDelay; + effect e1, eLink, eVis, eDur; + + + switch (nSpell) + { + case 776 : + nSave = SAVING_THROW_FORT; //BEHOLDER_RAY_DEATH + break; + + case 777: + nSave = SAVING_THROW_WILL; //BEHOLDER_RAY_TK + break; + + case 778 : //BEHOLDER_RAY_PETRI + nSave = SAVING_THROW_FORT; + break; + + case 779: // BEHOLDER_RAY_CHARM + nSave = SAVING_THROW_WILL; + break; + + case 780: //BEHOLDER_RAY_SLOW + nSave = SAVING_THROW_WILL; + break; + + case 783: + nSave = SAVING_THROW_FORT; //BEHOLDER_RAY_WOUND + break; + + case 784: // BEHOLDER_RAY_FEAR + nSave = SAVING_THROW_WILL; + break; + + case 785: + case 786: + case 787: + } + + SignalEvent(oTarget,EventSpellCastAt(OBJECT_SELF,GetSpellId(),TRUE)); + fDelay = 0.0f; //old -- GetSpellEffectDelay(GetLocation(oTarget),OBJECT_SELF); + if (nSave == SAVING_THROW_WILL) + { + bSave = MySavingThrow(SAVING_THROW_WILL,oTarget, nSaveDC,SAVING_THROW_TYPE_ALL,OBJECT_SELF,fDelay) >0; + } + else if (nSave == SAVING_THROW_FORT) + { + bSave = MySavingThrow(SAVING_THROW_FORT,oTarget, nSaveDC,SAVING_THROW_TYPE_ALL,OBJECT_SELF,fDelay) >0; + } + + if (!bSave) + { + + switch (nSpell) + { + case 776: e1 = EffectDeath(TRUE); + eVis = EffectVisualEffect(VFX_IMP_DEATH); + eLink = EffectLinkEffects(e1,eVis); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eLink,oTarget); + break; + + case 777: e1 = ExtraordinaryEffect(EffectKnockdown()); + eVis = EffectVisualEffect(VFX_IMP_STUN); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,6.0f); + break; + + // Petrify for one round per SaveDC + case 778: eVis = EffectVisualEffect(VFX_IMP_POLYMORPH); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + DoBeholderPetrify(nSaveDC,OBJECT_SELF,oTarget,GetSpellId()); + break; + + + case 779: e1 = EffectCharmed(); + eVis = EffectVisualEffect(VFX_IMP_CHARM); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,24.0f); + break; + + + case 780: e1 = EffectSlow(); + eVis = EffectVisualEffect(VFX_IMP_SLOW); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,RoundsToSeconds(6)); + break; + + case 783: e1 = EffectDamage(d8(2)+10); + eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT,e1,oTarget); + break; + + + case 784: + e1 = EffectFrightened(); + eVis = EffectVisualEffect(VFX_IMP_FEAR_S); + eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR); + e1 = EffectLinkEffects(eDur,e1); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,RoundsToSeconds(1+d4())); + break; + + + } + + } + else + { + switch (nSpell) + { + case 776: e1 = EffectDamage(d6(3)+13); + eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); + eLink = EffectLinkEffects(e1,eVis); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eLink,oTarget); + } + } +} + + + +void DoBeholderPetrify(int nDuration,object oSource, object oTarget, int nSpellID) +{ + + if(!GetIsReactionTypeFriendly(oTarget) && !GetIsDead(oTarget)) + { + // * exit if creature is immune to petrification + if (spellsIsImmuneToPetrification(oTarget) == TRUE || GetHasFeat(4643)) //:: PRC's Immunity to Petrification + { + return; + } + float fDifficulty = 0.0; + int bIsPC = GetIsPC(oTarget); + int bShowPopup = FALSE; + + // * calculate Duration based on difficulty settings + int nGameDiff = GetGameDifficulty(); + switch (nGameDiff) + { + case GAME_DIFFICULTY_VERY_EASY: + case GAME_DIFFICULTY_EASY: + case GAME_DIFFICULTY_NORMAL: + fDifficulty = RoundsToSeconds(nDuration); // One Round per hit-die or caster level + break; + case GAME_DIFFICULTY_CORE_RULES: + case GAME_DIFFICULTY_DIFFICULT: + if (!GetPlotFlag(oTarget)) + { + bShowPopup = TRUE; + } + break; + } + + effect ePetrify = EffectPetrify(); + effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); + effect eLink = EffectLinkEffects(eDur, ePetrify); + + + /// * The duration is permanent against NPCs but only temporary against PCs + if (bIsPC == TRUE) + { + if (bShowPopup == TRUE) + { + // * under hardcore rules or higher, this is an instant death + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); + DelayCommand(2.75, PopUpDeathGUIPanel(oTarget, FALSE , TRUE, 40579)); + // if in hardcore, treat the player as an NPC + bIsPC = FALSE; + } + else + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDifficulty); + } + else + { + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); + // * Feb 11 2003 BK I don't think this is necessary anymore + //if the target was an NPC - make him uncommandable until Stone to Flesh is cast + //SetCommandable(FALSE, oTarget); + + // Feb 5 2004 - Jon + // Added kick-henchman-out-of-party code from generic petrify script + if (GetAssociateType(oTarget) == ASSOCIATE_TYPE_HENCHMAN) + { + FireHenchman(GetMaster(oTarget),oTarget); + } + } + // April 2003: Clearing actions to kick them out of conversation when petrified + AssignCommand(oTarget, ClearAllActions()); + } +}