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.
 
 
 

375 lines
8.9 KiB

Scriptname _00E_FS_NQR03_Functions extends Quest
Import _00E_QuestFunctions
Import Utility
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnUpdateGameTime()
SetStage(10)
EndEvent
Event OnUpdate()
Game.EnablePlayerControls()
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function SetUp()
SetObjectiveDisplayed(5)
RegisterForSingleUpdateGameTime(24)
EndFunction
Function UnlockDoorEnableTharael()
FS_NQR03_BardREF.Enable()
FS_NQR03_BardREF.BlockActivation()
FS_NQR03_SC99_BardSC.ForceStart()
FS_NQR03_TharaelREF.Enable()
FS_NQR03_TharaelREF.MoveTo(FS_NQR03_SC01_TharaelMarkerREF)
FS_NQR03_TharaelREF.SetOutfit(_00E_FS_TharaelOutfit)
FS_NQR03_TharaelREF.RemoveItem(_00E_FS_NQR05_Tharael_Dagger, 2)
FS_NQR03_LethoREF.Enable()
SetObjectiveDisplayed(5, False)
SetObjectiveDisplayed(10)
FS_NQR03_DoorREF.Lock(False)
FS_NQR03_SC01_TharaelShedDiscussion.ForceStart()
FS_NQR03_SC03_SecretDoorREF.BlockActivation(True)
EndFunction
Function TharaelFailsave()
if FS_NQR03_TharaelREF.IsDisabled()
FS_NQR03_TharaelREF.Enable()
FS_NQR03_TharaelREF.MoveTo(FS_NQR03_SC01_TharaelMarkerREF)
EndIf
if !FS_NQR03_SC01_TharaelShedDiscussion.IsPlaying()
FS_NQR03_SC01_TharaelShedDiscussion.ForceStart()
endif
EndFunction
Function DisableBard()
FS_NQR03_BardREF.Disable()
FS_NQR03_SC99_BardSC.Stop()
EndFunction
Function OpenDoor()
FS_NQR03_SC03_SecretDoorREF.SetOpen(True)
EndFunction
Function PlayerEquipRobes()
PlayerREF.AddItem(_00E_FS_RhalataRobes_NoviceWithHood, 1)
PlayerREF.EquipItem(_00E_FS_RhalataRobes_NoviceWithHood)
EndFunction
Function SetUpBrotherSorrow()
SetObjectiveCompleted(10)
SetObjectiveDisplayed(15)
if !FS_NQR03_SC01_TharaelShedDiscussion.IsPlaying()
FS_NQR03_SC01_TharaelShedDiscussion.ForceStart()
EndIf
FS_NQR03_RhalataTempleDoorREF.Lock(False)
FS_NQR03_TharaelREF.AddItem(_00E_FS_NQR05_Tharael_Dagger, 2)
EndFunction
Function TeleportBrotherGalang()
Levelsystem.TeleportNPC(FS_NQR03_LethoREF, FS_NQR03_BrotherGriefMarkerREF)
SetStage(20)
SetObjectiveCompleted(10)
SetObjectiveDisplayed(15)
EndFunction
Function StartSC02()
FS_NQR03_SC02_TempleScene_01.ForceStart()
EndFunction
Function RemovePages()
FS_NQR_SQ_01.SetStage(5)
if PlayerREF.GetItemCount(_00E_FS_NQR02_MissingPages) >= 1
PlayerREF.RemoveItem(_00E_FS_NQR02_MissingPages, 1)
EndIf
FS_NQR03_RhalataTemple.SetName(_00E_sRhalataTempleName.GetName())
EndFunction
Function ModDistrust(int iAmount)
_00E_FS_NQR_RhalataMistrust.Mod(iAmount)
EndFunction
Function AddNote()
PlayerREF.AddItem(_00E_FS_NQR03_SeerMoneyNote, 1)
EndFunction
Function StartSC04()
SetObjectiveDisplayed(55)
FS_NQR03_SC04_TempleScene_02.ForceStart()
EndFunction
Function AddRewardMoney()
PlayerREF.RemoveItem(_00E_FS_NQR03_SeerMoneyNote, 1)
PlayerREF.AddItem(Gold001, 300)
SetObjectiveCompleted(55)
EndFunction
Function UpdateObjectives_01()
SetObjectiveCompleted(15)
SetObjectiveDisplayed(20)
EndFunction
Function TeleportPlayer()
Levelsystem.TeleportNPC(FS_NQR03_BrotherGreedREF, FS_NQR03_BrotherGreedMarkerREF)
FS_NQR03_BrotherGreedREF.EvaluatePackage()
Levelsystem.TeleportPlayer(FS_NQR03_DarkValleyMarkerREF)
SetStage(75)
RegisterForSingleUpdate(2)
EndFunction
Function GivePlayerNote()
PlayerREF.AddItem(_00E_FS_NQR03_BrotherGreedNote, 1)
SetObjectiveCompleted(20)
SetObjectiveDisplayed(25)
Utility.Wait(2)
EndFunction
Function UpdateObjectives_02()
SetObjectiveCompleted(25)
SetObjectiveDisplayed(30)
EndFunction
Function UpdateObjectives_03()
SetObjectiveCompleted(30)
FS_NQR03_SisterPrideREF.SetGhost(False)
if GetStage() == 90
SetObjectiveDisplayed(40)
Elseif GetStage() == 95
SetObjectiveDisplayed(40)
SetObjectiveDisplayed(45)
if PlayerREF.GetItemCount(HumanHeart) < 1
SetObjectiveDisplayed(60)
endif
EndIf
EndFunction
Function ClearPlayerAlias()
FS_NQR03_BrotherGreedREF.SetOutfit(_00E_FS_TharaelOutfit)
SetObjectiveCompleted(60)
EndFunction
Function TakeHeartReal()
PlayerREF.AddItem(_00E_FS_NQR03_BrotherGreedNote_02, 1)
ModDistrust(-10)
UpdateStageAndObjectivesGivenHeart()
EndFunction
Function TakeHeartFake()
PlayerREF.AddItem(_00E_FS_NQR03_BrotherGreedNote_02, 1)
ModDistrust(10)
FS_NQR03_GivenFakeHeart.SetValueInt(1)
UpdateStageAndObjectivesGivenHeart()
EndFunction
Function UpdateStageAndObjectivesGivenHeart()
SetStage(100)
if IsObjectiveDisplayed(45) && !IsObjectiveDisplayed(40)
SetObjectiveCompleted(45)
Elseif IsObjectiveDisplayed(40) && !IsObjectiveDisplayed(45)
SetObjectiveCompleted(40)
Else
SetObjectiveCompleted(40)
SetObjectiveCompleted(45)
EndIf
SetObjectiveDisplayed(50)
EndFunction
Function TeleportBrotherGreed()
Levelsystem.TeleportNPC(FS_NQR03_BrotherGreedREF, FS_NQR03_TeleportBackMarkerBrotherGreed)
EndFunction
Function TeleportPlayerAndBrotherGreed()
Levelsystem.TeleportNPC(FS_NQR03_BrotherGreedREF, FS_NQR03_TeleportBackMarkerBrotherGreed)
FS_NQR03_BrotherGreedREF.EvaluatePackage()
Levelsystem.TeleportPlayer(FS_NQR03_TeleportBackMarkerPlayer)
RegisterForSingleUpdate(2)
SetObjectiveCompleted(50)
SetObjectiveDisplayed(51)
EndFunction
Function RemoveHeart()
If FS_NQR03_GivenFakeHeart.GetValueInt() == 1
PlayerREF.RemoveItem(HumanHeart, 1)
Else
PlayerREF.RemoveItem(_00E_FS_NQR03_NessahsHeart, 1)
EndIf
EndFunction
Function FinishUp()
PlayerREF.AddItem(_01E_FS_TeleportrolleRhalataTemple, 3)
FS_NQR03_DoorREF.Lock(True)
SetObjectiveCompleted(50) ; in case the player didn't teleport back with the brother greed
SetObjectiveCompleted(51)
Levelsystem.RemoveSilence()
Levelsystem.RemoveCombatSoundtracks()
Levelsystem.SetAllowIdleChatter(True)
FS_NQR03_SC03_SecretDoorREF.SetOpen(False)
FS_NQR03_SC03_SecretDoorREF.BlockActivation(True)
FS_NQR03_TharaelREF.Disable()
FS_NQR03_SphereREF.Enable()
Levelsystem.GiveEP(iRewardEXP)
FS_NQR04.SetStage(5)
EndFunction
Function ClearAliasesEnvironmentScene02()
FS_NQR03_SC02_Flavour_NoviceFemale.Clear()
FS_NQR03_SC02_Flavour_VoiceMale.Clear()
EndFunction
Function ClearAliasesEnvironmentScene03()
FS_NQR03_Flavour_03_Akolythe_Male.Clear()
FS_NQR03_Flavour_03_Akolythe_Female.Clear()
EndFunction
Function ClearAliasesEnvironmentScene01()
FS_NQR03_SC01_Scion.Clear()
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
ReferenceAlias Property FS_NQR03_SC02_Flavour_VoiceMale Auto
ReferenceAlias Property FS_NQR03_SC02_Flavour_NoviceFemale Auto
ReferenceAlias Property FS_NQR03_Flavour_03_Akolythe_Male Auto
ReferenceAlias Property FS_NQR03_Flavour_03_Akolythe_Female Auto
ReferenceAlias Property FS_NQR03_SC01_Scion Auto
int Property iRewardEXP = 1000 Auto Hidden
int Property iPagesRewardEXP = 250 Auto Hidden
_00E_QuestFunctions Property Levelsystem Auto
Actor Property FS_NQR03_TharaelREF Auto
Actor Property FS_NQR03_BrotherGreedREF Auto
Actor Property FS_NQR03_LethoREF Auto
Actor Property FS_NQR03_SisterPrideREF Auto
Actor Property PlayerREF Auto
Actor Property FS_NQR03_BardREF Auto
Armor Property _00E_FS_RhalataRobes_NoviceWithHood Auto
Book Property _00E_FS_NQR03_SeerMoneyNote Auto
Book Property _00E_FS_NQR03_BrotherGreedNote Auto
Book Property _00E_FS_NQR03_BrotherGreedNote_02 Auto
Quest Property FS_NQR04 Auto
Quest Property FS_NQR_SQ_01 Auto
ObjectReference Property FS_NQR03_DoorREF Auto
ObjectReference Property FS_NQR03_SC03_SecretDoorREF Auto
ObjectReference Property FS_NQR03_BrotherGriefMarkerREF Auto
ObjectReference Property FS_NQR03_DarkValleyMarkerREF Auto
ObjectReference Property FS_NQR03_BrotherGreedMarkerREF Auto
ObjectReference Property FS_NQR03_TeleportBackMarkerBrotherGreed Auto
ObjectReference Property FS_NQR03_TeleportBackMarkerPlayer Auto
ObjectReference Property FS_NQR03_RhalataTempleDoorREF Auto
ObjectReference Property FS_NQR03_SC01_TharaelMarkerREF Auto
ObjectReference Property FS_NQR03_SphereREF Auto
Outfit Property _00E_FS_TharaelOutfit Auto
Ingredient Property _00E_FS_NQR03_NessahsHeart Auto
Ingredient Property HumanHeart Auto
Scroll Property _01E_FS_TeleportrolleRhalataTemple Auto
GlobalVariable Property _00E_FS_NQR_RhalataMistrust Auto
GlobalVariable Property FS_NQR03_GivenFakeHeart Auto
MiscObject Property _00E_FS_NQR02_MissingPages Auto
MiscObject Property Gold001 Auto
Scene Property FS_NQR03_SC01_TharaelShedDiscussion Auto
Scene Property FS_NQR03_SC02_TempleScene_01 Auto
Scene Property FS_NQR03_SC04_TempleScene_02 Auto
Scene Property FS_NQR03_SC99_BardSC Auto
Weapon Property _00E_FS_NQR05_Tharael_Dagger Auto
Message Property _00E_sRhalataTempleName Auto
Cell Property FS_NQR03_RhalataTemple Auto