Updated timed werewolf transformation
This commit is contained in:
parent
efa77fb18f
commit
e53ddf74f6
Binary file not shown.
Binary file not shown.
@ -81,7 +81,7 @@ Float Property BalancingStaminaMalusPercent = 75 Autoreadonly Hidden
|
|||||||
Float Property BoostFactorInfluenceOnArmor = 11 Autoreadonly Hidden
|
Float Property BoostFactorInfluenceOnArmor = 11 Autoreadonly Hidden
|
||||||
{the boost factor multiplied with this value is the wolf armor bonus for balancing purposes}
|
{the boost factor multiplied with this value is the wolf armor bonus for balancing purposes}
|
||||||
|
|
||||||
|
_00E_Theriantrophist_TransformSC Property transformEffect Auto
|
||||||
_00E_Theriantrophist_Chymikum[] RegisteredChymikums
|
_00E_Theriantrophist_Chymikum[] RegisteredChymikums
|
||||||
bool Sneaking = false
|
bool Sneaking = false
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ int function _GetScriptVersion() Global
|
|||||||
return 1
|
return 1
|
||||||
endFunction
|
endFunction
|
||||||
|
|
||||||
Function Transform(int duration = 0)
|
Function Transform(_00E_Theriantrophist_TransformSC aTransformEffect = None, int duration = 0)
|
||||||
|
|
||||||
bool bWasParalyzed
|
bool bWasParalyzed
|
||||||
Actor player = self.getActorReference()
|
Actor player = self.getActorReference()
|
||||||
@ -112,6 +112,8 @@ Function Transform(int duration = 0)
|
|||||||
|
|
||||||
float preTransformDmgResist = player.GetActorValue("damageResist")
|
float preTransformDmgResist = player.GetActorValue("damageResist")
|
||||||
|
|
||||||
|
transformEffect = aTransformEffect
|
||||||
|
|
||||||
if duration > 0
|
if duration > 0
|
||||||
; Wolf Blood should dispel the wolf form on finish (as of 2.1)
|
; Wolf Blood should dispel the wolf form on finish (as of 2.1)
|
||||||
; With SKSE, we equalize their duration. The 5 seconds offset serves as a failsafe in case the main effect ends without changing the race.
|
; With SKSE, we equalize their duration. The 5 seconds offset serves as a failsafe in case the main effect ends without changing the race.
|
||||||
@ -137,6 +139,11 @@ Function Transform(int duration = 0)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function TransformBackByTimer()
|
||||||
|
transformEffect = None
|
||||||
|
TransformBack()
|
||||||
|
endfunction
|
||||||
|
|
||||||
Function TransformBack()
|
Function TransformBack()
|
||||||
|
|
||||||
If _00E_FS_Affinity_ScourgeOfTheWilds_TitanSP == None
|
If _00E_FS_Affinity_ScourgeOfTheWilds_TitanSP == None
|
||||||
@ -158,6 +165,12 @@ Function TransformBack()
|
|||||||
EndIf
|
EndIf
|
||||||
PlayerREF.dispelSpell(_00E_Theriantrophist_WolfFormSP)
|
PlayerREF.dispelSpell(_00E_Theriantrophist_WolfFormSP)
|
||||||
|
|
||||||
|
if transformEffect
|
||||||
|
transformEffect.GotoState("ForcedFinish")
|
||||||
|
transformEffect.Dispel()
|
||||||
|
transformEffect = None
|
||||||
|
endif
|
||||||
|
|
||||||
Endfunction
|
Endfunction
|
||||||
|
|
||||||
Function OnWolfFormSpellEnd()
|
Function OnWolfFormSpellEnd()
|
||||||
|
@ -54,7 +54,7 @@ Event OnEffectStart(Actor akTarget, Actor akCaster)
|
|||||||
duration = GetDuration() as int
|
duration = GetDuration() as int
|
||||||
endif
|
endif
|
||||||
|
|
||||||
playerWhileTransformedAlias.Transform(duration)
|
playerWhileTransformedAlias.Transform(self, duration)
|
||||||
Endif
|
Endif
|
||||||
|
|
||||||
If _00E_MC_CaliaREF.GetDistance(Game.GetPlayer()) <= 700
|
If _00E_MC_CaliaREF.GetDistance(Game.GetPlayer()) <= 700
|
||||||
@ -65,6 +65,14 @@ Event OnEffectStart(Actor akTarget, Actor akCaster)
|
|||||||
|
|
||||||
Endevent
|
Endevent
|
||||||
|
|
||||||
|
auto state NormalFinish
|
||||||
|
|
||||||
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
Event OnEffectFinish(Actor akTarget, Actor akCaster)
|
||||||
controlQuest.playerWhileTransformed.TransformBack()
|
controlQuest.playerWhileTransformed.TransformBackByTimer()
|
||||||
endevent
|
endevent
|
||||||
|
|
||||||
|
endstate
|
||||||
|
|
||||||
|
state ForcedFinish
|
||||||
|
; do nothing
|
||||||
|
endstate
|
||||||
|
Loading…
Reference in New Issue
Block a user