TR_m2_q_TheRiftMage
TR_Mainland.esm
Variables
11
Local Variables
clockStart
towerWalk
cantTalk
walkDay
riftOpen
T_Local_NPC
NoLore
TR_Map
T_Local_NoLore
timer
walkHour
Source
1begin TR_m2_q_TheRiftMage
2
3; ai behavior for Ralam Othravel
4
5float timer
6short clockStart
7short towerWalk
8short cantTalk
9short walkDay
10float walkHour
11short riftOpen
12short T_Local_NPC
13short NoLore
14short TR_Map
15short T_Local_NoLore
16
17if ( MenuMode == 1 )
18 return
19endif
20
21if ( clockStart == 1 )
22 set timer to ( timer + GetSecondsPassed )
23endif
24
25; start the walk to the tower when dialogue sets variable
26
27if ( towerWalk == 1 )
28 set cantTalk to 1
29 set walkDay to DaysPassed
30 set walkHour to GameHour
31 ; casts Water Walking on self to cross river
32 Cast "Water Walking" "TR_m2_Ralam_Othravel"
33 AITravel 297280 10635 37 1 ; TR_m2_MARK_Ralam
34 set towerWalk to 2
35
36; Ralam walks to ritual chamber after the player accepts the
37; quest, also puts on helmet
38
39elseif ( towerWalk == 7 )
40 if ( GetJournalIndex "TR_m2_wil_TheRift" >= 20 )
41 set cantTalk to 1
42 set walkDay to DaysPassed
43 set walkHour to GameHour
44 AITravel 6203 3318 14563 1 ; TR_m2_MARK_Ralam
45 AddItem "dust_adept_helm" 1
46 set towerWalk to 8
47 endif
48endif
49
50; change behavior whenever a travel is complete
51
52if ( towerWalk == 2 )
53 if ( getDistance TR_m2_q_TheRiftDest1 < 100 )
54 AITravel 297922 10257 265 1 ; TR_m2_MARK_Ralam
55 set towerWalk to 3
56 endif
57elseif ( towerWalk == 3 )
58 if ( getDistance TR_m2_q_TheRiftDest2 < 100 )
59 AITravel 298851 12187 266 1 ; TR_m2_MARK_Ralam
60 set towerWalk to 4
61 endif
62elseif ( towerWalk == 4 )
63 if ( getDistance TR_m2_q_TheRiftDest3 < 100 )
64 ; enter the tower
65 "TR_m2_q_TheRiftTowerDoor"->unlock
66 "TR_m2_q_TheRiftTowerDoor"->PlaySound3D, "Door Heavy Open"
67 PositionCell 4216 2516 15073 5400 "Ald Volos" ; TR_m2_MARK_Ralam
68 AITravel 5854 2880 15072 1 ; TR_m2_MARK_Ralam
69 set towerWalk to 5
70 endif
71elseif ( towerWalk == 5 )
72 if ( getDistance TR_m2_q_TheRiftDest4 < 100 )
73 AITravel 5339 3096 15327 1 ; TR_m2_MARK_Ralam
74 set towerWalk to 6
75 endif
76elseif ( towerWalk == 6 )
77 if ( getDistance TR_m2_q_TheRiftDest5 < 100 )
78 ; made it to the tower's dome
79 set cantTalk to 0
80 SetAngle Z 45
81 AIWander 0 5 0 60 20 20 20
82 set towerWalk to 7
83 endif
84elseif ( towerWalk == 8 )
85 if ( getDistance TR_m2_q_TheRiftDest6 < 100 )
86 ; arrived at ritual chamber
87 set cantTalk to 0
88 SetAngle Z 135
89 AIWander 0 5 0 60 20 20 20
90 set towerWalk to 9
91 endif
92endif
93
94; if player waits, complete AITravel
95
96if ( towerWalk >= 1 )
97 if ( towerWalk <= 6 )
98 if ( DaysPassed > walkDay )
99 set walkHour to ( walkHour - 24 )
100 set walkDay to DaysPassed
101 endif
102 if ( GameHour >= walkHour + 1 )
103 "TR_m2_q_TheRiftTowerDoor"->unlock
104 set cantTalk to 0
105 PositionCell 5339 3096 15327 2700 "Ald Volos" ; TR_m2_MARK_Ralam
106 AIWander 0 5 0 60 20 20 20
107 set towerWalk to 7
108 endif
109 endif
110endif
111
112if ( towerWalk == 8 )
113 if ( DaysPassed > walkDay )
114 set walkHour to ( walkHour - 24 )
115 set walkDay to DaysPassed
116 endif
117 if ( GameHour >= walkHour + 1 )
118 set cantTalk to 0
119 PositionCell 6203 3318 14563 9000 "Ald Volos" ; TR_m2_MARK_Ralam
120 AIWander 0 5 0 60 20 20 20
121 set towerWalk to 9
122 endif
123endif
124
125; activates the rift portal and disappears
126
127if ( GetJournalIndex "TR_m2_wil_TheRift" == 70 )
128 if ( towerWalk != 9 )
129 elseif ( riftOpen == 0 )
130 set cantTalk to 1
131 AiTravel 5757 3031 14598 1 ; TR_m2_MARK_Ralam
132 ;PlaySound "shock area"
133 SetHealth 10000
134 set riftOpen to 1
135 elseif ( riftOpen == 1 )
136 if ( getDistance TR_m2_q_TheRiftDest7 < 50 )
137 Cast "Chameleon" "TR_m2_Ralam_Othravel"
138 StartScript "TR_m2_q_TheRiftHappening"
139 startscript TR_m2_q_TheRiftBk
140 set clockStart to 1
141 set riftOpen to 2
142 endif
143 elseif ( riftOpen == 2 )
144 if ( timer > 1 )
145 "TR_m2_TheRiftCaster"->Cast "Lightning Bolt" "TR_m2_Ralam_Othravel"
146 set riftOpen to 3
147 endif
148 elseif ( riftOpen == 3 )
149 if ( timer > 2 )
150 "TR_m2_TheRiftCaster"->Cast "Lightning Bolt" "TR_m2_Ralam_Othravel"
151 set riftOpen to 4
152 endif
153 elseif ( riftOpen == 4 )
154 if ( timer > 3 )
155 "TR_m2_TheRiftCaster"->Cast "Lightning Bolt" "TR_m2_Ralam_Othravel"
156 set riftOpen to 5
157 endif
158 elseif ( riftOpen == 5 )
159 if ( timer > 4 )
160 FadeOut 1.0
161 PlaySound "shock area"
162 PlaceAtMe sprigganup 1 1 1 ; visual effect
163 PlaySound "Windbag"
164 PlaySound "endboom3"
165 SetChameleon 100
166 set riftOpen to 6
167 endif
168 elseif ( riftOpen == 6 )
169 if ( timer > 6 )
170 FadeIn 1.0
171 Journal "TR_m2_wil_TheRift" 75
172 set riftOpen to 7
173 disable
174 endif
175 endif
176endif
177
178if ( OnDeath == 1 )
179 if ( ScriptRunning "TR_m2_q_TheRiftHappening" )
180 return
181 endif
182 if ( GetJournalIndex "TR_m2_wil_TheRift" >= 20 )
183 if ( GetJournalIndex "TR_m2_wil_TheRift" != 40 )
184 Journal "TR_m2_wil_TheRift" 65
185 set riftOpen to -1
186 set clockStart to 0
187 endif
188 endif
189endif
190
191if ( TR_Map )
192 return
193endif
194
195set TR_Map to 2
196
197End