4
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

884 lines
27 KiB

Scriptname _00E_NQR01_Functions extends Quest Conditional
Import Utility
int function _GetScriptVersion() Global
return 1
endFunction
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnUpdateGameTime()
if GetCurrentStageID() == 25
SetObjectiveDisplayed(0, True, True)
SetCurrentStageID(30)
Elseif GetCurrentStageID() == 45
SetObjectiveDisplayed(0, True, True)
SetCurrentStageID(50)
Elseif GetCurrentStageID() == 61
SetObjectiveDisplayed(0, True, True)
SetCurrentStageID(62)
Elseif GetCurrentStageID() == 66
SetObjectiveDisplayed(0, True, True)
SetCurrentStageID(70)
EndIf
EndEvent
Event OnUpdate()
if bAnimationFired == false && !bSecondAnimation
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartLeft")
RegisterForSingleUpdate(0.1)
elseif bAnimationFired == false && bSecondAnimation
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartRight")
RegisterForSingleUpdate(0.1)
endIf
EndEvent
Event OnAnimationEvent(ObjectReference akSource, string asEventName)
if (akSource == FS_NQR01_Cinematic_Fake_Tharael_01) && (asEventName == "PowerAttack_Start_End")
UnregisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "PowerAttack_Start_End")
bAnimationFired = true
_00E_FS_NQR05_TharaelTeleportShock.Apply()
Teleport(FS_NQR01_Cinematic_Fake_Tharael_01, FS_NQR01_Tharael_Teleport_01, false)
_00E_FS_NQR01_TharaelIntro.Add()
Wait(0.35)
FS_NQR01_Cinematic_Fake_Tharael_01.SetGhost(True)
FS_NQR01_Cinematic_GiantOriginMarker.KnockAreaEffect(500.0, 64)
_00E_NQR01_Battle05_Parent.PlayIdle(GiantRecoilLarge)
WPNImpactBladeVsFlesh.Play(_00E_NQR01_Battle05_Parent)
_00E_NPCOorbaya_HitHeavyM.Play(_00E_NQR01_Battle05_Parent)
Wait(0.45)
_00E_FS_NQR01_CrowdGaspM.Play(PlayerREF)
Teleport(FS_NQR01_Cinematic_Fake_Tharael_01, FS_NQR01_Tharael_Teleport_Withdraw, true)
Attack02()
elseif (akSource == FS_NQR01_Cinematic_Fake_Tharael_02) && (asEventName == "PowerAttack_Start_End")
UnregisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "PowerAttack_Start_End")
bAnimationFired = true
; Utility.Wait(0.15)
Teleport(FS_NQR01_Cinematic_Fake_Tharael_02, FS_NQR01_Tharael_Teleport_02, false)
Wait(0.35)
WPNImpactBladeVsFlesh.Play(_00E_NQR01_Battle05_Parent)
_00E_NPCOorbaya_HitM.Play(_00E_NQR01_Battle05_Parent)
_00E_NQR01_Battle05_Parent.PlayImpactEffect(PHYBodyDragon)
GAme.ShakeCamera()
InitializeCoordinates(_00E_NQR01_Battle05_Parent)
_00E_SC_TharaelREF.SetAlpha(0.0)
_00E_SC_TharaelREF.MoveTo(_00E_NQR01_Battle05_Parent, EndLocX, EndLocY, EndLocZ, false)
_00E_SC_TharaelREF.SetAngle(TargetAngleX, TargetAngleY, TargetAngleZ)
Teleport(FS_NQR01_Cinematic_Fake_Tharael_02, FS_NQR01_Tharael_Teleport_Withdraw, true)
Wait(0.45)
Stab()
endIf
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
;=======================================CINEMATIC=====================================
Function Prepare()
FS_NQR01_Battle05_CageOpenerREF.Enable()
FS_NQR01_Battle05_CageOpenerREF.MoveTo(FS_NQR01_Cinematic_OpenerREF)
AllowIdleChatter.SetValue(0)
FS_NQR01_PitFighterFacadeParentREF.Disable()
FS_NQR01_Cinematic_Stage_01.SetValueInt(1)
_00E_NQR01_Battle05_Parent.Enable()
_00E_SC_TharaelREF.Enable()
if SKSE.GetVersion()
FS_NQR01_Cinematic_Fake_Tharael_01.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
FS_NQR01_Cinematic_Fake_Tharael_01.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
FS_NQR01_Cinematic_Fake_Tharael_02.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
FS_NQR01_Cinematic_Fake_Tharael_02.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
_00E_SC_TharaelREF.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
_00E_SC_TharaelREF.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
else
FS_NQR01_Cinematic_Fake_Tharael_01.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
FS_NQR01_Cinematic_Fake_Tharael_01.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
FS_NQR01_Cinematic_Fake_Tharael_02.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
FS_NQR01_Cinematic_Fake_Tharael_02.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
_00E_SC_TharaelREF.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
_00E_SC_TharaelREF.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
endif
FS_NQR01_Cinematic_Fake_Tharael_01.Enable()
FS_NQR01_Cinematic_Fake_Tharael_02.Enable()
_00E_SC_TharaelREF.MoveTo(FS_NQR01_Cinematic_Fake_Tharael_02)
;DEBUG
; _00E_NQR01_Battle05_Parent.Enable()
; _00E_NQR01_Battle05_Parent.MoveTo(FS_NQR01_Cinematic_GiantREF)
; _00E_NQR01_Battle05_Parent.EvaluatePackage()
;DEBUG
EndFunction
Function OpenDoor()
FS_NQR01_Battle05_CageOpenerREF.PlayIdle(IdleTake)
Wait(0.5)
NQR01_SC01_Battle_04_CageDoor.SetOpen(True)
_00E_Crowd_MQ14CheerM.Play(PlayerREF)
EndFunction
Function Death()
Game.ShakeCamera(afStrength = 1.0)
_00E_NQR01_Battle05_Parent.PlayImpactEffect(PHYBodyDragon)
_00E_NQR01_Battle05_Parent.PlaceAtMe(_00E_FXDustExplosionBig)
_00E_NPCOorbaya_DeathM.Play(_00E_NQR01_Battle05_Parent)
Wait(2)
FS_NQR01_Cinematic_Stage_02.SetValueInt(1)
EndFunction
Function InitializeCoordinates(Actor TargetVictim)
EndLocX = (150*Math.Sin(TargetVictim.GetAngleZ()))
EndLocY = (150*Math.Cos(TargetVictim.GetAngleZ()))
EndLocZ = 0
TargetAngleX = 0.0
TargetAngleY = 0.0
TargetAngleZ = TargetVictim.GetAngleZ() + 180
EndFunction
Function _SlowMotion(float fDuration = 5.0, bool bSound = true)
PlayerREF.AddSpell(_00E_FS_NQR05_SlowMotionSP, False)
if bSound
_00E_FS_NQR05_SlowMotion_IntroM.Play(PlayerREF)
endif
Wait(fDuration)
if bSound
_00E_FS_NQR05_SlowMotion_OutroM.Play(PlayerREF)
endif
PlayerREF.RemoveSpell(_00E_FS_NQR05_SlowMotionSP)
EndFunction
Function Stab()
_00E_NQR01_Battle05_Parent.SetGhost(False)
_00E_NQR01_Battle05_Parent.GetActorBase().SetEssential(False)
; Utility.Wait(0.1)
if _00E_SC_TharaelREF.PlayIdleWithTarget(pa_1HMKillMoveGiantA, _00E_NQR01_Battle05_Parent)
MAGIllusionReleaseAimedSDM.Play(_00E_SC_TharaelREF)
_00E_FS_NQR05_TharaelTeleportShock.Apply()
_00E_SC_TharaelREF.SetAlpha(1.0)
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
MAGIllusionFearExplosionSDM.Play(_00E_SC_TharaelREF)
;Utility.Wait(2.4)
Wait(2.0)
_SlowMotion(2)
endIf
_00E_BloodyFXShader.Play(_00E_SC_TharaelREF)
Wait(2.6)
Death()
EndFunction
Function Teleport(Actor akActor, ObjectReference objLocation, bool bOut = false)
if !bOut
_00E_FS_NQR05_TharaelTeleportShockSmallIMOD.Apply()
_00E_FS_NQR05_TharaelMaterializeFXS.Play(akActor)
else
_00E_FS_Tharael_DematerializeFXS.Play(akActor)
Wait(0.2)
endIf
akActor.MoveTo(objLocation)
MAGIllusionReleaseAimedSDM.Play(akActor)
EndFunction
Function GiantIntimidate()
FS_NQR01_Battle05_CageOpenerREF.Disable()
Debug.SendAnimationEvent(_00E_NQR01_Battle05_Parent, "aggroWarningStart")
_00E_NPCOorbaya_IdleScreamM.Play(_00E_NQR01_Battle05_Parent)
EndFunction
Function Attack01()
Game.DisablePlayerControls()
_00E_NQR01_Battle05_Parent.SetGhost(true)
bAnimationFired = false
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "IdleStop")
RegisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "PowerAttack_Start_End")
Wait(0.25)
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartLeft")
RegisterForSingleUpdate(0.1)
EndFunction
Function Attack02()
bSecondAnimation = true
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "IdleStop")
RegisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "PowerAttack_Start_End")
Wait(0.25)
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "attackPowerStartRight")
RegisterForSingleUpdate(0.1)
EndFunction
;=======================================CINEMATIC=====================================
Function GiveContract()
SetObjectiveCompleted(5)
PlayerREF.AddItem(_00E_NQR01_Contract, 1, false)
EndFunction
Function HandOverContract()
SetObjectiveCompleted(10)
PlayerREF.RemoveItem(_00E_NQR01_Contract, 1, false)
EndFunction
Function StartArenaBattle(int iObjectiveIndex, Actor akActorParent, Scene scSceneToStart)
SetObjectiveCompleted(0)
int iIndex = _00E_FS_NQR04_ArenaDummyFormlist.GetSize()
While iIndex > 0
iIndex -= 1
Actor Dummy = _00E_FS_NQR04_ArenaDummyFormlist.GetAt(iIndex) as Actor
Dummy.SetGhost(1)
EndWhile
Game.DisablePlayerControls()
_00E_TeleportGlobal.SetValueInt(1)
FS_NQR01_PitFighterFacadeParentREF.Disable()
FS_NQR01_NavcutREF.Disable()
_00E_FS_NQR01_IsCommentatorTalking.SetValueInt(0)
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(1)
akActorParent.Enable()
SetObjectiveDisplayed(iObjectiveIndex)
FadeToBlackIMOD.Apply()
Wait(2)
FadeToBlackHoldIMOD.ApplyCrossFade(2)
NQR01_ArenaDoorREF.BlockActivation(True)
PlayerREF.MoveTo(NQR01_SC01_PlayerStartFightMarker)
FS_NQR01_ArenaGuardREF.Disable()
StartCombatKulisse()
FadeToBlackBackIMOD.ApplyCrossFade(3)
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(1)
scSceneToStart.ForceStart()
EndFunction
Function StartArenaCombat(Formlist flEnemies)
Game.RequestAutoSave()
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
Game.EnablePlayerControls()
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
AllowIdleChatter.SetValue(0)
_00E_FS_NQR01_ArenaBattleMusic.Add()
int iIndex = flEnemies.GetSize()
while iIndex > 0
iIndex -= 1
Actor akEnemy = flEnemies.GetAt(iIndex) as Actor
akEnemy.SetActorValue("Aggression", 3)
akEnemy.SetGhost(False)
akEnemy.EvaluatePackage()
endwhile
if flEnemies == _00E_NQR01_Battle05_Enemies
NQR01_SC01_Battle_04_CageDoor.SetOpen(True)
_00E_SC_TharaelREF.Enable()
EndIf
EndFunction
Function StartArenaBattle01()
StartArenaBattle(15, _00E_NQR01_Battle01_Parent, NQR01_SC01_ArenaBattle_01)
EndFunction
Function StartArenaBattle02()
StartArenaBattle(25, _00E_NQR01_Battle02_Parent, NQR01_SC01_ArenaBattle_02)
EndFunction
Function StartArenaBattle03()
StartArenaBattle(30, _00E_NQR01_Battle03_Parent, NQR01_SC01_ArenaBattle_03)
EndFunction
Function StartArenaBattle04()
if NQR01_Battle04_EnemyREF == NONE
NQR01_Battle04_EnemyREF = Game.GetForm(0x00043C13) as Actor
EndIf
ArenaBattle_04_Enemy.ForceRefIfEmpty(NQR01_Battle04_EnemyREF)
if NQR01_SC01_ArenaBattle_04 != Game.GetForm(0x00043C12) as Scene
NQR01_SC01_ArenaBattle_04 = Game.GetForm(0x00043C12) as Scene
EndIf
StartArenaBattle(45, NQR01_Battle04_EnemyREF, NQR01_SC01_ArenaBattle_04)
EndFunction
Function StartArenaBattle05()
if _00E_NQR01_Battle05_Parent == NONE
_00E_NQR01_Battle05_Parent = Game.GetForm(0x00043C1C) as Actor
EndIf
ArenaBattle_05_Enemy.ForceRefIfEmpty(_00E_NQR01_Battle05_Parent)
StartArenaBattle(35, _00E_NQR01_Battle05_Parent, NQR01_SC01_ArenaBattle_05)
EndFunction
Function StopArenaCombat()
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(0)
_00E_FS_NQR01_ArenaBattleMusic.Remove()
int CrowdInstance = _00E_Crowd_MQ14CheerM.Play(PlayerREF)
Sound.SetInstanceVolume(CrowdInstance, 0.8)
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(0)
SetObjectiveCompleted(15)
FS_NQR01_ArenaGuardREF.StopCombat()
FS_NQR01_ArenaGuardREF.StopCombatAlarm()
EndFunction
Function Register()
SetObjectiveDisplayed(0, True, True)
RegisterForSingleUpdateGameTime(24)
EndFunction
Function DisableCorpsesAndAdvanceStage(Formlist flEnemies, int iDesiredStage)
_00E_TeleportGlobal.SetValueInt(0)
AllowIdleChatter.SetValue(1)
FS_NQR01_ArenaGuardREF.Enable()
Wait(5)
FadeToBlackIMOD.Apply()
Wait(2)
FadeToBlackHoldIMOD.ApplyCrossFade(2)
int iIndex = flEnemies.GetSize()
while iIndex > 0
iIndex -= 1
ObjectReference akEnemy = flEnemies.GetAt(iIndex) as ObjectReference
akEnemy.RemoveAllItems(FS_NQR01_LootChestREF)
akEnemy.Disable()
endwhile
iIndex = _00E_FS_NQR04_ArenaDummyFormlist.GetSize()
While iIndex > 0
iIndex -= 1
Actor Dummy = _00E_FS_NQR04_ArenaDummyFormlist.GetAt(iIndex) as Actor
Dummy.SetGhost(0)
EndWhile
PlayerREF.MoveTo(FS_NQR01_ReturnFromArenaMarkerREF)
_FS_TheriantrophistControlQuest.TransformBackIfTransformed()
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
FS_NQR01_PitFighterFacadeParentREF.Enable()
FS_NQR01_PitFighterFacadeParentREF.MoveTo(FS_NQR01_Fistfighter01_Marker)
FS_NQR01_Fistfighter02.MoveTo(FS_NQR01_Fistfighter02_Marker)
FS_NQR01_NavcutREF.Enable()
FS_NQR01_PitFighterFacadeParentREF.EvaluatePackage()
FS_NQR01_Fistfighter02.EvaluatePackage()
FS_NQR01_PitFighterFacadeParentREF.StartCombat(FS_NQR01_Fistfighter02)
Wait(3)
FadeToBlackBackIMOD.ApplyCrossFade(1)
SetCurrentStageID(iDesiredStage)
Game.RequestAutoSave()
EndFunction
Function StartCombatKulisse()
NQR01_CrowdParentREF.Enable()
EndFunction
Function GiveRewardBattle01()
SetObjectiveCompleted(20)
PlayerREF.AddItem(Gold001, __Config_iBattle01_Reward)
_00E_EPHandler.GiveEP(__Config_iBattle01_expReward)
EndFunction
Function GiveRewardBattle02()
SetObjectiveCompleted(20)
PlayerREF.AddItem(Gold001, __Config_iBattle02_Reward)
_00E_EPHandler.GiveEP(__Config_iBattle02_expReward)
EndFunction
Function GiveRewardBattle03()
SetObjectiveCompleted(20)
PlayerREF.AddItem(Gold001, __Config_iBattle03_Reward)
_00E_EPHandler.GiveEP(__Config_iBattle03_expReward)
EndFunction
Function GiveRewardBattle04()
SetObjectiveCompleted(20)
PlayerREF.AddItem(Gold001, __Config_iBattle04_Reward)
_00E_EPHandler.GiveEP(__Config_iBattle04_expReward)
EndFunction
Function GiveRewardBattle05()
SetObjectiveCompleted(20)
; Rasha says "can't pay you this time"
; PlayerREF.AddItem(Gold001, __Config_iBattle05_Reward)
_00E_EPHandler.GiveEP(__Config_iBattle05_expReward)
bAfterBattle05TalkStage = 1
EndFunction
Function FinishRashaLine()
bAfterBattle05TalkStage = 2
EndFunction
Function SetUpSC04()
_00E_FS_NQR01_Loot.Show()
_00E_SC_TharaelREF.Enable()
_00E_SC_TharaelREF.MoveTo(NQR01_SC04_TharaelMarker)
NQR01_SC04_Tharael.ForceStart()
_00E_SC_RashaREF.BlockActivation(true)
EndFunction
Function DespawnTharael()
_00E_SC_TharaelREF.Disable()
EndFunction
Function WaitForNextCombat()
FadeToBlackIMOD.Apply()
Wait(2)
FadeToBlackHoldIMOD.ApplyCrossFade(2)
if GetCurrentStageID() == 25
SetCurrentStageID(30)
Elseif GetCurrentStageID() == 45
SetCurrentStageID(50)
Elseif GetCurrentStageID() == 61
SetCurrentStageID(62)
Elseif GetCurrentStageID() == 66
SetCurrentStageID(70)
EndIf
FadeToBlackBackIMOD.ApplyCrossFade(1)
EndFunction
Function TharaelAppearInArena()
AllowIdleChatter.SetValue(0)
_00E_SC_TharaelREF.Enable()
SetObjectiveCompleted(35)
_00E_SC_TharaelREF.MoveTo(FS_NQR01_TharaelAppearREF)
_00E_SC_TharaelREF.SetAlpha(0.0)
_00E_A2_Ghostwalk_TeleportSound.Play(_00E_SC_TharaelREF)
_00E_A2_GhostwalkTeleportReappearVFX.Play(_00E_SC_TharaelREF)
Wait(1.5)
_00E_NQR01_Battle05_Parent.SetGhost(True)
_00E_A2_GhostwalkTeleportVFX.Play(_00E_SC_TharaelREF)
_00E_A2_GhostwalkTeleportReappearVFX.Stop(_00E_SC_TharaelREF)
_00E_SC_TharaelREF.PlaceAtMe(_00E_A2_GhostwalkImpactExplosion, 1)
_00E_SC_TharaelREF.SetAlpha(1.0)
_00E_NQR01_Battle05_Parent.StopCombat()
_00E_NQR01_Battle05_Parent.StopCombatAlarm()
Wait(2)
_00E_SC_TharaelREF.PlayIdle(_00E_IdleThrow)
Game.ShakeCamera()
_00E_FS_NQR01_TharaelFlashpowderImod.Apply()
MAGPowerRacialPacifyFire.Play(PlayerREF)
_00E_NPCOorbaya_IdleIntimidateM.Play(_00E_NQR01_Battle05_Parent)
Wait(1.5)
WPNBowFire.Play(PlayerREF)
Wait(0.1)
WPNBowFire.Play(PlayerREF)
Wait(0.2)
WPNBowFire.Play(PlayerREF)
Wait(0.2)
WPNImpactArrowVsFlesh.Play(PlayerREF)
Wait(0.3)
WPNImpactArrowVsFlesh.Play(PlayerREF)
Wait(0.2)
WPNImpactArrowVsFlesh.Play(PlayerREF)
_00E_NQR01_Battle05_Parent.SetGhost(False)
_00E_NQR01_Battle05_Parent.GetActorBase().SetEssential(False)
_00E_NQR01_Battle05_Parent.Kill(_00E_SC_TharaelREF)
EndFunction
Function TharaelStartCombat()
Game.RequestAutoSave()
_00E_A2_GhostwalkTeleportVFX.Stop(_00E_SC_TharaelREF)
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
AllowIdleChatter.SetValue(0)
_00E_FS_NQR01_ArenaBattleMusic.Add()
Game.EnablePlayerControls()
Game.SetPlayerAIDriven(False)
SetObjectiveDisplayed(35, False, False)
SetObjectiveDisplayed(40)
_00E_SC_TharaelREF.SetGhost(False)
Teleport(_00E_SC_TharaelREF, FS_NQR01_TharaelBeamMarker01, true)
FS_NQR01_Cinematic_Fake_Tharael_01.Disable()
FS_NQR01_Cinematic_Fake_Tharael_02.Disable()
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
_00E_SC_TharaelREF.RemoveFromFaction(PlayerAlliesFaction)
_00E_SC_TharaelREF.StartCombat(PlayerREF)
_00E_SC_TharaelREF.SetActorValue("Aggression", 3)
_00E_SC_TharaelREF.EvaluatePackage()
EndFunction
Function TharaelStopCombat()
_00E_FS_NQR01_ArenaBattleMusic.Remove()
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(0)
SetObjectiveCompleted(40)
_00E_SC_TharaelREF.StopCombat()
_00E_SC_TharaelREF.AddToFaction(PlayerAlliesFaction)
_00E_SC_TharaelREF.SetGhost(True)
_00E_SC_TharaelREF.ResetHealthAndLimbs()
_00E_SC_TharaelREF.SetActorValue("Aggression", 1)
EndFunction
Function TeleportTharaelAndPlayer()
Game.DisablePlayerControls()
_00E_SC_TharaelREF.PlayIdle(IdleMagic_01)
Debug.SendAnimationEvent(_00E_SC_TharaelREF, "IdleForceDefaultState")
Wait(1.0)
Teleport(_00E_SC_TharaelREF, NQR01_SC05_TharelMarker, true)
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
_00E_SC_TharaelREF.Disable()
_00E_SC_TharaelREF.MoveTo(NQR01_SC05_TharelMarker)
_00E_FS_NQR05_TharaelTeleportShockSmallIMOD.Apply()
Wait(0.5)
Teleport(PlayerREF, NQR01_SC05_PlayerMarker, true)
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
_00E_TeleportImod.Apply()
if !FS_NQR01_SC8_IAmInTheWayRatREF.IsDead()
FS_NQR01_SC8_IAmInTheWayRatREF.Kill(FS_NQR01_SC8_IAmInTheWayRatREF)
EndIf
_00E_SC_TharaelREF.RemoveItem(_00E_FS_NQR_TharaelsBow, 1, true)
_00E_SC_TharaelREF.RemoveItem(_00E_FS_NQR_TharaelsArrows, 55, true)
_00E_NQR01_Battle05_Parent.Disable()
_FS_TheriantrophistControlQuest.TransformBackIfTransformed()
_FS_Phasmalist_ControlQuest.UnsummonApparitionIfExists()
EndFunction
Function StartSC05()
SetCurrentStageID(80)
Game.ForceFirstPerson()
_00E_TeleportGlobal.SetValueInt(0)
AllowIdleChatter.SetValue(1)
FS_NQR01_ArenaGuardREF.Enable()
FS_NQR01_PitFighterFacadeParentREF.Enable()
FS_NQR01_PitFighterFacadeParentREF.MoveTo(FS_NQR01_Fistfighter01_Marker)
FS_NQR01_Fistfighter02.MoveTo(FS_NQR01_Fistfighter02_Marker)
FS_NQR01_NavcutREF.Enable()
FS_NQR01_PitFighterFacadeParentREF.EvaluatePackage()
FS_NQR01_Fistfighter02.EvaluatePackage()
FS_NQR01_PitFighterFacadeParentREF.StartCombat(FS_NQR01_Fistfighter02)
_00E_FS_NQR05_TharaelMaterializeFXS.Stop(_00E_SC_TharaelREF)
_00E_FS_NQR05_TharaelMaterializeFXS.Stop(PlayerREF)
_00E_FS_Tharael_DematerializeFXS.Stop(PlayerREF)
_00E_FS_Tharael_DematerializeFXS.Stop(_00E_SC_TharaelREF)
_00E_SC_TharaelREF.MoveTo(NQR01_SC05_TharelMarker)
_00E_SC_TharaelREF.Enable()
SetObjectiveDisplayed(50)
Wait(3)
NQR01_SC05_Explanation.ForceStart()
Game.EnablePlayerControls()
EndFunction
Function GiveRewardEXP(bool bDeclined)
if SKSE.GetVersion()
_00E_SC_TharaelREF.UnEquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
_00E_SC_TharaelREF.UnEquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
else
_00E_SC_TharaelREF.UnequipItem(_00E_FS_NQR05_Tharael_Dagger, true, true)
_00E_SC_TharaelREF.UnequipItem(_00E_FS_NQR05_Tharael_Dagger, true, true)
endif
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
_00E_PlayerFunctions.GetSoundControl().RemoveCombatSoundtracks()
AllowIdleChatter.SetValue(1)
NQR01_SC05_Explanation.Stop()
SetObjectiveCompleted(50)
_00E_EPHandler.GiveEP(__Config_iRewardEXP)
Teleport(_00E_SC_TharaelREF, NQR01_SC01_PlayerStartFightMarker, true)
_00E_SC_TharaelREF.AddItem(_00E_FS_NQR_TharaelsBow, 1, true)
_00E_SC_TharaelREF.AddItem(_00E_FS_NQR_TharaelsArrows, 55, true)
_00E_SC_TharaelREF.Disable()
if !bDeclined
PlayerREF.AddItem(_01E_FS_TeleportrolleUnterstadt, 3)
FS_NQR02.SetCurrentStageID(5)
EndIf
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
GlobalVariable Property AllowIdleChatter Auto
int __Config_iBattle01_Reward = 150
int __Config_iBattle02_Reward = 250
int __Config_iBattle03_Reward = 350
int __Config_iBattle04_Reward = 450
int __Config_iBattle05_Reward = 550
int __Config_iBattle01_expReward = 150
int __Config_iBattle02_expReward = 250
int __Config_iBattle03_expReward = 350
int __Config_iBattle04_expReward = 450
int __Config_iBattle05_expReward = 550
int __Config_iRewardEXP = 1000
Actor Property PlayerREF Auto
Actor Property _00E_SC_TharaelREF Auto
Actor Property _00E_SC_RashaREF Auto
Actor Property FS_NQR01_ArenaGuardREF Auto
Actor Property FS_NQR01_Fistfighter02 Auto
Actor Property FS_NQR01_PitFighterFacadeParentREF Auto
Actor Property FS_NQR01_SC8_IAmInTheWayRatREF Auto
; 1: The Destroyer / Deathviper
; 2: The Wanderer / The Wanderer
; 3: The Prophet / The Prophetess
int Property iPlayerNameIndex = 1 Auto Conditional Hidden
Book Property _00E_NQR01_Contract Auto
ImageSpaceModifier Property FadeToBlackIMOD Auto
ImageSpaceModifier Property FadeToBlackHoldIMOD Auto
ImageSpaceModifier Property FadeToBlackBackIMOD Auto
ImageSpaceModifier Property _00E_TeleportImod Auto
ImageSpaceModifier Property _00E_FS_NQR01_TharaelFlashpowderImod Auto
EffectShader Property _00E_EspionageFXS Auto
Scroll Property _01E_FS_TeleportrolleUnterstadt Auto
Quest Property FS_NQR02 Auto
MusicType Property _00E_Music_Combat_BonehunterNoCond Auto
MiscObject Property Gold001 Auto
Message Property _00E_FS_NQR01_Loot Auto
ObjectReference Property NQR01_SC01_PlayerStartFightMarker Auto
ObjectReference Property NQR01_CrowdParentREF Auto
ObjectReference Property FS_NQR01_ReturnFromArenaMarkerREF Auto
ObjectReference Property NQR01_ArenaDoorREF Auto
ObjectReference Property NQR01_SC04_TharaelMarker Auto
ObjectReference Property NQR01_SC01_Battle_04_CageDoor Auto
ObjectReference Property FS_NQR01_TharaelAppearREF Auto
ObjectReference Property NQR01_SC04_RashaRun001 Auto
ObjectReference Property NQR01_SC05_TharelMarker Auto
ObjectReference Property NQR01_SC05_PlayerMarker Auto
ObjectReference Property FS_NQR01_LootChestREF Auto
ObjectReference Property FS_NQR01_Fistfighter01_Marker Auto
ObjectReference Property FS_NQR01_Fistfighter02_Marker Auto
ObjectReference Property FS_NQR01_NavcutREF Auto
ObjectReference Property FS_NQR01_TharaelBeamMarker01 Auto
ObjectReference Property FS_NQR01_Cinematic_OpenerREF Auto
Formlist Property _00E_NQR01_Battle01_Enemies Auto
Formlist Property _00E_NQR01_Battle02_Enemies Auto
Formlist Property _00E_NQR01_Battle03_Enemies Auto
Formlist Property _00E_NQR01_Battle04_Enemies Auto
Formlist Property _00E_NQR01_Battle05_Enemies Auto
Formlist Property _00E_FS_NQR04_ArenaDummyFormlist Auto
MusicType Property _00E_FS_NQR01_ArenaBattleMusic Auto
MusicType Property _00E_FS_Music_Special_Character_Tharael Auto
Idle Property WebIdleExit Auto
Idle Property IdleMagic_01 Auto
Idle Property _00E_IdleThrow Auto
Idle Property IdleTake Auto
Actor Property _00E_NQR01_Battle01_Parent Auto
Actor Property _00E_NQR01_Battle02_Parent Auto
Actor Property _00E_NQR01_Battle03_Parent Auto
Actor Property _00E_NQR01_Battle05_Parent Auto
Actor Property NQR01_Battle04_EnemyREF Auto
Actor Property FS_NQR01_Battle05_CageOpenerREF Auto
GlobalVariable Property _00E_FS_NQR01_CurrentlyInCombat Auto
GlobalVariable Property FS_NQR01_Cinematic_Stage_01 Auto
GlobalVariable Property FS_NQR01_Cinematic_Stage_02 Auto
GlobalVariable Property _00E_FS_NQR01_IsCommentatorTalking Auto
GlobalVariable Property _00E_TeleportGlobal Auto
ReferenceAlias Property ArenaBattle_04_Enemy Auto
ReferenceAlias Property ArenaBattle_05_Enemy Auto
VisualEffect Property _00E_A2_GhostwalkTeleportVFX Auto
VisualEffect Property _00E_A2_GhostwalkTeleportReappearVFX Auto
Explosion Property _00E_A2_GhostwalkImpactExplosion Auto
Sound Property _00E_A2_Ghostwalk_TeleportSound Auto
Sound Property _00E_Crowd_MQ14CheerM Auto
Sound Property _00E_NPCOorbaya_IdleIntimidateM Auto
Sound Property _00E_NPCOorbaya_IdleScreamM Auto
Sound Property MAGPowerRacialPacifyFire Auto
Sound Property WPNBowFire Auto
Sound Property WPNImpactArrowVsFlesh Auto
Scene Property NQR01_SC01_ArenaBattle_01 Auto
Scene Property NQR01_SC01_ArenaBattle_02 Auto
Scene Property NQR01_SC01_ArenaBattle_03 Auto
Scene Property NQR01_SC01_ArenaBattle_04 Auto
Scene Property NQR01_SC01_ArenaBattle_05 Auto
Scene Property NQR01_SC04_Tharael Auto
Scene Property NQR01_SC05_Explanation Auto
Weapon Property _00E_FS_NQR_TharaelsBow Auto
Ammo Property _00E_FS_NQR_TharaelsArrows Auto
GlobalVariable Property _00E_FS_Theriantrophist_AllowTemporaryTransform Auto
; ==========================CINEMATIC=========================
Actor Property FS_NQR01_Cinematic_Fake_Tharael_01 Auto
Actor Property FS_NQR01_Cinematic_Fake_Tharael_02 Auto
Actor Property FS_NQR01_Cinematic_GiantREF Auto
float TargetAngleX
float TargetAngleY
float TargetAngleZ
float EndLocX
float EndLocY
float EndLocZ
bool bAnimationFired
bool bSecondAnimation
Idle Property pa_1HMKillMoveGiantA Auto
Idle Property GiantRecoilLarge Auto
Idle Property idleForceDefaultState Auto
ImpactDataSet Property PHYBodyDragon Auto
Faction Property PlayerAlliesFaction Auto
Weapon Property _00E_FS_NQR05_Tharael_Dagger Auto
Explosion Property _00E_FXDustExplosionBig Auto
EffectShader Property _00E_BloodyFXShader Auto
EffectShader Property _00E_FS_NQR05_TharaelMaterializeFXS Auto
EffectShader Property _00E_FS_Tharael_DematerializeFXS Auto
MusicType Property _00E_FS_NQR01_TharaelIntro Auto
ImageSpaceModifier Property _00E_FS_NQR05_TharaelTeleportShock Auto
ImageSpaceModifier Property _00E_FS_NQR05_TharaelTeleportShockSmallIMOD Auto
ObjectReference Property FS_NQR01_Tharael_Teleport_01 Auto
ObjectReference Property FS_NQR01_Tharael_Teleport_02 Auto
ObjectReference Property FS_NQR01_Tharael_Teleport_Withdraw Auto
ObjectReference Property FS_NQR01_Cinematic_GiantOriginMarker Auto
Sound Property _00E_NPCOorbaya_HitHeavyM Auto
Sound Property _00E_NPCOorbaya_IdleTauntM Auto
Sound Property _00E_NPCOorbaya_HitM Auto
Sound Property WPNImpactBladeVsFlesh Auto
Sound Property _00E_NPCOorbaya_DeathM Auto
Sound Property MAGIllusionReleaseAimedSDM Auto
Sound Property MAGIllusionFearExplosionSDM Auto
Sound Property _00E_FS_NQR01_CrowdGaspM Auto
; 0: no talk dones
; 1: GiveRewardBattle05 done
; 2: everything done, no more talking with Rasha
Int Property bAfterBattle05TalkStage = 0 Auto Conditional Hidden
SPELL Property _00E_FS_NQR05_SlowMotionSP Auto
Sound Property _00E_FS_NQR05_SlowMotion_IntroM Auto
Sound Property _00E_FS_NQR05_SlowMotion_OutroM Auto