SCTX |
scn SE06SCRIPT
; Actors
; SEUlfri - Dark Seducer commander
; SEKaneh - Golden Saint commander
; SEMirel - Golden Saint lieutenant
; SE06GoldenSaintWardenSCRIPT -- script on GS warden, used to trigger them to unlock the door
; SE06DarkSeducerWardenSCRIPT -- script on DS warden, used to trigger them to unlock the door
; Objects used by scripts
; SE06DoorSidePassageToDespair - script sets PlayerScout variable
; SE06FlameOfAgnon - script on flame which lights player on fire when he walks into it
; SE06FlameEffectScript - magic effect script, puts shader on player when on fire
; SE06TrigZoneAltarScoutSCRIPT -- script on trigger zones, used to set PlayerScout variables
int DSDeployment ; 0 = main passage, 1 = side passage
int GSDeployment ; 0 = main passage, 1 = side passage
int PlayerScout ; 1 = player has scouted Dark Seducer position (i.e. is aware of which passage they are defending) -- set when both PlayerScoutMain and PlayerScountSide are 1
int convStage ; used to track conversation stage
int ManiaSolution ; 1 = player solved this quest in a "Mania" way; 0 = Dementia solution
int LastStage ; set by quest stages to the _last_ stage set (for middle part). Helps quest targets work right with multiple paths.
int TotalSaints ; how many saints to kill before victory -- initialized in stage 5
int TotalSeducers ; how many seducers to kill before victory - init in stage 5
int DeadSaints ; count number killed
int DeadSeducers ; count number killed
float timer ; timer for speeches
float fQuestDelayTime ; Makes the script run more frequently than every 5 seconds
short maniagateVAR ;handles opening one of the two gates for the sacellum
short dementiagateVAR
short SheoMove ;handles moving Sheogorath to the Sacellum when flame is ignited
short SheoIntroVAR ;handles Sheo's intro speech
int resetAggression ; set to 1 when GS aggro set to 0
; set to 2 when GS aggro set back to 10
begin gamemode
if timer > 0
set timer to timer - getSecondsPassed
else
; trigger certain events:
; Ulfri's speech done
if getstagedone SE06 70 == 1 && getstagedone SE06 71 == 0
setstage SE06 71
endif
; Kaneh's speech done
if getstagedone SE06 50 == 1 && getstagedone SE06 51 == 0
setstage SE06 51
endif
; *****************************************************************************
; try to get Saints to progress past the first ambush room in side passage
; set aggression back if it got set to 0
if resetAggression == 1
SE06GoldenSaint01REF.setav aggression 10
SE06GoldenSaint02REF.setav aggression 10
SE06GoldenSaint03REF.setav aggression 10
SE06GoldenSaint04REF.setav aggression 10
set resetAggression to 2
endif
if getStage SE06Battle >= 100 && getStage SE06Battle < 120
if resetAggression == 0
; pick 4 saints and set aggression to 0, stopcombat to get them to go
SE06GoldenSaint01REF.setav aggression 0
SE06GoldenSaint02REF.setav aggression 0
SE06GoldenSaint03REF.setav aggression 0
SE06GoldenSaint04REF.setav aggression 0
SE06GoldenSaint01REF.stopcombat
SE06GoldenSaint02REF.stopcombat
SE06GoldenSaint03REF.stopcombat
SE06GoldenSaint04REF.stopcombat
set resetAggression to 1
set timer to 60
endif
endif
; *****************************************************************************
endif
; trigger conversation between Kaneh and Mirel
if convStage == 0
; quest is started, haven't agreed to help either side yet
if getstage SE06 > 0 && getstagedone SE06 50 == 0 && getstagedone SE06 70 == 0 && getstagedone SE06 35 == 0 && getstagedone SE06 30 == 0
if player.getdistance SEKanehRef < 1100 && player.getdistance SEMirelRef < 1100
SEMirelRef.startconversation SEKanehRef SE06KanehMirel
endif
endif
endif
; trigger battle stages
if getstage SE06 == 100
if GSDeployment == 0
; main passage attack
if SEKanehRef.getincell XPCylarne01 == 1 && ( SEKanehRef.getdistance player < 750 || getstagedone SE06 70 == 1 )
setstage SE06Battle 5
endif
else
; side passage attack
if SEKanehRef.getincell XPCylarne02 == 1 && SEKanehRef.getdistance player < 750
setstage SE06Battle 100
endif
endif
endif
;open gates in sacellum
if ( maniagateVAR == 1 )
SE06TorchGateManiaRef.playgroup forward 1
set maniagateVAR to 2
endif
if ( dementiagateVAR == 1 )
SE06TorchGateDementiaRef.playgroup forward 1
set dementiagateVAR to 2
endif
end |