/usr/share/freedroidrpg/dialogs/Tamara.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 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 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 | ---------------------------------------------------------------------
-- 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", "Timid" },
MARKERS = { NPCID1 = "Sorenson", QUESTID1 = "An Explosive Situation" },
PURPOSE = "$$NAME$$ can sell Tux skills books. Her skills are needed to aid Tux in resolving the $$QUESTID1$$ quest.",
BACKSTORY = "$$NAME$$ is the town\'s librarian, which she use to run with $$NPCID1$$ until their falling out. $$NAME$$ also documents bot history in her spare time.",
RELATIONSHIP = {
{
actor = "$$NPCID1$$",
text = "$$NAME$$ and $$NPCID1$$ are half-sisters who have not talked to each other since $$NAME$$ locked $$NPCID1$$
in her bedroom for staring into computer screens too much."
},
}
WIKI]]--
local Npc = FDrpg.get_npc()
local Tux = FDrpg.get_tux()
return {
FirstTime = function()
-- Initialization
Tamara_about_bots_nodes = 0
--; TRANSLATORS: %s =Tux:get_player_name()
Tux:says(_"Hi, I'm %s.", Tux:get_player_name())
Npc:says(_"Welcome to the Library, I'm Tamara.")
Npc:says(_"Please take a look around and see if there is something here that interests you.")
Npc:says(_"You are welcome to ask me if you have any questions.")
Npc:set_name("Tamara - Librarian")
show("node10")
end,
EveryTime = function()
if (tamara_shelf_count == 1) and
(not tamara_shelf_count_1_done) then
Npc:says(_"Hey, please don't make such a mess here.")
tamara_shelf_count_1_done = true
elseif (tamara_shelf_count == 2) and
(not tamara_shelf_count_2_done) then
Npc:says(_"Please put everything back in place if you don't need it.")
tamara_shelf_count_2_done = true
elseif (tamara_shelf_count == 3) and
(not tamara_shelf_count_3_done) then
Npc:says(_"Please be careful with these books. They are older than most computers in this town.")
tamara_shelf_count_3_done = true
tamara_shelf_stuff = "done"
elseif (tamara_shelf_count) and
(tamara_shelf_count > 3) then
Npc:says("ERROR: Tamara.dialog, EveryTime LuaCode: unhandled value for tamara_shelf_count, please report. value is: %s", tamara_shelf_count)
end
if (Tux:has_met("Tamara")) then
Npc:says(_"What can I help you with?")
end
if (Tux:has_met("Sorenson")) and
(not Tamara_talked_about_sister) then
show("node1")
end
show_if(((not won_nethack) and
(not Tamara_asked_hacking)), "node2")
show_if(Tamara_bot_apocalypse_book, "node21")
if (Ewalds_296_needs_sourcebook) and
(not Tamara_have_296_book) then
show("node50")
end
-- function to hide node in the topic Tamara_about_bot_nodes
function hide_node_about_bots(node)
Tamara_about_bots_nodes = Tamara_about_bots_nodes - 1
hide("node" .. node)
if (Tamara_about_bots_nodes <= 0) then
pop_topic()
end
end
if (Kevin_sigtalk) and
(not tamara_robotic_girlfriends_node) then
Tamara_about_bots_nodes = Tamara_about_bots_nodes + 1
tamara_robotic_girlfriends_node = true;
show("node34")
end
show_if(Tamara_talked_about_bots and
(Tamara_about_bots_nodes > 0), "node31")
show("node99")
show_if((HF_FirmwareUpdateServer_uploaded_faulty_firmware_update and
not Tamara_post_firmware_update), "Tamara_post_firmware_update_1")
end,
{
id = "node1",
text = _"Hmm, you look very similar to another person I met, by the name of Sorenson.",
code = function()
Npc:says(_"Well, it's understandable. We are sisters.")
Npc:says(_"Or actually half sisters. She is also half crazy, so we don't communicate much.")
Npc:says(_"*sigh*")
Npc:says(_"We used to. Even ran this library together.")
Npc:says(_"Then she started reading more and more books and sitting in front of the computer day and night, never sleeping.")
Npc:says(_"In the end she completely lost her marbles, sadly.")
Npc:says(_"Now all she does is sitting locked in her house staring into the computer.")
Tamara_talked_about_sister = true
hide("node1")
end,
},
{
id = "node2",
text = _"I would like to learn how to hack.",
code = function()
Tamara_asked_hacking = true
if (Tamara_talked_about_sister) then
Npc:says(_"My sister used to play Nethack all the time, about the time she became really good at hacking.")
else
Npc:says(_"Everyone I know who is good with computers always talks about beating Nethack.")
end
Npc:says(_"I think there might be a version on the town's computers.")
Npc:says(_"I've never played it.")
Npc:says(_"That might be why I'm no good with computers.")
hide("node2")
end,
},
{
id = "node10",
text = _"I see you have a huge source code book collection. Mind if I buy some from you?",
code = function()
Npc:says(_"This is a library, not a book shop.")
Npc:says(_"However, valuable books have a tendency to simply vanish and never get returned by some people...")
Npc:says(_"Especially strangers just passing by...")
Npc:says(_"Thus, I'm forced to take a deposit for each book.")
hide("node10") show("node11")
end,
},
{
id = "node11",
text = _"So what interesting books do you have available right now?",
code = function()
Npc:says_random(_"Some of these might interest you.",
_"I only have a few programming volumes, feel free to look through them.")
trade_with("Tamara")
show_if(not Tamara_bot_apocalypse_book, "node20")
show_if(not Tamara_talked_about_bots, "node30")
end,
},
{
id = "node20",
text = _"Do you have any books about the bot apocalypse?",
code = function()
Npc:says(_"I'm writing one, but it isn't complete, and there are no publishers left.")
Tamara_bot_apocalypse_book = true
hide("node20")
end,
},
{
id = "node21",
text = _"Have you been progressing on your book about the bot apocalypse?",
code = function()
Npc:says_random(_"I need more time to finish it.",
_"Page-by-page, my book is growing up.",
_"Sorry, but you have to wait a bit more before you can read it.")
hide("node21")
end,
},
{
id = "node30",
text = _"Do you have any books about robotics?",
code = function()
Npc:says(_"Sorry, most of them have been stolen or borrowed.")
Npc:says(_"However, I can tell you all about robots and automata in literature. Interested?")
Tamara_talked_about_bots = true
Tamara_about_bots_nodes = Tamara_about_bots_nodes + 2
hide("node30") show("node32", "node33", "node39")
push_topic("About bots")
end,
},
{
id = "node31",
text = _"I would like to know some more about bots.",
code = function()
Npc:says(_"If you mean in culture, I have some anecdote you could be interested in.")
push_topic("About bots")
end,
},
{
id = "node32",
text = _"Where does the word 'bot' come from?",
topic = "About bots",
code = function()
Npc:says(_"It is a shortening of the word 'robot', derived from the Czech word for forced labor.")
Npc:says(_"R.U.R. (Rossum's Universal Robots), a play, introduced \'robots\' as artificial people.")
Npc:says(_"In the play the robots revolted, took over the world, and killed all the humans.")
Tux:says(_"Ironic.")
hide_node_about_bots(32)
end,
},
{
id = "node33",
text = _"What about the creation of robots for defense?",
topic = "About bots",
code = function()
Npc:says(_"During the Holy Roman Empire, the Jewish people of the Prague ghetto needed protection.")
Npc:says(_"So a holy rabbi shaped a Golem out of clay, and brought it to life through rituals and writing 'emet' (truth) on its head.")
Npc:says(_"The Golem initially protected the Jews, but was brainless and stupid, and so soon became dangerously violent to even the Jews.")
Npc:says(_"It was only by trickery that the rabbi was able to even get close to the Golem.")
Npc:says(_"But as the rabbi changed 'emet' to 'met' (death), the Golem fell on him, and both the creator and creation became lifeless.")
hide_node_about_bots(33)
end,
},
{
id = "node34",
text = _"What can you tell me about robotic girlfriends?",
topic = "About bots",
code = function()
Npc:says(_"Well, the Greeks wrote down a story about Pygmalion, the sculptor of Cyprus.")
Npc:says(_"Pygmalion carved an ivory woman of far surpassing natural beauty and fell in love.")
Npc:says(_"Aphrodite, the goddess of love, brought the ivory woman to life.")
Npc:says(_"The woman, Galatea, likewise fell in love and married her creator Pygmalion.")
Npc:says(_"So you could say that this is one of the few stories that end well.")
hide_node_about_bots(34)
end,
},
{
id = "node39",
text = _"Can I come back to you on that later?",
topic = "About bots",
code = function()
Npc:says(_"Don't hesitate to talk to me again for further questions.")
pop_topic()
end,
},
{
id = "Tamara_post_firmware_update_1",
text = _"Have you heard about the news?",
code = function()
Npc:says(_"Oh? What news?")
Tux:says(_"The world is saved! The apocalypse is over!")
Npc:says(_"Oh, yes... This news. I agree, it's wonderful.")
hide("Tamara_post_firmware_update_1")
show("Tamara_post_firmware_update_2")
Tamara_post_firmware_update = true
end,
},
{
id = "Tamara_post_firmware_update_2",
text = _"You don't seem very excited.",
code = function()
Npc:says(_"I am glad, although... Well, it's not like the library was ever in any immediate danger.")
Tux:says(_"What? Did you want it to be?")
Npc:says(_"No - it's hard to explain. I suppose I had this certain... Idea that it was my job to keep the books safe during the apocalypse. To defend them.")
Npc:says(_"It was my little fortress made of electronic paper, that I had to grow and protect from any threats. To save human knowledge.")
hide("Tamara_post_firmware_update_2")
show("Tamara_post_firmware_update_3")
end,
},
{
id = "Tamara_post_firmware_update_3",
text = _"But what about all the people that died? They weren't made of E-paper!",
code = function()
Npc:says(_"I know! Please, don't misunderstand, I think it's fantastic that the Assault is over!")
Npc:says(_"I just... Well, I guess I wanted a bigger piece of the action, in my own way.")
Npc:says(_"I'll... Go and arrange some books now...")
if (tamara_shelf_count) then
Npc:says(_"It's rather hard to keep the library in good shape lately. Someone's been ransacking the southern sections. Times like these can bring out the worst in us.")
Npc:says(_"But I guess cleaning work is also part of preserving culture.")
end
hide("Tamara_post_firmware_update_3")
show("Tamara_post_firmware_update_interview", "Tamara_post_firmware_update_burn")
end,
},
{
id = "Tamara_post_firmware_update_burn",
text = _"You know, I can start a fire here if you want me to.",
code = function()
Npc:says(_"What? No! Absolutely not!")
Npc:says(_"Why in the world would I want you to do that?!")
Tux:says(_"Because that would put the books in immediate danger, and then you can rush in and save them!")
Npc:says(_"That - that's insane!")
Npc:says(_"You are a danger to this establishment. Get out of here!")
Tux:says(_"You are a very confusing person.")
if (Tamara_talked_about_sister) then
Tux:says(_"I guess it runs in the family...")
end
end_dialog()
hide("Tamara_post_firmware_update_burn", "Tamara_post_firmware_update_interview")
end,
},
{
id = "Tamara_post_firmware_update_interview",
text = _"Well, you didn't get to fend off a hoard of bots. But you can interview me personally!",
code = function()
Npc:says(_"Really? You'd let me interview you?")
if (Tamara_bot_apocalypse_book) then
--; TRANSLATORS: it = the interview
Tux:says(_"Sure! You can put it in the book you're writing.")
else
Tux:says(_"Sure!")
end
Npc:says(_"Thank you! This is a wonderful opportunity! I have a first-hand account from a central actor in the biggest event in human history!")
Npc:says(_"We must set a time for an interview. And I must read everything in the library about interviewing!")
Npc:says(_"There's a lot of ground to cover, but i can already imagine the descriptions - you, in the center of the robot apocalypse...")
Npc:says(_"Just like in those old fairy tales they used to tell children, about the brave dashing knight storming alone into a castle to save the princess.")
Npc:says(_"With some mild adjustments.")
Npc:says(_"I mean, no one in those stories had flippers.")
Tux:says(_"That sounds like discrimination.")
Npc:says(_"Yes, they don't tell those stories to children anymore. Too much adult content. The effect on the young psyche was poorly studied.") -- might open the subject of Linarian folk tales?
hide("Tamara_post_firmware_update_interview", "Tamara_post_firmware_update_burn")
end,
},
{
id = "node50",
text = _"Do you have a copy of Subatomic and Nuclear Science for Dummies, Volume IV?",
code = function()
Npc:says(_"It's interesting you should be looking for that - the library has two copies.")
Tux:says(_"I need one - it's a matter of life and death!")
Npc:says(_"Life and death?")
Tux:says(_"There's a nuclear reactor going super critical under the town - if I have the book, maybe I can stop it.")
Npc:says(_"In that case, you can have it. My mission is to preserve our culture, which won't matter if we're all dead.")
Tux:says(_"Thank you, Tamara.")
Tux:update_quest("An Explosive Situation", _"I was able to get a copy of Subatomic and Nuclear Science for Dummies, Volume IV from the librarian, Tamara. I'd better hurry back to Ewald's 296 with it.")
Tux:add_item("Nuclear Science for Dummies IV")
Tamara_have_296_book = true
hide("node50")
end_dialog()
end,
},
{
id = "node99",
text = _"Thank you for the help.",
code = function()
Npc:says_random(_"No problem, and remember to return your books in time.",
_"I aim to ensure that the great works of literature will survive this horrible apocalypse.",
_"That is what I'm here for. Come back at any time.")
end_dialog()
end,
},
}
|