This file is indexed.

/usr/share/games/freedroidrpg/dialogs/Kevin.dialog is in freedroidrpg-data 0.15.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
----------------------------------------------------------------------
 * This file is part of Freedroid
 *
 * Freedroid is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Freedroid is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Freedroid; see the file COPYING. If not, write to the 
 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
 * MA 02111-1307 USA
----------------------------------------------------------------------
If you have questions concerning FreedroidRPG, please send an email to:

freedroid-discussion@lists.sourceforge.net


Beginning of new chat dialog for character="XXXXX"
----------------------------------------------------------------------

<FirstTime LuaCode>
	show(0)
	kevin_max_lessons = 6      -- the max number of lessons Kevin is willing to teach
	kevin_lessons_taught = 0   -- the number of lessons Kevin has already taught, initialized with 0
	kevin_next_lesson_cost = 0 -- the training point cost of the upcoming lesson
</LuaCode>

<EveryTime LuaCode>
	if (has_met("Kevin")) then
		tux_says_random(_"Hello.", _"Hi there, Kevin.")
		npc_says_random(_"Well, hello again.", _"Hello hello.", _"Welcome back.")
	end

	if (has_quest(_"A strange guy stealing from town")) and
	   (not done_quest(_"A strange guy stealing from town")) then
		add_xp(100)
		end_quest(_"A strange guy stealing from town", _"Oh, I seem to have found the guy the town guard was raving on about. Better not tell the Red Guards in town or they might force me to assist them in his capture. I'll likely have more use of Kevin and his knowledge here in his house with his computers than in a holding cell in town.")
	end

	if (has_quest(_"And there was light...")) and
	   (done_quest(_"And there was light...")) then
		show(8, 10)
		if (not has_cookie("Kevin_did_And there was light...")) then
			add_cookie("Kevin_did_And there was light...") -- Tux spoke with Kevin after completing the quest "And there was light..."
			update_quest(_"And there was light...", _"Everything *is* back to normal for now, so Kevin doesn't need to spend all his time monitoring the power levels.")
		end
	end

	if (has_cookie("jasmine_sigsegv")) then
		if (has_cookie("kevin_sigtalk")) then hide(20) else show(20) end
	end

	if (not has_cookie("kevins_lawnmower_tux_login_granted")) then
		if (has_cookie("kevins_lawnmower_tux_login")) then
			npc_says(_"Oh, and did you play around with my Lawnmower?")
			show(60, 61)
		end

		if (has_cookie("kevins_lawnmower_tux_login_kevin_attempt")) then
			npc_says(_"Hmm, strange things are happening to my lawnmower.")
			npc_says(_"But I don't have the time right now to take a look at it.")
		end
	end

	show(99)
</LuaCode>
----------------------------------------------------------------------

Nr=0 Text=_"Hello... Oh dear... You look awful... Who did this to you? Did they torture you?"
<LuaCode> 
	npc_says(_"Hi. I haven't eaten and slept very much in the last time so I'm a little hungry and may appear a little tired.")
	npc_says(_"One of the side effects of always deleting all cookies.")
	npc_says(_"Don't worry about me. I'll be fine.")
	npc_says(_"I'm Kevin, a computer security expert.")
	tux_says(_"In other words: You are a hacker.")
	npc_says(_"Eh... I guess you could put it that way, yes.")
	set_bot_name(_"Kevin --- Hacker")
	hide(0) show(30)
</LuaCode>
----------------------------------------------------------------------

Nr=6 Text=_"I'll see after the energy supply now."
<LuaCode>
	npc_says(_"That's great. You can't miss it. It's not hard to find. Enter my garden and find the lower station entrance there.")
	npc_says(_"It would be best not to bother with the resistance on the first level. You only need to take care of the energy supply. And that's on the SECOND level.")
	npc_says(_"I hope you have a laser pistol or something like that, the bots there will rip you apart if you try to approach them.")
	npc_says(_"Best make it quick. I'm already sick of stabilizing the stupid power grid.")
	update_quest(_"And there was light...", _"The entrance is in Kevin's garden. According to Kevin I also don't need to bother with bots on the first level, just go straight for the second level.")
	hide(6, 7)
