-
Notifications
You must be signed in to change notification settings - Fork 20
/
Heretic03.xml
193 lines (149 loc) · 5 KB
/
Heretic03.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<?xml version="1.0" ?>
<TranscendenceModule>
<!-- Mission: Heretic Settlement ===========================================
This mission provides the rumors and directions from the Commonwealth
settlement in Heretic
EXTRA DATA
======================================================================== -->
<MissionType UNID="&msHereticSettlement;"
name= "Heretic Settlement"
attributes= "commonwealthSettlement"
level= "10"
maxAppearing= "1"
>
<Events>
<OnCreate>
(switch
; This mission only works in Heretic
(!= (sysGetNode) 'G2)
(msnDestroy gSource)
; Prevent duplicates (maxAppearing only counts accepted missions)
(msnFind "* +unid:&msHereticSettlement;;")
(msnDestroy gSource)
; Set up the mission
(block Nil
)
)
</OnCreate>
<OnDirections>
(block (
(targetObj (objGetObjByID (msnGetData gSource 'targetID)))
)
(objSetKnown targetObj)
(objSetIdentified targetObj)
(objSetShowAsDestination targetObj 'autoClearOnDock)
)
</OnDirections>
<OnCanBrief>
(block (
(theSE (sysFindObject Nil "sAN +svalbardExplorer;"))
; Find all stations which have not yet given a mission
(researchStations (filter (sysFindObject Nil "TA +hereticStation;") theStation
(not (msnFind theStation "Sar"))
))
(controlPoint (sysFindObject gSource "TN +hereticControlPoint"))
)
; Set up mission state
(switch
(not (msnFind theSE "Sar"))
(block Nil
(msnSetData gSource 'targetID (objGetID theSE))
(msnSetData gSource 'state 'svalbard)
)
researchStations
(block (
(targetObj (@ researchStations (modulo (divide (unvGetTick) 3600) (count researchStations))))
)
(msnSetData gSource 'targetID (objGetID targetObj))
(msnSetData gSource 'targetName (objGetName targetObj 'article))
(msnSetData gSource 'state 'stations)
)
(objGetData controlPoint 'stationMaster)
(block Nil
(msnSetData gSource 'targetID (objGetID controlPoint))
(msnSetData gSource 'state 'controlPoint)
)
(block Nil
(msnSetData gSource 'targetID Nil)
(msnSetData gSource 'state 'allDead)
)
)
; Return Nil so normal briefing resumes
Nil
)
</OnCanBrief>
</Events>
<Language>
<!-- Code Points -->
<Text id="Briefing">
(block (
(state (msnGetData gSource 'state))
)
(list
{
textID: (switch
(= state 'svalbard) 'textSvalbard
(= state 'stations) 'textStations
(= state 'controlPoint) 'textControlPoint
'textAllDead
)
actions: (if (msnGetData gSource 'targetID)
(list
{ labelID: 'actionTell nextPage: 'directions }
{ labelID: 'actionDone nextPage: 'missionDecline }
)
(list
{ labelID: 'actionDone nextPage: 'missionDecline }
)
)
data: {
stationName: (msnGetData gSource 'targetName)
}
}
{
id: 'directions
textID: 'textDirect
nextPage: 'missionDecline
nextCode: (lambda () (msnFireEvent (scrGetData gScreen 'missionObj) 'OnDirections))
}
Nil ; Blank entry to prevent forced accept/decline options
)
)
</Text>
<!-- Text -->
<Text id="Intro">
The station master greets you:
"Welcome to the Heretic Archipelago! Are you a researcher? We get all kinds
of scientists here—this is the Edge of Human Space, after all—so
if you are a researcher, you've come to the right place, certainly!"
</Text>
<Text id="textSvalbard">
"In fact, the Svalbard Explorer just arrived here all the way from St. Kats.
They're studying the Iocrym and their confounded quarantine, but I think
they might need some help."
</Text>
<Text id="textStations">
"There are lots of scientific outposts here in the archipelago, but if you're
looking to help, you could visit %stationName%, certainly. They're always
asking for help!"
</Text>
<Text id="textControlPoint">
"Matter of fact, I hear that some scientists even set up a base on an Iocrym
station! Can you believe that? I'd like to know what the Iocrym think of
that, certainly!"
</Text>
<Text id="textAllDead">
"'Course I don't really know what those scientists are up to. Come to think
of it, I haven't seen any of them around here lately. I wonder if they poked
their telescopes into something they weren't supposed to. I don't think the
Iocrym like to be spied on, certainly! I don't think they like it at all!"
</Text>
<Text id="textDirect">
"Well, I'm sure I've got their coordinates here somewhere..."
"Here they are! I knew I had them! I'll program them into your ship's
computer and you should be able to find them, certainly."
</Text>
<String id="actionTell">"[T]ell me how to find it."</String>
</Language>
</MissionType>
</TranscendenceModule>