This file is indexed.

/usr/share/freedroidrpg/dialogs/Richard.lua is in freedroidrpg-data 0.16.1-2.

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
---------------------------------------------------------------------
-- 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
----------------------------------------------------------------------
--[[WIKI
PERSONALITY = { "Intelligent" },
MARKERS = { DROIDID1 = "614" },
BACKSTORY = "$$NAME$$ is the Red Guard\'s Computer Cluster maintainer and occasional $$DROIDID1$$ programmer."
WIKI]]--

local Npc = FDrpg.get_npc()
local Tux = FDrpg.get_tux()

return {
	FirstTime = function()
		show("node0")
		if (Kevin:is_dead()) then
			show("node50")
		end
	end,

	EveryTime = function()
		if (Tux:has_item_backpack("Kevin's Data Cube")) then
			show("node6")
		end
		show("node99")
	end,

	{
		id = "node0",
		text = _"Hi! I'm new here. ",
		code = function()
			Npc:says(_"Welcome, welcome! I'm Richard. I'm the computer guy around here.")
			Npc:says(_"I mostly work with this huge computer cluster here, although I also program the 614 bots in my spare time.")
			Npc:set_name("Richard - Programmer")
			hide("node0") show("node1")
		end,
	},
	{
		id = "node1",
		text = _"A computer cluster? What's that?",
		code = function()
			Npc:says(_"A cluster is a group of computers, connected in a way that helps them collaborate in solving problems.")
			Npc:says(_"As they say, 'two heads are better than one'. And we have a lot of heads here.")
			Npc:says(_"That is why I call this cluster 'Hydra'. A lot of heads indeed.")
			hide("node1")
		end,
	},
	{
		id = "node6",
		text = _"I have a data cube with some information. Can you tell me something more about it?",
		code = function()
			Npc:says(_"Interesting. Let me see this thing. Hmm... Yes, there is quite a lot of data in there. Maybe we could use Hydra to evaluate the data.")
			Npc:says(_"Hey, what do we have here? The data is already prepared for processing by a cluster just like ours. Wow! That's excellent!")
			Npc:says(_"I'll feed it into Hydra right away. Expect the results in a short while. Hydra has never let me down.")
			Tux:del_item_backpack("Kevin's Data Cube", 1)
			Tux:end_quest("A kingdom for a cluster!", _"Yes, that was simple. I wish everything else went as smoothly as this one did...")
			hide("node6") show("node9", "node10")
		end,
	},
	{
		id = "node9",
		text = _"Hey, did you get something out of that data cube?",
		code = function()
			Npc:says(_"Of course! I told you, Hydra has never failed me! I designed it myself, and I know computers very well. I never make mistakes.")
			Npc:says(_"Seems like the disruptor shield which thwarts all our attacks on Hell Fortress can be controlled from somewhere outside, or something like that.")
			Npc:says(_"I was busy servicing one of Hydra's nodes, but I sent the full report to Spencer. He will tell you more.")
			hide("node9")
		end,
	},
	{
		id = "node10",
		text = _"So... What's the story on those data cubes, anyway?",
		code = function()
			Npc:says(_"Well, they were originally developed for use with the Open-Pandora computing platform.")
			Tux:says(_"The what?")
			Npc:says(_"It was a handheld gaming computer, built on open-source software.")
			Npc:says(_"The device had limited storage capabilities, so an enterprising hacker designed the data cubes.")
			Npc:says(_"Those were the beginning days of open-source hardware. It's one of the few open-source innovations still around.")
		end,
	},
	{
		id = "node41",
		code = function()
			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.")
		end,
	},
	{
		id = "node50",
		text = _"What can you teach me about hacking?",
		code = function()
			Npc:says(_"I can teach you everything, for a price of course.", "NO_WAIT")
			Npc:says(_"Three hundred per lesson, up front.", "NO_WAIT")
			hacking_level = get_program("Hacking")
			if (hacking_level > 8) then
				Npc:says(_"Sorry, there is no human alive that could give you further training.")
				hide("node51")
			else
				--; TRANSLATORS: %d = a number
				Npc:says(_"You will need %d training points.", hacking_level * 2)
				Npc:says(_"Still interested?")
				show("node51")
			end
		end,
	},
	{
		id = "node51",
		text = _"Yes, please teach me.",
		code = function()
			if (Tux:train_program(300, get_program("Hacking") * 2, "Hacking")) then
				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.")
				hide("node51") show("node50")
			else
				if (Tux:get_gold() < 300 ) then
					next("node52")
				else
					next("node41")
				end
			end
		end,
	},
	{
		id = "node52",
		code = function()
			Tux:says_random(_"Hold on, I don't seem to have enough 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.")
		end,
	},
	{
		id = "node99",
		text = _"See you later.",
		code = function()
			Npc:says(_"Take care, Linarian.")
			end_dialog()
		end,
	},
}