Oblivion Game Data

Select game:

Search:

Select a record type:

SEThadonScript (0x000171b6)

  • Record Type: SCPT
  • Editor ID: SEThadonScript
  • Form ID: 0x000171b6
  • Source File: Oblivion.esm.mod
  • Patch Status: FormID has not been modified.
Parameter Value
SCTX
scn SEThadonScript

short CleanUp				;A Doonce variable for cleaning up Thadon's Meal
short Speech				;Fires off Thadon's Death Speech
short ThadonTalk			;For use with Thadon's Timer for Death Speech
short ThadonMad			;For use with Thadon's Timer for Anger Talk in SE07A

float ThadonDeathTimer	;Thadon's Timer to delay stage set on death
float ThadonTalkTimer	;Thadon's Timer for Death Speech
float ThadonFinalDeathTimer ;"
float ThadonMadTalkLength		;Thadon's timer for the delay of lines and events in his Anger Talk in SE07A
float ThadonTimer			;A float for the artifical delay in Thadon's appearance before his Anger Talk in SE07A
float ThadonTimer2		;A float for the artifical delay in Thadon's appearance before his Anger Talk in SE07A

Begin OnActivate
	If GetDead == 1 && IsActionRef Player == 1 && GetStage SE07B <= 40 && GetStageDone SE07B 5 == 1
		Player.AddItem SE07ThadonBlood 1
	Else
		Activate
	EndIf
End	


; The following 4 OnPackage Blocks handle the resetting of Thadon's Meal every day at the appropriate times.

begin OnPackageEnd SE07BThadonDies

	if ( Speech == 0 )
		if ( GetStage SE07B >= 35 )
			SetEssential SEThadon 0
			Set Speech to 1
		endif
	endif

end

begin OnDeath

	; this sets the SE12 variables if he is the traitor
	if GetQuestRunning SE12 == 1
		set SE12.TraitorDead to 1
		; which pool is still ordered?
		if SE12.ManiaPoolOrdered == 1
			; means we're at Mania side
			if SE12.ManiaPriestsDead >= SE12.ManiaPriestsCount
				SE12PoolManiaRef.activate SEThadonRef 1
				setstage SE12 150
			endif
		else
			; means we're at Dementia side
			if SE12.DementiaPriestsDead >= SE12.DementiaPriestsCount
				SE12PoolDementiaRef.activate SEThadonRef 1
				setstage SE12 160
			endif
		endif
	endif

	If GetStage SE07B <= 45
		SEWideEyeRef.PickIdle
		SEGundlarRef.PickIdle
	EndIf
end

; taunt at the beginning of combat in SE12
begin OnStartCombat player
	if getincell XPGloomstonePassage == 1
		sayto player SE12TraitorTaunts
		set SE12.TraitorTalk to 2
	endif
end

Begin OnAlarm 3 Player
	if SE12.TraitorTalk == 0
		set SE12.TraitorTalk to 1
	endif
end

begin gamemode

;Set SE04 Stage 10 after player has talked to Thadon at the beginning
;Necessary so that player gets pop-up and can select this as Active Quest instead of SE04Shell

	if ( GetStageDone SE04 10 == 0 )
		if ( SE04.Stage10Update == 1 )
			SetStage SE04 10
		endif
	endif



;For use with SE07A This kicks off the end speech

	if ( GetStage SE07A >= 40 ) && ( SE07A.ThadonMove == 1 )
		DisablePlayerControls
		SEThadonRef.Enable
		SE07SaintEnd01Ref.Enable
		SE07SaintEnd02Ref.Enable
;		SEThadonRef.Evp
;		SE07SaintEnd01Ref.Evp
;		SE07SaintEnd02Ref.Evp
		Set ThadonTimer to 1
		SEDerveninRef.Evp
		SEArctusRef.Evp
		Set SE07A.ThadonMove to 2
	endif

	if ( SE07A.ThadonMove == 2 )
		if ( ThadonTimer > 0 )
			Set ThadonTimer to ( ThadonTimer - GetSecondsPassed )
		else
			SE07ThadonSpeaks.Say SE07AThadonShout 1 SEThadon 1
			Set ThadonTimer2 to 6
			Set SE07A.ThadonMove to 3
		endif
	endif

	if ( SE07A.ThadonMove == 3 )
		if ( ThadonTimer2 > 0 )
			Set ThadonTimer2 to ( ThadonTimer2 - GetSecondsPassed )
		else
			Set SE07A.ThadonMove to 4
		endif
	endif
			
	if ( GetStage SE07A >= 40 ) && ( SE07A.ThadonMove == 4 )
		if ( ThadonMad == 0 ) && ( ThadonMadTalkLength <= 0 )
			Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout
			SESheogorathRef.Sayto SEThadonRef SE07ASheoShout 1
			Set ThadonMad to 1
		elseif ( ThadonMad == 1 ) && ( ThadonMadTalkLength <= 0 )
			Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout02
			SESheogorathRef.Sayto SEThadonRef SE07ASheoShout02 1
			Set ThadonMad to 2
		elseif ( ThadonMad == 2 ) && ( ThadonMadTalkLength <= 0 )
			Set ThadonMadTalkLength to SESheogorathRef.Say SE07ASheoShout03
			SESheogorathRef.Sayto SEThadonRef SE07ASheoShout03 1
			Set ThadonMad to 3
		elseif ( ThadonMad == 3 ) && ( ThadonMadTalkLength <= -6.5 )
			Set SE07A.ThadonMove to 5
			Set ThadonMad to 4
		endif
	endif

	if ( ThadonMad > 0 ) && ( ThadonMad < 4 )
		Set ThadonMadTalkLength to ThadonMadTalkLength - GetSecondsPassed
	endif

	if ( GetStage SE07A >= 40 ) && ( SE07A.Convo != 12 ) && ( SE07A.ThadonMove == 5 )
		startconversation SESheogorathRef SE07AThadonLeaves
		Set SE07A.ThadonMove to 6
	endif

