From 6945904e293cdcc9756ada987f6e28d39393260b Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Sat, 10 Feb 2024 21:06:02 +0100 Subject: [PATCH] Non-SKSE support for Arcane Fever effects --- Arcane fever from healing.esp | Bin 0 -> 6464 bytes scripts/_00E_IncreaseArcaneFeverFFTarget.pex | Bin 0 -> 1499 bytes .../_00e_arkanistenfieberblitzheilungscn.pex | Bin 1696 -> 1647 bytes scripts/_00e_arkanistenfieberwohltatscn.pex | Bin 1512 -> 1521 bytes scripts/_00e_fs_alchaddarcanefever.pex | Bin 1555 -> 0 bytes scripts/_60e_fs_mystical_panaceasc.pex | Bin 1424 -> 1317 bytes scripts/scriptarchiveorder.txt | 2 +- .../_00E_IncreaseArcaneFeverFFTarget.psc | 32 +++++++++++++ .../_00e_arkanistenfieberblitzheilungscn.psc | 44 ++++++++++++------ .../_00e_arkanistenfieberwohltatscn.psc | 2 +- source/scripts/_00e_fs_alchaddarcanefever.psc | 26 ----------- source/scripts/_60e_fs_mystical_panaceasc.psc | 2 - 12 files changed, 64 insertions(+), 44 deletions(-) create mode 100644 Arcane fever from healing.esp create mode 100644 scripts/_00E_IncreaseArcaneFeverFFTarget.pex delete mode 100644 scripts/_00e_fs_alchaddarcanefever.pex create mode 100644 source/scripts/_00E_IncreaseArcaneFeverFFTarget.psc delete mode 100644 source/scripts/_00e_fs_alchaddarcanefever.psc diff --git a/Arcane fever from healing.esp b/Arcane fever from healing.esp new file mode 100644 index 0000000000000000000000000000000000000000..6c3156ffe0e9f634bd15a247c88d0412ee0ee14b GIT binary patch literal 6464 zcmd^DU2IfE6h5?z6eyIRiYPyh1{7k&q9D;I?RM`jt#r$#y9Iwp*2~@5?xuI|ZSK7b zmT1zL_+m(W0sK#hQ6EVBc~BmFFvi4)2)=28`a)ui8WKfbe8ALm=4X4iyW1}DClDvO z_s-lob7tmz-<&funRt5JYfzoKu-G3rhTGwlm(TYs!_v15AT|_Dwt*2(L`McQkc_4? ziy=KW;T20;xL*Pznu)em^vLRw@thg(2GtDWPL6w~&F*Fi*Bf<%fIBQ5xL%R_b=nLJ zW%fp39(J*7cqFyI9U!?Yo}eBd>6ZOcxuZqqFYcgm19V}FxG`X?foykoJR7yG!Z6R3 zEgtnO)8PqzkbAH<88zO3`Ot#GE0tjBfam%}GoH_LD}Yv5EB`0bS%X_1H~p}N`#q^M2Fp=B$bE`o1_B??AU|nuSlLMIeHIR23VUYVicYHSCmOUoT z$pm=pzyy1!WRC9KxCLSvBg(KDrOBRtd@m6B=@$)|XtGO<YCdTm>2Ih}oh5YQ z1L1T`lBz*<+_4Ih8b4zHb@{Tsq3(Y3u<0qXT)^gaB%@x*_4>;Be2RNxvZJ3+l4#Wi zYCeic&n#V3mQJHim$l=*1VT!bg+o!%O4qH{GnbHO z{o5{YHJMK`huB7m{%Dq-zbDKcs;N$zrQa(#Digm+54pT$e`vOAcIt1no|&cp#^o{5 z?PO0klIZXQ)ib3T$haGpdT~cHQpX!g>3M#s2&~KWr5-7UM^)Xr-!-{gL=0EkDcb7Q zA;teLf|Hfxu5cml3fH5tXseF9!qw1z?(ErzwMogWl%FM4IbM=$E{bc7jVT>Qd2Yw6 zcZL5(^ro}L6+FkJQ}IC>w?11?xuiIK=-^T@B^}i}(LL^nXVc@{wiD?73gnDoPv4Ny zuBR@(C`}G1KfcMLMsZZtJBG@ z4u~fPj0mi`D?+&pb$vRjrDWYlmvM!ty7zl^UG=W{6I4APeKRH93sFOAp#8GeaH3bs zgf#$=2J-IVR8K=bzqhW2$(}|U2n0tBYVx@b(Lo4=t=pOe;l?^3G=l;SSK9=$H7I?j?96=7ZnuV4K0QbW6 zIz>Upg+eU~+qXBl80y4@WAiNg>p(Q33Exu|!(uwO71ib-&@M86m8}C#a z9FrSF=#}~i%Qht^0z9;tcI|42&kWGV1rX{Y5?F7@KM7k;13`BJI)wI%)v&$-L^!-M z0R-s@hlZ;Ouix}i*E2OV4zINL*@owkbZmH#T2}TxST3sxefOxm{m~A;1G={&#VyaZ z?LOCalu<8DU77lGsspbnm(6451m)X)irn>DU%kb~D;l z0uRtDUWz+jfNLIvE6(m(nK00a){@TIbI$jjpOyc9{rg|d1_bz`KmPm;JJaECJUvip zNz%~cGL?!ZbVlW5@=}&_viqkdMR%NKx++ao#Mq!(-apS(j7NyC!eFx1XJn79w1mzx zZFLY=UZ?|=TWq{gOYoNIfY%4Q(?Q7giClS*+jwTkUR+Sr`uHeHZmEjO`#^D|E(wwhIn%_*h%ET=3s zetN5l&X>bGwq>s7=!`}V^cA!Mb_s)eu7JW#gQzCk~fQ__qP zRZ3_-m*&Wgs&}ZfOVrWvLZ2gYZAbF&{*=UXSFSx2r&Y-~+%wmW`ZIcmh>y5H!+lmx zXx0MnH`o}=Eno{Bzq;t6=T{$nT=VM&Zr}sI1{iSI3eXneQ*GSCYLNKZVuWrWSi^b{ zde{hp1M}A=t_LAv*y|y{_k#ag$MfMQtW<#1Ypqz=r`w;3I7F=EuC% z90=SJ_=GiIX;0u&w)5`oOS>FD2!IYjfd4wsV4phzYpl6Q(ZF2}=3mTZU3fR}8E3h} zcMH3?hlC>??|poZJv_ixUtm{Yhk?3Y+P%py2iV-kmIuDzNot-*An{a5U`*KM3!jRQ z6axJkC0Yr-(f1GD-ClYJ*!5uG(1$+M*WchOc>lkY!P^=31v&!vT`v4)$iy89e=gqt e*bvxb77qVXU~?JHdG7Jy*v8NSgiCDm0R90Tye|F# literal 0 HcmV?d00001 diff --git a/scripts/_00e_arkanistenfieberblitzheilungscn.pex b/scripts/_00e_arkanistenfieberblitzheilungscn.pex index f6cd37dafcebbb9cf177ff6e0d544ee3265c8305..139155c238d0d6153f15e736168bc318a700217c 100644 GIT binary patch literal 1647 zcmaJ=%TgOh6g@4C(1V9CCMICV9yX~NK>nrT5f zt9)8^+2#xKAz9^gkH#jcknYmxzWUsI&+Y!}r{DgpR-nKozyEQ8t^V$Aw||gb1Uk-* z=s_&!k{u?o`DG+=GSS1+S8sO4d5Bgwiqc7zPZA#sQp!8mvG(y5)`=ti;9ofBH*oS$ zGil?sm{SuNLGyKL(n6d$(MLKqSUAz$!9YUOi&@PGvtg>E*u<$063mR^C=!i3L1^MD zxeSJJC@vb0I-UP)YesW>>KHhi_kos=m-y7f42mpQ6|OetvukdbNydmXuc~G-kVel zzV1yl*-o`@MuGA3>)3=N$*IM;pPv8BQTZmNDt9YTvhXOiXQ33HU+--peA@|TI3WZKdv{^;GRTl9fv8PHCtAw2@^Q`V}sVq@Y z?5~RZEZHr^x*yW`h^Fd_g0JwHn&V_%;R*e;etg5q+V1m!TNSJm{S*FXu)%UR*~S(= z#Z!ESZORsPxvj9Fu&%Jwa?-{<{@Dc8H7whI#SG8rR@iiE1v^Z=O_h+FYy@;yJNSN!Ne zanRZeG6N$Gq5dKCq25aasi;pElpd-eC8;SKUdR;HbJALl36BcKK`gZ%zMjbJT$(H$)9`rf z>F|h@k#X;*DW%5oJeJPT7#+#6icA&~=K66W4HmlHJm~kmzC+G&c1em>w|jaL=}g8t zcd(x%F*-%m_p5w(^y;~T-H7;Fq^B~V^CXP82PswyQhzX=f8E1qh4}s~&(r`W$qRG@NR&Ov#E-|+^oyKqA*)pOsFlnU5*yv}9hcQvUnMmWO z#3Q6MAIJ}~loK(&b|cQ|=L7!DKNvMZ>d%Dd)v0}Wg&_B@)r7u+r} z0~L|~U6jU*ccJ*#GV8f_OLfaK-D)w}twmh7&pCk`_$XJkaWfYxxWzi>ugd1z%qb2n ze9WNY(B{PJvqKGcI9Oq6;1hOV92Qxy_w}%xtH4#b%RcY%w~7uUeg3X+imMD+7oc$vhTI>pS;-Ln)_JL zra(<#-7@PglQnKQxETNU!>KJ=MwuOa$sH1Kp@sMCEs*EN(e87625bqmiwJ_1xtUA+ q7~3{TzQi4Y9d5!ho)ik~GJ+km%7*#MmCS_!7hy+Wm$gr?X#WBshGXIY diff --git a/scripts/_00e_arkanistenfieberwohltatscn.pex b/scripts/_00e_arkanistenfieberwohltatscn.pex index 9d538aca2028f4ce087da3dc1f8c50958e5cd1cc..68f354372bd03567ba52aa5386f6523e03d0e42f 100644 GIT binary patch delta 787 zcmZutO>YuW6g_u7pg4RAmX=bHVx=HZ)K(3NF*Sy!n`+XeF1nh)fD>WHkQa?B{0rnQ zUAc7UA24y(MHBr4#r*zPvj*bMCqCocDfN7gqYui?2U*4Fq1!=~-cx z{!q1gzSnn!>wESHk(X}2?|8`AJ>kA_#`e(dIfH@I6S6^#(vtn^`N)3fOknQygg-%K zaOk|w-zGp=S&qjS_N}Z1UPODOIeWNuh&(6ylin2|`B}9(I#Px>qht{-? zge@ExhrZ{?6Rj&hY3uR0?>%vbuBUqPoJxj%;0bAI8`)^5Bb@Q;9mMt>(e)?egQxP5 zR;tYTUChD#1$eLk4`oZQ>!)W4d7>Z32~mXapzX>p`bsgb-ULV>8G;njA;=&pFZAp* z8_J`&ifh~p-Y|+3mT_hA6JtOypdpWya9Vw-Kv;#20@gy3P-F#Rohdy}xK1eXpRT$I z)^eZO8<$uZQ`QEa;N#1PV}r{?1vjyYTc~pGEv_1~77y16WkMx5GDX;&Z1MMl}j zVhu}g2dJu8($Gi}w)DTeA`F6EWo>54FsC#+3u-DRkJmWCe`7T{N{efoWEEYE8M>8iso94Wd_23!Fc>EsV Tq;2-(xgApaV2+p!E<*nRAI)_J delta 802 zcmZut%Wl(95Iy5-C!|i>w3I&5BqfCw5}H1sfRqIgBtUEmQl+v3S&17g5*r0m!~(S+ zfRNB#uwcU<@Bv7ud-w*numiSi;9NUJEEs#P&YXK@=Fa?dzqy59_YS`(3j&%yIH|lZ1E1A zDAaGP1^vOQ7VNIq_mR8h$7xCZofkFhMmDn@4}!3(`&MN-+iY&fUhE?uh1dOV5GIlS zA&sTj??2uI1qNI^0+*m}hw)K#S#PMi8ocFcLuE$=W29yT)dZCdD;5^XR@84=h9LRN)aHn$j70Iih%~zh z#Rr`tOB0;N63^v*a*B1&2+lGzNk(6zfNcFAmP0JzoVia;ij=|m-;fSgI9!9iiZv`# zvW^Y79B0flaR1J+qOLI>4$?Rpq#@wH!e_WdHerHtOgk^g3sy}P4rzG(&Z+44j-x+1 bxq9+`v9BJ$>}#F=>Gt zDnG5iq(7uD?U~u#%9Wya#-2U*?_6g7{Q37k>NN=PBJ*Jr>%;y1qv7Ce*w5n2ev5rLwPiC0U z<$0`PLo%micr6W@6UuWrCOj@Z`sPZiG`FNiDP52`J~@5sEpMj`K>1Y0G|@@QT7%^% zx;Rhsnapx;6C7%tVY3XyZK}ZL@K3yDBiA#P;8E4jj~Sv>1;>4F_p#it@xO&4_(3be zo54(RqqGX`rLSlS8YSr7)jT>?%yc+z+Is=%$#*!kIOx8e=hv zT+nlFVOy&sl@#hAr)-2~6cubot3w*6s^EJ6PQZ|z8RhUPjAzD>;-m^VdG(VtW3p)U zW2+5X^6ERuGvRqfk)_FWzapMh!~vG(FF`?!T?ukx( zN#`<~5xU=VRf9}gE{zf&XigiPUFsWd!E~CvN8rH9hxpq8>il2?YVKh=!m*wRfV*h; z-9)ilXraw}soY&G^S61ayo7Jka2`kKIffd|a_vbq8fS?i6hQkh5MbP{8_iJVwa>Ha7U&_9y&|wFu+Ho~rkv;wr?KzT*zy+4J`>myc;eY*fgaPG@-9=%J!Oi69tb=y>k%yM zc(Yx0e&NIWLTfd=WH}38d122*6fER0+x5SA@u0T-&l$ZIXqB*w9&Vdw5AMK!9b87o ig>^mtMxb5g6ny&uSoMI6w!`>r@P_AHB5=|>h5By>Mn#SQ diff --git a/scripts/_60e_fs_mystical_panaceasc.pex b/scripts/_60e_fs_mystical_panaceasc.pex index 465eaff5f352f13d7097b415174a68d9d2e9935c..86d0beec771fda1ff62385f5132db25ee1e11f88 100644 GIT binary patch delta 544 zcmah_yGjE=6g_um*WGNgF=|XqVjjlCM|=gbTCfR-R%rrSi3GBSfNUV95S#o$!u)`Z zjTYh`*lFW0=qK1)hTxpyzhwjZ)Kf z+infpLs?J`%Vys_a62A!5bL`Qr`vOV6ux~X$D(1~Ll3&)QkoN_KD+Gg3^q}H%to`qzKV7Q?lTh+vgr5}#CIzkliW9iA7{{*>800)% vWzxGzgXWF5jvAw%MOnfIe?StO0Ylhg2RF==;Gk`P8ozy5>}8$VonP!X#;!b0 delta 656 zcmah`Jxc>Y5Pfr(c=_S_2eSW-)$slD`%Re zLSdz}d1Rdmr{pdLadZH~G#fBhv6n^p z&{jxZY2)&RcI2!!BM-Fsus_tTT+o-}PcRx|@*R}tdbXBCi#Ik9L@S3%ZXk&^gnbY~ zJK{cwp##l6NT3r@A4E7H=)6ls#fQB5aMDps#sp} zDXO7B2z~dYDUy)?CHtkKKUK4Y2w}pr(Uq5P*zN_CAY=(KcAq0K$mu)<0?ev(kpJKd Du$x^W diff --git a/scripts/scriptarchiveorder.txt b/scripts/scriptarchiveorder.txt index c259e4c6..b9006995 100644 --- a/scripts/scriptarchiveorder.txt +++ b/scripts/scriptarchiveorder.txt @@ -502,7 +502,7 @@ scripts\_00e_fs_affinity_nightwolfsc.pex scripts\_00e_fs_affinity_ravager_feastsc.pex scripts\_00e_fs_affinity_scourge_titansc.pex scripts\_00e_fs_affinity_transformapparation.pex -scripts\_00e_fs_alchaddarcanefever.pex +scripts\_00E_IncreaseArcaneFeverFFTarget.pex scripts\_00e_fs_blueprintcontainersc.pex scripts\_00e_fs_blueprintcontainerspellsc.pex scripts\_00e_fs_chestopenpassphrase.pex diff --git a/source/scripts/_00E_IncreaseArcaneFeverFFTarget.psc b/source/scripts/_00E_IncreaseArcaneFeverFFTarget.psc new file mode 100644 index 00000000..c8021f08 --- /dev/null +++ b/source/scripts/_00E_IncreaseArcaneFeverFFTarget.psc @@ -0,0 +1,32 @@ +Scriptname _00E_IncreaseArcaneFeverFFTarget extends activemagiceffect + +event OnInit() + fMagnitude = PlayerREF.GetActorValue("LastFlattered") +endevent + +Event OnEffectFinish(Actor akTarget, Actor akCaster) + + If akCaster != PlayerREF + return + endif + + fMagnitude -= PlayerREF.GetActorValue("LastFlattered") + + If PlayerREF.HasPerk(_00E_Class_Thaumaturge_P07_MentalExpert) + fMagnitude = fMagnitude * 0.67 + EndIf + + PlayerREF.ModActorValue("LastFlattered", -fMagnitude) + + _00E_Player_sArcaneFeverIncreased.Show(fMagnitude, - PlayerREF.GetActorValue("LastFlattered")) + + _00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) + +EndEvent + +float fMagnitude + +Actor Property PlayerREF Auto +Sound Property _00E_FS_IncreaseArcaneFeverM Auto +Message Property _00E_Player_sArcaneFeverIncreased Auto +Perk Property _00E_Class_Thaumaturge_P07_MentalExpert Auto diff --git a/source/scripts/_00e_arkanistenfieberblitzheilungscn.psc b/source/scripts/_00e_arkanistenfieberblitzheilungscn.psc index bf1e2a48..82c91a9f 100644 --- a/source/scripts/_00e_arkanistenfieberblitzheilungscn.psc +++ b/source/scripts/_00e_arkanistenfieberblitzheilungscn.psc @@ -1,28 +1,44 @@ Scriptname _00E_ArkanistenfieberBlitzheilungSCN extends activemagiceffect -Event OnEffectStart(Actor akTarget, Actor akCaster) +event OnInit() + if SKSE.GetVersion() + skseMagnitude = GetMagnitude() + else + ; By the time this value is retrieved, LastFlattered is already modified, making the calculation slightly inaccurate + fMagnitude = PlayerREF.GetActorValue("LastFlattered") + endif +endevent - If akCaster == PlayerREF || akTarget == PlayerREF - fMagnitude = Self.GetMagnitude() - If PlayerREF.HasPerK(_00E_Class_Thaumaturge_P07_MentalExpert) - fMagnitude = fMagnitude*0.67 - EndIf - PlayerREF.ModActorValue("lastFlattered", -fMagnitude) - _00E_Player_sArcaneFeverIncreased.Show(fMagnitude, -1*(PlayerREF.GetActorValue("LastFlattered"))) - If bVisuals - _00E_ArkanistenfieberIMOD.Apply() - EndIf - _00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) +Event OnEffectFinish(Actor akTarget, Actor akCaster) + + if akTarget != PlayerREF + return + endif + + float currentValue = PlayerREF.GetActorValue("LastFlattered") + + if skseMagnitude + fMagnitude = - skseMagnitude + else + fMagnitude -= currentValue + endif + + _00E_Player_sArcaneFeverIncreased.Show(fMagnitude, - currentValue) + + If bVisuals + _00E_ArkanistenfieberIMOD.Apply() EndIf + _00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) + EndEvent +float skseMagnitude float fMagnitude -bool Property bVisuals = true Auto +bool Property bVisuals = false Auto Actor Property PlayerREF Auto ImageSpaceModifier Property _00E_ArkanistenfieberIMOD Auto Sound Property _00E_FS_IncreaseArcaneFeverM Auto Message Property _00E_Player_sArcaneFeverIncreased Auto -Perk Property _00E_Class_Thaumaturge_P07_MentalExpert Auto \ No newline at end of file diff --git a/source/scripts/_00e_arkanistenfieberwohltatscn.psc b/source/scripts/_00e_arkanistenfieberwohltatscn.psc index 995765ce..9569422f 100644 --- a/source/scripts/_00e_arkanistenfieberwohltatscn.psc +++ b/source/scripts/_00e_arkanistenfieberwohltatscn.psc @@ -2,7 +2,7 @@ Scriptname _00E_ArkanistenfieberWohltatSCN extends activemagiceffect Event OnEffectStart(actor akTarget, Actor akCaster) - If akTarget == Game.GetPlayer() + If akTarget.GetFormID() == 0x14 akPlayer = akTarget fOldAV = -1*(akPlayer.GetActorValue("LastFlattered")) Else diff --git a/source/scripts/_00e_fs_alchaddarcanefever.psc b/source/scripts/_00e_fs_alchaddarcanefever.psc deleted file mode 100644 index 2c9c777f..00000000 --- a/source/scripts/_00e_fs_alchaddarcanefever.psc +++ /dev/null @@ -1,26 +0,0 @@ -Scriptname _00E_FS_AlchAddArcaneFever extends activemagiceffect - -Event OnEffectStart(Actor akTarget, Actor akCaster) - - if akTarget == Game.GetPlayer() - - float fArcaneFeverAdd = Self.GetBaseObject().GetArea() - Debug.MessageBox(fArcaneFeverAdd) - - akTarget.ModActorValue("LastFlattered", -fArcaneFeverAdd) - _00E_Player_sArcaneFeverIncreased.Show(fArcaneFeverAdd, -1*(akTarget.GetActorValue("LastFlattered"))) - - if bVisuals - _00E_ArkanistenfieberIMOD.Apply() - endif - - _00E_FS_IncreaseArcaneFeverM.Play(akTarget) - EndIf - -EndEvent - -bool Property bVisuals = true Auto - -ImageSpaceModifier Property _00E_ArkanistenfieberIMOD Auto -Sound Property _00E_FS_IncreaseArcaneFeverM Auto -Message Property _00E_Player_sArcaneFeverIncreased Auto diff --git a/source/scripts/_60e_fs_mystical_panaceasc.psc b/source/scripts/_60e_fs_mystical_panaceasc.psc index 6d44ebeb..9a2dfc4f 100644 --- a/source/scripts/_60e_fs_mystical_panaceasc.psc +++ b/source/scripts/_60e_fs_mystical_panaceasc.psc @@ -26,5 +26,3 @@ Hazard Property _60E_FS_Mystical_PanaceaHazard Auto Enchantment Property _60E_FS_Mystical_PanaceaEnch Auto Perk Property _60E_FS_Mystical_ArmorBuffPerk Auto - -Message Property _00E_Player_sArcaneFeverIncreased Auto \ No newline at end of file