</LuaCode>
----------------------------------------------------------------------

Nr=7 Text=_"I'm sorry, but I don't think there's anything I could do about that energy supply."
<LuaCode> 
	npc_says(_"Too bad. Now get out of my sight.")
	hide(7)
</LuaCode>
----------------------------------------------------------------------

Nr=8 Text=_"About that project you said you have running..."
<LuaCode>
	if (done_quest(_"A kingdom for a cluster!")) then
		npc_says(_"I've already received the results from the evaluation of my data in the cluster. Good work.")
	else
		npc_says(_"Yes, since the energy supply has been constant, results were much better. I've achieved my goal.")
		npc_says(_"I've obtained secret data on the town surroundings. We'll need a big computer cluster to evaluate it properly.")
		npc_says(_"Once we've evaluated the data, we might find a way to secure the town and ensure our survival. But it's too early to tell yet.")
		npc_says(_"If I only had a suitable cluster. Then we could start data evaluation right away.")
		show(9)
	end
	hide(8)
</LuaCode>
----------------------------------------------------------------------

Nr=9 Text=_"Maybe I can help somehow to find a suitable cluster."
<LuaCode>
	if (has_quest(_"A kingdom for a cluster!")) then 
		npc_says(_"You've already agreed to take my data cube to the cluster. I have no influence on this matter anymore.")
		npc_says(_"The fate of the town now rests in your hands. Take the data cube I gave you to the cluster. Only there can the data be evaluated properly.")
	else
		npc_says(_"That would be great of course. I know that the old town is maintaining a suitable information infrastructure and has had a proper cluster running for some time now.")
		npc_says(_"The only problem is, I can't go back to town. They would probably kill me because of... a misunderstanding.")
		npc_says(_"Also, the cluster is inside of the guard citadel. I hear that only members of the Red Guard are allowed to enter the complex.")
		npc_says(_"But maybe you can arrange that somehow. For me it would be impossible, because of my reputation.")
		npc_says(_"I'll give you the data cube. Take it to the computer cluster administration people. They will know what to do. And don't mention me there.")
		add_quest(_"A kingdom for a cluster!", _"Kevin gave me a cube full of some kind of data. I am supposed to take it to a computer cluster for analysis. Ought to be simple.")
		add_item("Kevin's Data Cube",1)
	end
	hide(9)
</LuaCode>
----------------------------------------------------------------------

Nr=10 Text=_"How about some reward for securing your energy supply area?"
<LuaCode>
	if (has_cookie("Kevin_reward_given")) then
		npc_says_random(_"I've already rewarded you for that. Don't steal my time. I'm busy.", _"I am not as confused as you think. Go away now.")
	else
		npc_says(_"What do you want?")
		topic("Kevin's Reward")
		show(11, 12, 13, 14)
	end
	hide(10)
</LuaCode>
----------------------------------------------------------------------

Nr=11 Text=_"I want to become a hacker." Topic="Kevin's Reward"
<LuaCode>
	npc_says(_"Your desire for information amuses me. Your wish will be granted. I will teach you how to improve your skill in designing hacking programs.")
	npc_says(_"You must know that hacking is an art. It is easy to chop your enemy to bits with an axe or shred it to atoms with a grenade... But hacking requires skill.")
	npc_says(_"Look at this terminal... I am connected to a remote system. A fool would just launch a thousand attacks, but a skilled intruder stops and thinks.")
	npc_says(_"You must know when to hack and when not to hack. You must attack when the enemy is unprepared for you.")
	npc_says(_"Now watch. Observe carefully. See how I enter the system... Yes. Watch the connection glowing, burning like a bright star...")
	npc_says(_"...only to die seconds after, as the system far away collapses under it's own weight... It's done.")
	npc_says(_"That is all I want to show you for now. Maybe later I will teach you something else.")
	improve_program("Hacking")
	next(15)
