1

Non-SKSE support for Arcane Fever effects

This commit is contained in:
Eddoursul 2024-02-10 21:06:02 +01:00
parent e7580e660c
commit 6945904e29
12 changed files with 64 additions and 44 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -502,7 +502,7 @@ scripts\_00e_fs_affinity_nightwolfsc.pex
scripts\_00e_fs_affinity_ravager_feastsc.pex scripts\_00e_fs_affinity_ravager_feastsc.pex
scripts\_00e_fs_affinity_scourge_titansc.pex scripts\_00e_fs_affinity_scourge_titansc.pex
scripts\_00e_fs_affinity_transformapparation.pex scripts\_00e_fs_affinity_transformapparation.pex
scripts\_00e_fs_alchaddarcanefever.pex scripts\_00E_IncreaseArcaneFeverFFTarget.pex
scripts\_00e_fs_blueprintcontainersc.pex scripts\_00e_fs_blueprintcontainersc.pex
scripts\_00e_fs_blueprintcontainerspellsc.pex scripts\_00e_fs_blueprintcontainerspellsc.pex
scripts\_00e_fs_chestopenpassphrase.pex scripts\_00e_fs_chestopenpassphrase.pex

@ -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

@ -1,28 +1,44 @@
Scriptname _00E_ArkanistenfieberBlitzheilungSCN extends activemagiceffect 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
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 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 If bVisuals
_00E_ArkanistenfieberIMOD.Apply() _00E_ArkanistenfieberIMOD.Apply()
EndIf EndIf
_00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) _00E_FS_IncreaseArcaneFeverM.Play(PlayerREF)
EndIf
EndEvent EndEvent
float skseMagnitude
float fMagnitude float fMagnitude
bool Property bVisuals = true Auto bool Property bVisuals = false Auto
Actor Property PlayerREF Auto Actor Property PlayerREF Auto
ImageSpaceModifier Property _00E_ArkanistenfieberIMOD Auto ImageSpaceModifier Property _00E_ArkanistenfieberIMOD Auto
Sound Property _00E_FS_IncreaseArcaneFeverM Auto Sound Property _00E_FS_IncreaseArcaneFeverM Auto
Message Property _00E_Player_sArcaneFeverIncreased Auto Message Property _00E_Player_sArcaneFeverIncreased Auto
Perk Property _00E_Class_Thaumaturge_P07_MentalExpert Auto

@ -2,7 +2,7 @@ Scriptname _00E_ArkanistenfieberWohltatSCN extends activemagiceffect
Event OnEffectStart(actor akTarget, Actor akCaster) Event OnEffectStart(actor akTarget, Actor akCaster)
If akTarget == Game.GetPlayer() If akTarget.GetFormID() == 0x14
akPlayer = akTarget akPlayer = akTarget
fOldAV = -1*(akPlayer.GetActorValue("LastFlattered")) fOldAV = -1*(akPlayer.GetActorValue("LastFlattered"))
Else Else

@ -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

@ -26,5 +26,3 @@ Hazard Property _60E_FS_Mystical_PanaceaHazard Auto
Enchantment Property _60E_FS_Mystical_PanaceaEnch Auto Enchantment Property _60E_FS_Mystical_PanaceaEnch Auto
Perk Property _60E_FS_Mystical_ArmorBuffPerk Auto Perk Property _60E_FS_Mystical_ArmorBuffPerk Auto
Message Property _00E_Player_sArcaneFeverIncreased Auto