enderalse/source/scripts/_00e_a1_onslaughtimpactsc.psc

79 lines
2.6 KiB
Plaintext
Raw Normal View History

Scriptname _00E_A1_OnslaughtImpactSC extends ObjectReference
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnInit()
; If !((Math.abs(Self.GetPositionZ() - PlayerREF.GetPositionZ())) > fMaximumZDifference)
; Dash(False)
; Else
; Dash(True)
; EndIf
; Self.Delete()
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function Dash(bool bCorrectZ = False)
float fDistance = (Math.abs(Self.GetDistance(PlayerREF)))
If (fDistance > fMaximumDistance)
float fCorrection = Math.abs(fMaximumDistance - fDistance)
; Debug.MessageBox(fCorrection)
; Debug.MessageBox("Correct " + Self.GetPositionZ())
Self.MoveTo(Self, -(fCorrection* Math.Sin(Self.GetAngleZ())), -(fCorrection* Math.Cos(Self.GetAngleZ())), 0.0)
Else
; Debug.MessageBox("Don't Correct " + Self.GetPositionZ())
Self.MoveTo(Self, -(75.0 * Math.Sin(Self.GetAngleZ())), -(75.0 * Math.Cos(Self.GetAngleZ())), 0.0)
EndIf
If bCorrectZ
Self.SetPosition(Self.GetPositionX(), Self.GetPositionY(), PlayerREF.GetPositionZ())
akNavmeshRef = Self.PlaceActorAtMe(_00E_NPCOorbayaInvisibeActor)
Self.SetPosition(akNavmeshRef.GetPositionX(), akNavmeshRef.GetPositionY(), akNavmeshRef.GetPositionZ())
Self.SetAngle(PlayerREF.GetAngleX(), PlayerREF.GetAngleY(), PlayerREF.GetAngleZ())
; Debug.MessageBox("Correct Z!")
Else
akNavmeshRef = Self.PlaceActorAtMe(_00E_NPCOorbayaInvisibeActor)
Self.SetPosition(Self.GetPositionX(), Self.GetPositionY(), akNavmeshRef.GetPositionZ())
EndIf
_00E_A1_OnslaughtCloakSP.Cast(PlayerREF, PlayerREF)
PlayerREF.SplineTranslateToRef(Self, 1.0, 2750.0, 1.0)
A1_OnslaughtPlayer.ForceRefTo(PlayerREF)
MAGShoutSprint03.Apply()
MAGShoutSprintFire.Play(PlayerREF)
akNavmeshRef.Delete()
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
float fMaximumZDifference = 350.0
float fMaximumDistance = 1300.0
Actor akNavmeshRef
ReferenceAlias Property A1_OnslaughtPlayer Auto
Sound Property MAGShoutSprintFire Auto
Spell Property _00E_A1_OnslaughtCloakSP Auto
Actor Property PlayerREF Auto
ActorBase Property _00E_NPCOorbayaInvisibeActor Auto
ImageSpaceModifier Property MAGShoutSprint03 Auto