;This kicks off end part of SE07B

	if ( Player.GetDistance SEThadonRef < 500 )
		if ( SE07B.OffScreenKill == 0 )
			if ( GetStage SE07B >= 30 )
				if ( SE07B.Serves == 2 )
					Set CleanUp to 0
					SetStage SE07B 35
				endif
			endif
		endif
	endif

;Thadon's Death Speech

	if ( Speech == 1 )
		if ( ThadonTalk == 0 ) && ( ThadonTalkTimer == 0 )
			Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech01
			SEGundlarRef.Look SEThadonRef
			SEWideEyeRef.Look SEThadonRef
			SEThadonRef.Say SE07BThadonDeathSpeech01 1
			Set ThadonTalk to 2
		elseif ( ThadonTalk == 2 ) && ( ThadonTalkTimer <= 0 )
			Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech02
			Pickidle
			SEThadonRef.Say SE07BThadonDeathSpeech02 1
			Set ThadonTalk to 3
		elseif ( ThadonTalk == 3 ) && ( ThadonTalkTimer <= 0 )
			Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech03
			SEThadonRef.Say SE07BThadonDeathSpeech03 1
			Set ThadonTalk to 4
		elseif ( ThadonTalk == 4 ) && ( ThadonTalkTimer <= 0 )
			Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech04
			Pickidle
			SEThadonRef.Say SE07BThadonDeathSpeech04 1
			Set ThadonTalk to 5
		elseif ( ThadonTalk == 5 ) && ( ThadonTalkTimer <= 0 )
			Set ThadonTalkTimer to SEThadonRef.Say SE07BThadonDeathSpeech05
			Pickidle
			SEThadonRef.Say SE07BThadonDeathSpeech05 1
			Set ThadonTalk to 6
		elseif ( ThadonTalk == 6 ) && ( ThadonTalkTimer <= 0 )
			Pickidle
			SEGundlarRef.Evp
			SEWideEyeRef.Evp
			Set ThadonDeathTimer to 5
			Set ThadonTalk to 7
		endif
	endif


	if ( ThadonTalk > 0 ) && ( ThadonTalk < 7 )
		Set ThadonTalkTimer to ThadonTalkTimer - GetSecondsPassed
	endif

	if ( ThadonTalk == 7 )
		if ( ThadonDeathTimer > 0 )
			Set ThadonDeathTimer to ThadonDeathTimer - GetSecondsPassed
		else
			Kill
			Set ThadonFinalDeathTimer to 3
			Set ThadonTalk to 8
		endif
	endif

	if ( ThadonTalk == 8 )
		if ( ThadonFinalDeathTimer > 0 )
			Set ThadonFinalDeathTimer to ThadonFinalDeathTimer - GetSecondsPassed
		else
			SetStage SE07B 40
			Set ThadonTalk to 9
		endif
	endif
	
	if SE12.TraitorTalk == 1
		if getincell XPGloomstonePassage == 1 && GetDead == 0
			if ThadonTalkTimer > 0
				set ThadonTalkTimer to ThadonTalkTimer - getSecondsPassed
			else
				; taunt player
				if IsInCombat == 1
					; turn off taunts when he enters combat
					set SE12.TraitorTalk to 2
					setav aggression 50
				endif
				; taunt player
				set ThadonTalkTimer to sayto player SE12TraitorTaunts 1
				set ThadonTalkTimer to ThadonTalkTimer + 1
			endif
		endif	
	endif

end

begin OnPackageEnd SE07AExitsSacellum

	if ( GetStage SE07A >= 40 )
		SEThadonRef.Disable
		SE07SaintEnd01Ref.Disable
		SE07SaintEnd02Ref.Disable
		EnablePlayerControls
		SetStage SE07A 45
	endif

end

Database last updated 11/02/2011
SCPT records last updated 10/31/2011