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.

View File

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

View File

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

View File

@ -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
If akCaster == PlayerREF || akTarget == PlayerREF Event OnEffectFinish(Actor akTarget, Actor akCaster)
fMagnitude = Self.GetMagnitude()
If PlayerREF.HasPerK(_00E_Class_Thaumaturge_P07_MentalExpert) if akTarget != PlayerREF
fMagnitude = fMagnitude*0.67 return
EndIf endif
PlayerREF.ModActorValue("lastFlattered", -fMagnitude)
_00E_Player_sArcaneFeverIncreased.Show(fMagnitude, -1*(PlayerREF.GetActorValue("LastFlattered"))) float currentValue = PlayerREF.GetActorValue("LastFlattered")
If bVisuals
_00E_ArkanistenfieberIMOD.Apply() if skseMagnitude
EndIf fMagnitude = - skseMagnitude
_00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) else
fMagnitude -= currentValue
endif
_00E_Player_sArcaneFeverIncreased.Show(fMagnitude, - currentValue)
If bVisuals
_00E_ArkanistenfieberIMOD.Apply()
EndIf EndIf
_00E_FS_IncreaseArcaneFeverM.Play(PlayerREF)
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

View File

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

View File

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

View File

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