</LuaCode>
----------------------------------------------------------------------

Nr=12 Text=_"I don't want any reward. Just gratitude." Topic="Kevin's Reward"
<LuaCode>
	npc_says(_"Of course you can have that. There, I'm most grateful to you. That should do.")
	-- reward here could be bonus to joining faction or a powerful hacked (friendly) bot that supports Tux fighting in Hell Fortress.
	next(15)
</LuaCode>
----------------------------------------------------------------------

Nr=13 Text=_"I want money." Topic="Kevin's Reward"
<LuaCode>
	npc_says(_"Eh... Here, take these 900 circuits. That should be enough.")
	add_gold(900)
	next(15)
</LuaCode>
----------------------------------------------------------------------

Nr=14 Text=_"I want to think about that for another moment." Topic="Kevin's Reward"
<LuaCode>
	npc_says(_"So be it. As reward for your help I grant you the right to think about that.")
	npc_says(_"Just joking. Come back when you've decided what you want.")
	hide(11, 12, 13, 14)
	pop_topic() -- "Kevin's Reward"
</LuaCode>
----------------------------------------------------------------------

Nr=15 Text="BUG, REPORT ME! kevin node15" Topic="Kevin's Reward"
NO_TEXT
<LuaCode>
	add_cookie("Kevin_reward_given") -- Tux received a reward for completing the quest "And there was light..."
	hide(11, 12, 13, 14) show(30)
	pop_topic() -- "Kevin's Reward"
</LuaCode>
----------------------------------------------------------------------

Nr=20 Text=_"Jasmine just blew up."
<LuaCode>
	npc_says(_"Oh. Right.")
	npc_says(_"Well, thanks for telling me.")
	npc_says(_"Back to the drawing board, I guess...")
	add_cookie("kevin_sigtalk") -- Tux spoke with Kevin about Jasmine blew up
	hide(20) show(21)
</LuaCode>
----------------------------------------------------------------------

Nr=21 Text=_"I thought you would be more worried about her death."
<LuaCode>
	kevin_day = get_random(_"Monday", _"Tuesday", _"Wednesday", _"Thursday", _"Friday", _"Saturday", _"Sunday")
	npc_says(_"Why? I have backups from last "..kevin_day..". No reason to worry at all.")
	npc_says(_"It will be a while till I get her together again, but she will be fine.")
	hide(21)
</LuaCode>
----------------------------------------------------------------------

Nr=30 Text=_"What can you teach me about hacking?"
<LuaCode>
	if (not done_quest(_"And there was light...")) then 
		if (not has_quest(_"And there was light...")) then
			npc_says(_"Not now, I'm busy.")
			npc_says(_"I've got an important research project going on. In fact this project might be crucial to the survival of the whole town.")
			npc_says(_"There is tremendous importance in it. But the project is in danger. There are some maintenance bots down at the energy source.")
			npc_says(_"They are trying to 'maintain' machines by rebooting them all the time. This must stop, but I can't leave this place.")
			npc_says(_"I must balance the remaining power in such a way that my project can continue uninterrupted.")
			npc_says(_"Now, if you go down there and make the power flow stable, then I'll find the time to teach you something.")
			add_quest(_"And there was light...", _"Kevin has a problem with his energy supply. His bots keep rebooting the system, and he cannot conduct any experiments with an unstable power supply. My job is to stabilize the power. I think that implies removing the stupid bots.")
			show(6, 7)
		else
			npc_says(_"As I've told you, I cannot teach you anything right now. I don't have the time.")
			npc_says(_"I must see that the flaky energy stream is distributed in such a way that my research project can continue.")
			npc_says(_"If you get rid of the maintenance bots on the second underground level of this station, I will find the time to teach you something.")
		end
	else
		if (kevin_lessons_taught == kevin_max_lessons) then
			npc_says(_"Sorry, there is no human alive that could give you further training.")
			hide(31)
		else 
			kevin_next_lesson_cost = 2 * (kevin_lessons_taught + 1)
			npc_says(_"I can teach you everything, for a price of course.", "NO_WAIT")
			npc_says(_"Three hundred per lesson, up front.", "NO_WAIT")
			npc_says(string.format(_"You will need %d training points.", kevin_next_lesson_cost))
			npc_says(_"Still interested?")
			show(31)
		end
	end
	hide(30)
</LuaCode>
----------------------------------------------------------------------

Nr=31 Text=_"Yes, please teach me how to become a hacker."
<LuaCode>
	if (train_program(300, kevin_next_lesson_cost, "Hacking")) then
		kevin_lessons_taught = kevin_lessons_taught + 1
		npc_says(_"Good. The most important thing about hacking is to understand the nature of the machine you want to hack.")
		npc_says(_"Once you have figured out what the creators of the system were thinking when setting it up, you'll also know how to best hack it.")
		npc_says(_"Now I see the feature set of your hacking program has already improved a lot.")
	else
		if (get_gold() < 300) then next(40) else next(41) end
	end
	hide(31) show(30)
</LuaCode>
----------------------------------------------------------------------

Nr=40 Text="BUG, REPORT ME! kevin node40"
NO_TEXT
<LuaCode>
	tux_says_random(
		_"Hold on, I don't seem to have that much money right now.",
		_"This is embarrassing. I will come back when I have the amount of valuable circuits you desire.")
	npc_says_random(
		_"Ok, come back when you can afford to pay me if you are interested.",
		_"Please don't bother me if you can't pay me.",
		_"You don't have enough money! I cannot afford to just give away training for free.",
		_"Come back when you have enough circuits.",
		_"So come back when you have some valuables.")
</LuaCode>
----------------------------------------------------------------------

Nr=41 Text="BUG, REPORT ME! kevin node41"
NO_TEXT
<LuaCode>
	tux_says(_"Sorry, my memory data bank is filled to the brim right now. Can't learn more until I get some more experience.")
	npc_says_random(
		_"You Linarians are funny creatures. Come back later when you feel ready if you please.",
		_"I cannot teach you when you have no training points. Come back when you are more prepared.",
		_"You are not ready. Go kill some bots and come back.",
		_"Come back when you are mentally ready to learn.",
		_"Come back after some more practice in the field.",
		_"Waving those circuits in front of me when you are too unfocused to train won't help. I can take your money, but you won't learn anything.",
		_"Yeah, I don't think you have enough experience for this. Come back here after you see some more action.",
		_"Then come back when you have a real will to learn.",
		_"You don't have enough experience. Come here after you see some more action.")
</LuaCode>
----------------------------------------------------------------------

Nr=60 Text=_"No, I didn't touch it."
<LuaCode>
	npc_says(_"Strange, I should have a look at it...") --Tux lied to him and will not directly get an account if he talks to it next time.
	npc_says(_"...when I have more time..")
	del_cookie("kevins_lawnmower_tux_login")
	hide(60, 61)
</LuaCode>
----------------------------------------------------------------------

Nr=61 Text=_"Yes, I tried to login."
<LuaCode>
	if (done_quest(_"And there was light...")) then
		npc_says(_"Please, don't touch it.")
		npc_says(_"I don't want you to break it somehow.")
		add_cookie("kevins_lawnmower_tux_login_granted") -- Tux has access to Kevin-Lawnmower
	else
		npc_says(_"You better not touch it!")
		npc_says(_"If you break it somehow, I'll be very angry.")
		npc_says(_"And I still have no time.")
		npc_says(_"The power level is still very low, hence, I am quite busy.")
	end
	del_cookie("kevins_lawnmower_tux_login")
	hide(60, 61)
</LuaCode>
----------------------------------------------------------------------

Nr=99 Text=_"Let us talk later."
<LuaCode> 
	npc_says_random(_"Be careful. The bots are in a foul mood today. Very easy to get killed. Very easy.", _"If you need to contact me, my number is 127.0.0.1", _"Keep your system up to date, Linarian.")
	end_dialog()
</LuaCode>
----------------------------------------------------------------------

End of chat dialog for character="XXXXX"