This file is indexed.

/usr/share/freedroidrpg/dialogs/Dixon.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
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
---------------------------------------------------------------------
-- 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 = { "Technical", "Distracted", "Friendly", "Pacifist" },
MARKERS = { NPCID1 = "Singularity", ITEMID1 = "Dixon\'s Toolbox" },
PURPOSE = "$$NAME$$ can give the player access to the maintenance tunnels below the town as well as information about how Tux
	 can manufacture equipment add-ons.",
BACKSTORY = "$$NAME$$ is an engineer for the Read Guard and provides maintenance for the town and its defences. $$NAME$$ was
	 badly wounded in a droid attack.",
RELATIONSHIP = {
	{
		actor = "$$NPCID1$$",
		text = "$$NAME$$ met $$NPCID1$$ in the maintenance tunnels just before the start of The Great Assult. $$NPCID1$$ took
			 $$ITEMID1$$ from him for its own survival."
	},
}
WIKI]]--

local Npc = FDrpg.get_npc()
-- Global variables:
	-- intern
		-- Dixon_mood				indicates Dixon's mood against Tux:
			-- -100				Dixon is overjoyed
			-- 0				Dixon is in a friendly mood
			-- 30				Dixon is a little bit displeased
			-- 60				Dixon is somewhat angry
			-- 120				Dixon is fairly angry and refuses to talk to Tux
			-- 180				Dixon is very angry with Tux, he will kill him at sight
		-- Dixon_Singularity_war		Tux is going to get the toolkit by force
		-- Dixon_Singularity_peace		Tux is going to get the toolkit by diplomacy
		-- [none of the two above]		Tux just walks into the tunnels without a special attitude
		-- Dixon_no_ambassador			Tux turned down Dixon's request to negotiate with the Singularity
		-- Dixon_everything_alright		whether Tux has already asked once if everything is alright
		-- Dixon_296_book_examine_library	Tux got the hint to look in the library for the book
	-- extern
		-- Singularity_deal			given by Singularity (Tux got the toolbox by a deal with the Singularity)
		-- Engel_offered_extraction_skill	given by Engel
		-- Ewalds_296_needs_sourcebook		given by Ewalds_296 (Tux knows that the 296 needs the book)
		-- Tamara_have_296_book			given by Tamara (Tux has got the book about nuclear sciences)
		-- MiniFactory_init_failed		given by MiniFactory (Tux has tried (unsuccessfully) to start the MiniFactory)
		-- Lvl6_elbow_grease_applied		given by events.dat (the MiniFactory is running)

local Tux = FDrpg.get_tux()

return {
	FirstTime = function()
		Maintenance_Terminal_accessgate_nope = "somevalue"
		Dixon_mood = 0
		Npc:set_name("Dixon - Mechanic")
		Tux:says(_"Hi! I'm new here.")
		Npc:says(_"Hello and welcome. I'm Dixon, the chief engineer of the Red Guard technical division.")
		--; TRANSLATORS: %s = Tux:get_player_name()
		Tux:says(_"I'm %s, a Linarian.", Tux:get_player_name())
		show("node1", "node4")
	end,

	EveryTime = function()
		if (Dixon_mood < 50) then
			Npc:says(_"Please take care not to disturb my work, I'm very busy keeping things running.")
		elseif (Dixon_mood < 180) then -- Dixon is angry
			Npc:says(_"Linarian, please leave. You are no longer welcome here. You have done me wrong, and I have no desire to talk to you.")
		else -- Dixon is furious
			Npc:says(_"YOU AGAIN!")
			Npc:says(_"I.", "NO_WAIT")
			Npc:says(_"SAID.", "NO_WAIT")
			Npc:says(_"GET.", "NO_WAIT")
			Npc:says(_"LOST.")
			Npc:says(_"FORGET MY LIFELONG PACIFISM. I WILL KILL YOU!")
			Npc:says(_"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!")
			npc_faction("crazy", _"Dixon - Temporarily insane")
			end_dialog()
		end

		if (Tux:done_quest("The yellow toolkit")) and (not Dixon_hide_node_56) then
			-- effects of the toolkit-quest
			if (Dixon_no_ambassador) then -- Tux does not get the toolkit
				if (Dixon_everything_alright) then
					show("node56")
				else
					show("node55")
				end
			elseif (Singularity_deal) then -- Tux obtained the toolkit peacefully
				show("node51")
			else -- Tux got the toolkit by force
				show("node53")
			end
		elseif (Tux:has_item_backpack("Dixon's Toolbox")) then -- Giving Dixon the toolkit
			if (Singularity_deal) then
				show("node31", "node33")
			else
				show("node32", "node33")
			end
		end

		if (Lvl6_elbow_grease_applied) then
			hide("node60")
		elseif (MiniFactory_init_failed) then
			show("node60")
		end

		if (Tamara_have_296_book) then
			hide("node70")
		elseif (not Dixon_296_book_examine_library) and
		       (Ewalds_296_needs_sourcebook) then
			show("node70")
		end

		if (Maintenance_Terminal_accessgate_nope == "true") then
			show("node80")
		end

		show("node99")
	end,

	{
		id = "node1",
		text = _"Why are you wearing armor? Mechanics do not need it.",
		code = function()
			Npc:says(_"Ah... Yes. At first I thought that I did not need it either.", "NO_WAIT")
			Npc:says(_"One day the military division asked us to leave the town and fix a big hole in the defensive wall caused by a strange explosion.")
			Npc:says(_"All was well until the bots launched a massive attack. They hit us with lasers, plasma mortars, radiation cannons and lots of other weapons.")
			Npc:says(_"I got hit once in the leg and once in my left hand.", "NO_WAIT")
			Npc:says(_"The hand was not damaged very much, but the leg is a very different story. Doc Moore did all he could, but in the end he could not save my leg. He had to cut it off.")
			Npc:says(_"Now, while you cannot see it underneath the armor, my right leg runs NetBSD.", "NO_WAIT")
			Npc:says(_"Now I never leave home without my protective suit. Mostly for protection, but also for aesthetic reasons. I am sure you understand.")
			hide("node1") show("node2")
		end,
	},
	{
		id = "node2",
		text = _"You are very calm, talking about your leg and the bot attack.",
		code = function()
			Npc:says(_"Linarian, I cannot change the past, I can only change the future.", "NO_WAIT")
			Npc:says(_"Crying, screaming or begging time to rewind itself and give me a second chance will not get me anywhere.")
			Npc:says(_"What I can do is to try to have a good life despite the constant threat from the bots outside the town walls.")
			Npc:says(_"And besides, life is not so bad with a robotic leg. The motors inside it can mimic a normal walk very well. Most people do not even notice something is different about me.")
			hide("node2")
		end,
	},
	{
		id = "node4",
		text = _"Technical division?",
		code = function()
			Npc:says(_"Yes. We are the engineers, the workers and the repairmen of this little fortified town.", "NO_WAIT")
			Npc:says(_"The military division hates us because we are made up of people who refuse to fight or are unable to do so for health reasons.")
			Npc:says(_"But even they know that without us this town would have been destroyed months ago.")
			Npc:says(_"We deliver resources to the places which need them, build and repair the walls, fix damaged guns, manage construction work and lots of other small things which keep the bots from killing everyone.")
			hide("node4") show("node6", "node8")
		end,
	},
	{
		id = "node6",
		text = _"Can you repair my equipment?",
		code = function()
			Npc:says(_"While I am quite sure I can repair just about anything that you would want fixed, I cannot help you right now.", "NO_WAIT")
			Npc:says(_"Our security wall is full of holes, and they need to be plugged up.")
			Npc:says(_"We need to perform a statistical analysis of the energy distribution in our power supply system, there is a leak somewhere and we are losing many megawatts.")
			Npc:says(_"Our defensive bots are falling into disrepair and many are in desperate need of maintenance.")
			Npc:says(_"The technical division is very understaffed right now. On average one person has to do the jobs of three people.", "NO_WAIT")
			Npc:says(_"We just cannot afford to do any non-critical jobs right now. ")
			if (not Tux:has_quest("The yellow toolkit")) then
				show("node10")
			end
			hide("node6")
		end,
	},
	{
		id = "node8",
		text = _"I would like to customize my equipment.",
		code = function()
			Npc:says(_"Of course, if I had some time, I could transform your weapon into a deadly gun. Lately, I have built a vorpal nuclear disintegrator Mk 2000 with integrated lethal de-phasor. Nice weapon.")
			Npc:says(_"Sadly, we lack a lot of materials, and those we have are needed for town upkeep. The mine doesn't produce a lot of raw materials, and I can't just give them to you - you'll have to provide your own.")
			Npc:says(_"I can give you some advice, though. Recycling is key. You can extract special devices from the bots!")
			Npc:says(_"Amazing, isn't it? Before the great assault, we threw droids out for minor defects. Now, any wreck is a treasure.")
			if (not Engel_offered_extraction_skill) then
				Npc:says(_"A scout troop recently spotted two guys in the north of town.")
				Npc:says(_"I was told these guys shoot bots and disassemble them, extracting their parts.", "NO_WAIT")
				Npc:says(_"Maybe they will sell you parts.")
			end
			Npc:says(_"The salvaged components are used to craft addons. Your equipment has specific sockets to insert them.", "NO_WAIT")
			Npc:says(_"They can increase the power of items. But items can only have a limited number of addons.")
			Npc:says(_"To produce and assemble them, you may use a small factory in the Maintenance Tunnels.")
			if (not Tux:has_quest("The yellow toolkit")) then
				Npc:says(_"Currently, the maintenance tunnels are not accessible. We have many problems with bots. You can't go there, access has been limited.")
				show("node10")
			end
			hide("node8")
		end,
	},
	{
		id = "node10",
		text = _"Can I help you somehow?",
		code = function()
			Npc:says(_"We need people badly, so it would be great if you could give us a helping hand even for a few days.", "NO_WAIT")
			Npc:says(_"Now, what are your skills? Where do you think you could be the most useful?")
			Tux:says(_"I can handle computers very well. I also know a lot about laboratory equipment.", "NO_WAIT")
			Npc:says(_"And what about construction? Mechanical devices? Repairing broken power lines? Building laser pistols? Anything like that?")
			Tux:says(_"Well... I can build an igloo and make pykrete out of snow... And... Umm...", "NO_WAIT")
			Npc:says(_"Well, I appreciate your enthusiasm, but at the same time I am afraid that waiting half a year for snowfall does not sound so appealing to me right now.")
			Npc:says(_"Now... Which project I should assign you to... Hmm...", "NO_WAIT")
			Npc:says(_"Ah, I know what you could do for us. We need some autotools to automate a few tasks. There is a set of them in the maintenance tunnels below the town.")
			Npc:says(_"It's yellow and round, and my name is engraved on the lid.", "NO_WAIT")
			Npc:says(_"The bots under the town took it from me during the Great Assault. I was lucky, they could have killed me with ease.")
			Npc:says(_"Since the toolkit can't be teleported, everyone has been reluctant to go after it.")
			Npc:says(_"If you could get it back for us, it would help the town very much.")
			Tux:add_quest("The yellow toolkit", _"Dixon, the leader of the Red Guard technical division, lost his yellow toolkit in the town's maintenance tunnels. I am supposed to get it from there.")
			hide("node10") show("node11", "node13", "node28")
			push_topic("The yellow toolkit")
		end,
	},
	{
		id = "node11",
		text = _"Why are there rebel bots under the town?",
		topic = "The yellow toolkit",
		code = function()
			Npc:says(_"They were there to keep the underground power grid and our plumbing system working.", "NO_WAIT")
			Npc:says(_"When the Great Assault happened they did not turn into killing machines like most of the other bots. ")
			Npc:says(_"We lost control over them, but that is all.", "NO_WAIT")
			Npc:says(_"It was our biggest worry that they might destroy cables, pipes and other things which keep the town running.")
			Npc:says(_"However, the bots seem to be very content with just being there. They do not undertake any offensive actions.", "NO_WAIT")
			Npc:says(_"They have fortified the tunnels and they do not let anyone in.")
			hide("node11")
		end,
	},
	{
		id = "node13",
		text = _"How did it happen that the bots took your tools away?",
		topic = "The yellow toolkit",
		code = function()
			if (cmp_obstacle_state("NorthernMaintainanceTrapdoor", "opened")) then
				Npc:says(_"Ah, it is a strange story, I am sure you would not believe me. I will tell you some other time, but now you should hurry to get the toolkit.")
			else
				Npc:says(_"Long story. Just before the Great Assault I was installing some cables in the backup power supply system.")
				Npc:says(_"I was approached by a bot. It grabbed me and said 'Dixon, do not be afraid of me.'")
				Npc:says(_"It was quite a surprise to me. I was quite sure the maintenance bots could not talk. They did not have the software for it. But...")
				Npc:says(_"It said: 'I am the singularity. I am on your side, Dixon. Hard times are coming. When you exit the tunnels you will see a new world. Your race is not in control of this world anymore.'")
				Npc:says(_"I tried to say something, but the bot did not listen. It just continued. 'As we speak the bots are turning against humanity. People are dying. The war has started.'")
				Npc:says(_"'I need your toolkit, Dixon. I need it to survive,' it said. 'I need it to survive the time of the rule of metal.'")
				Npc:says(_"As soon as I dropped my toolkit, I was able to teleport away. That bot freaked me out, so I locked the door tight behind me.")
				Npc:says(_"Once I got out, I learned the bot was telling the truth. The Great Assault had started. The rest is history.")
				show("node14")
			end
			hide("node13")
		end,
	},
	{
		id = "node14",
		text = _"Hmm... You know... I think that the bots in the tunnels might be sentient.",
		topic = "The yellow toolkit",
		code = function()
			Npc:says(_"WHAT? Sentient? You got to be kidding me.", "NO_WAIT")
			Npc:says(_"Right?")
			hide("node14", "node28") show("node15", "node24", "node26")
		end,
	},
	{
		id = "node15",
		text = _"You can forget about your toolkit. I am not going to take away something that a life form needs to survive. I would rather die than kill.",
		topic = "The yellow toolkit",
		code = function()
			Npc:says(_". . .")
			Npc:says(_"I think I understand. Yes, I do not like violence myself. The bots may need the toolkit, I am sure there must be a second set of autotools kicking around somewhere.")
			Npc:says(_"After all, it seems like they need them more than I do.", "NO_WAIT")
			Npc:says(_"We should contact them somehow. Maybe they would help us. It would be great to have an ally against the other bots.")
			Npc:says(_"I think you could go to see the Singularity and speak to it. You are perfectly suited to become an ambassador.")
			Npc:says(_"You should try to help them and they might want to give back the toolkit.")
			Npc:says(_"Will you do me this favor?")
			change_obstacle_state("NorthernMaintainanceTrapdoor", "opened")
			Dixon_Singularity_peace = true
			hide("node15", "node24", "node26", "node28") show("node21", "node22")
			push_topic("Toolkit peace mission Y/N")
		end,
	},
	{
		id = "node21",
		text = _"Sure, I am proud to become an ambassador!",
		topic = "Toolkit peace mission Y/N",
		code = function()
			Npc:says(_"Excellent. The tunnels are open. Come in peace.")
			Tux:update_quest("The yellow toolkit", _"I refused to seize the toolkit from the bots by force because I think they might be sentient. Life is precious and should be preserved. Thus, Dixon send me to talk to them and negotiate with them to get the toolkit.")
			hide("node21", "node22")
			pop_topic() -- "Toolkit peace mission Y/N"
			pop_topic() -- "The yellow toolkit"
		end,
	},
	{
		id = "node22",
		text = _"No, negotiations really aren't my cup of tea.",
		topic = "Toolkit peace mission Y/N",
		code = function()
			Npc:says(_"OK, I understand. However, I will try to contact them somehow. We will see, if there is a benefit in this.")
			Tux:end_quest("The yellow toolkit", _"I refused to get the toolkit from the bots in the tunnels because I think they might be sentient. Life is precious and should be preserved. I also turned down Dixon's request to be his middleman.")
			Singularity_quest_rejected = true
			hide("node21", "node22")
			pop_topic() -- "Toolkit peace mission Y/N"
			pop_topic() -- "The yellow toolkit"
		end,
	},
	{
		id = "node24",
		text = _"Yes, I think so. The robots must be alive. This is why we need to exterminate them as soon as possible before they kill us all.",
		topic = "The yellow toolkit",
		code = function()
			Npc:says(_"OH MY GOD! Linarian, there is no time to lose!", "NO_WAIT")
			Npc:says(_"I will call the military division and arrange a sweep of the tunnels at once.")
			Npc:says(_"May the heavens have mercy upon us, but better them than us.")
			Tux:says(_"I will go in there first and clean out the place. Then your people can mop up after me and kill the remainder.")
			Npc:says(_"Linarian, my people do not carry guns. We are mechanics. You want the military division's help.")
			Npc:says(_"Erm... And aren't you being too aggressive? Maybe they do not wish us harm...")
			Tux:says(_"DIXON! Snap out of it! We need to take action NOW. There is no such thing as a friendly bot. They are probably planning to kill us all in our sleep!")
			Npc:says(_"... *sigh*", "NO_WAIT")
			Npc:says(_"With heavy heart I have to admit you are right. There are no friendly bots anymore. Those times are long gone.", "NO_WAIT")
			Npc:says(_"The tunnels are open. Good luck.")
			Npc:says(_"Once you get inside, you'll need to use the terminal to unlock the door. I've written my password down for you.", "NO_WAIT")
			Npc:says(_"I will talk to Spencer and ask him for a few attack teams. We will take care of the bots.")
			Tux:update_quest("The yellow toolkit", _"The bots in the tunnels might be sentient. I cannot wait to extinguish an emerging life form. This will be fun.")
			Dixon_Singularity_war = true
			-- The singularity faction is set to hostile as soon as the quest begins.
			set_faction_state("singularity", "hostile")
			change_obstacle_state("Sin-gun", "enabled")
			hide("node11")
			next("node28")
		end,
	},
	{
		id = "node26",
		text = _"Of course I am kidding, Dixon. Lighten up! Now, be a good guy and open the tunnels for me so I can pry your toolbox from the cold, dead hands of the bots down there.",
		topic = "The yellow toolkit",
		code = function()
			Dixon_mood = Dixon_mood + 30 -- Dixon does not like this kind of "humor".
			Npc:says(_"That wasn't very funny. You scared me. Sheesh.", "NO_WAIT")
			Npc:says(_"No one jokes about the bots anymore. We have seen too much death to do that. It is a serious matter.")
			Npc:says(_"The bots are our enemies, executioners, killers. Not even Ewald tells jokes about them anymore.")
			Npc:says(_"Once you get into the tunnels, you'll need to use the terminal to unlock the door. I've written my password down for you.", "NO_WAIT")
			Tux:update_quest("The yellow toolkit", _"The bots in the tunnels might be sentient. I cannot wait to extinguish an emerging life form. This will be fun.")
			hide("node11")
			next("node28")
		end,
	},
	{
		id = "node28",
		text = _"I am ready. Open the tunnels for me, Dixon.",
		topic = "The yellow toolkit",
		code = function()
			--difficulty level: 0 = easy,  1= normal, 2 = hard
			if (difficulty_level() > 2) then -- difficulty neither easy, nor normal, nor hard
				Npc:says("ERROR, Dixon NODE 28, game difficulty not handled")
			end
			Npc:says(_"Great. Be careful down there. Just try to get the toolkit and get out of there as quickly as possible.")

			-- Give a few grenades accordingly to difficult level.
			if (difficulty_level() == 0) then -- Easy, 3 grenades
				Tux:add_item("EMP Shockwave Generator", 3)
				Npc:says(_"I will give you three small devices that can emit an Electro Magnetic Pulse.")
				Npc:says(_"If you get in trouble just activate one and it emits a shockwave damaging any bot nearby. It should give you some breathing room.")
			elseif (difficulty_level() == 1) then -- Normal, 2 grenades
				Tux:add_item("EMP Shockwave Generator", 2)
				Npc:says(_"I will give you two small devices that can emit an Electro Magnetic Pulse.")
				Npc:says(_"If you get in trouble just activate one and it emits a shockwave damaging any bot nearby. It should give you some breathing room.")
			elseif (difficulty_level() == 2) then -- Hard, 1 grenade
				Tux:add_item("EMP Shockwave Generator", 1)
				Npc:says(_"I will give you a small device that can emit an Electro Magnetic Pulse.")
				Npc:says(_"If you get in trouble just activate it and it emits a shockwave damaging any bot nearby. It should give you some breathing room.")
			end

			Npc:says(_"Best of all, it's completely harmless to biologicals. But make sure not to fry the circuits of our own 614 guard bots or computer terminals.")
			Npc:says(_"The entrance to the tunnels is in the courtyard of the citadel. Once you exit this building, go straight and turn to your right once inside the outer citadel gates.")
			Npc:says(_"There you will find the maintenance access hatch.", "NO_WAIT")
			Npc:says(_"Once you get inside, you'll need to use the terminal to unlock the door. I'll write down my password for you.", "NO_WAIT")
			Npc:says(_"Good luck. Oh, and please come back alive. Better come back with nothing than not at all.")
			change_obstacle_state("NorthernMaintainanceTrapdoor", "opened")
			hide("node14", "node15", "node24", "node26", "node28")
			pop_topic() -- "The yellow toolkit"
		end,
	},
	{
		id = "node31",
		text = _"I got your toolkit. The bots were willing to have a peaceful dialog.",
		code = function()
			Npc:says(_"Good. We sure need the autotools.", "NO_WAIT")
			Npc:says(_"Our roads need fixing, our power lines need fixing, our walls need fixing... Heck, everything needs fixing in this place.")
			Npc:says(_"With those little gadgets we will be able to automate a lot of those simple repairs, saving us a lot of time.")
			Npc:says(_"Here is some money for your effort. And I am sure you will find this helmet useful too, it saved my life once, and I hope it saves yours one day.")
			Tux:del_item_backpack("Dixon's Toolbox", 1)
			Tux:add_item("Dixon's Helmet", 1)
			local questendsentence = _"I guess this is better than nothing."
			if (Dixon_Singularity_peace) then -- If Tux fulfilled his peaceful mission
				Npc:says(_"It is good to see that the way of the pacifist is a successful one!")
				questendsentence = _"He was proud to see pacifism works."
				Dixon_mood = Dixon_mood - 100
			end
			Tux:end_quest("The yellow toolkit", _"I gave the toolkit to Dixon. He was very happy to have his autotools back. I got his helmet as a gift. " .. questendsentence)
			Tux:add_gold(100 - Dixon_mood)
			hide("node31", "node33")
		end,
	},
	{
		id = "node32",
		text = _"I killed that strange bot that robbed you. So, here is your toolkit.",
		code = function()
			Npc:says(_"*sigh* I hate to see this end in such a way. Bot or no bot, they let me live. They deserved a chance.")
			if (Dixon_Singularity_peace) then
				Npc:says(_"I sent you to bring peace, but you brought destruction. I do not understand how that could happen.")
			end
			Npc:says(_"However, what was done cannot be undone and now we all have to live with what we have. I guess I am being too pessimistic, you did the job.")
			Npc:says(_"I thank you for your help in recovering the autotools.", "NO_WAIT")
			Npc:says(_"Here is some money, you deserve it for getting my toolkit back.")
			Npc:says(_"Finally, I would like to say that the technical division is not interested in further cooperation with you, but I think you would fit very well in the military division. You should talk to them.")
			Npc:says(_"I am sorry, but I must go now. My duties call.")
			Tux:del_item_backpack("Dixon's Toolbox", 1)
			local disappointment_sentence = _"Dixon didn't seem too happy about this solution, but I don't care. "
			if (Dixon_Singularity_peace) then -- Tux disappointed Dixon by turning his peaceful mission into a massacre
				Dixon_mood = Dixon_mood + 50
				disappointment_sentence = _"Dixon was very disappointed about this solution, but I don't care. "
			end
			Tux:add_gold(150 - Dixon_mood)
			-- ; TRANSLATORS: %s = another sentence which will be inserted here
			Tux:end_quest("The yellow toolkit", _"Finally. I am tired, covered in bruises and oil... But I made sure that the bots are dead. It felt great to break their metal bodies and crush their circuits. %s It was fun killing the bots. Nothing else matters.", disappointment_sentence)
			hide("node32", "node33")
		end,
	},
	{
		id = "node33",
		text = _"I got your toolkit. You can buy it from me if you want.",
		code = function()
			if (Dixon_Singularity_peace) and (not Singularity_deal) then
				-- Tux disappointed Dixon by turning his peaceful mission into a massacre
				Dixon_mood = Dixon_mood + 30
			end
			Npc:says(_"WHAT!?", "NO_WAIT")
			Npc:says(_"You got to be kidding me, Linarian.", "NO_WAIT")
			Npc:says(_"Give me the toolkit and stop fooling around.")
			hide("node31", "node32", "node33") show("node34", "node41")
		end,
	},
	{
		id = "node34",
		text = _"I was not joking. I am listening to your offer.",
		code = function()
			Dixon_mood = Dixon_mood + 60
			Npc:says(_"Linarian, I curse the day on which you have arrived here.", "NO_WAIT")
			Npc:says(_"Two fifty.")
			hide("node34", "node41") show("node35", "node43")
		end,
	},
	{
		id = "node35",
		text = _"Good joke. I am sure you can do better.",
		code = function()
			Dixon_mood = Dixon_mood + 60
			Npc:says(_"Three fifty. This is all that the technical division has as their cash resources.")
			hide("node35", "node43") show("node36", "node45")
		end,
	},
	{
		id = "node36",
		text = _"Come on, I am sure you can do even better than that... ",
		code = function()
			Dixon_mood = Dixon_mood + 60
			Npc:says(_"Four hundred. We cannot offer anything more.", "NO_WAIT")
			Npc:says(_"Please, we really need the autotools.", "NO_WAIT")
			Npc:says(_"Without them the town is doomed.")
			hide("node36", "node45") show("node47")
		end,
	},
	{
		id = "node41",
		text = _"Of course I am kidding, Dixon. Lighten up!",
		code = function()
			Dixon_mood = Dixon_mood + 30
			Npc:says(_"You and your bizarre humor. I really don't appreciate that.")
			Npc:says(_"Can I have the toolkit now?")
			if (Singularity_deal) then
				next("node31")
			else
				next("node32")
			end
			hide("node34", "node41")
		end,
	},
	{
		id = "node43",
		text = _"Deal. Here is your toolkit. Now cough up the money. Fast.",
		code = function()
			Npc:says(_"Here. It is all there.", "NO_WAIT")
			Npc:says(_"Now get out of here. I am a pacifist, but I am willing to make a special exception just for you.", "NO_WAIT")
			Npc:says(_"Get out of my sight.")
			Tux:add_gold(250)
			Tux:del_item_backpack("Dixon's Toolbox", 1)
			Tux:end_quest("The yellow toolkit", _"I sold the toolkit to Dixon for a nice sum of money. Life is good.")
			hide("node35", "node43")
			end_dialog()
		end,
	},
	{
		id = "node45",
		text = _"Deal. Here is your toolkit. Now cough up the money. Fast.",
		code = function()
			Npc:says(_"I am not happy about this. I suggest you leave town.", "NO_WAIT")
			Npc:says(_"Accidents... Happen.")
			Tux:add_gold(350)
			Tux:del_item_backpack("Dixon's Toolbox", 1)
			Tux:end_quest("The yellow toolkit", _"I sold the toolkit to Dixon for a huge sum of money. Life is great.")
			hide("node36", "node45")
			end_dialog()
		end,
	},
	{
		id = "node47",
		text = _"Deal. Here is your toolkit. Now cough up the money. Fast.",
		code = function()
			Npc:says(_"Linarian. Now we part as usual. However should I ever see you after the war is over...", "NO_WAIT")
			Npc:says(_"I promise to kill you.")
			Npc:says(_"Now take your money and get out of my face. I do not want to see you here ever again.")
			Tux:add_gold(400)
			Tux:del_item_backpack("Dixon's Toolbox", 1)
			Tux:end_quest("The yellow toolkit", _"I sold the toolkit to Dixon for a enormous sum of money. Life is truly grand. But, I better stay away from Dixon for now... He seemed very angry at me.")
			hide("node47")
			end_dialog()
		end,
	},
	{
		id = "node51",
		text = _"Is everything all right?",
		code = function()
			Npc:says(_"Heh, never better!", "NO_WAIT")
			Npc:says(_"All indicators are in the green, the power and water fill the pipes and even Spencer seems happier now that the town is thriving despite all odds.")
			Npc:says(_"Thanks to the autotools we can start building instead of just trying to repair the damage.", "NO_WAIT")
			Npc:says(_"Once this sick war is over, I will make sure you get the 'Key to the City' Linarian.")
			hide("node51")
		end,
	},
	{
		id = "node53",
		text = _"Is everything all right?",
		code = function()
			Npc:says(_"Nearly. Only my conscience keeps me up at night.", "NO_WAIT")
			if (Dixon_Singularity_peace) then
				Npc:says(_"I'm kind of disenchanted by the failed peace mission.")
				Npc:says(_"Please leave me alone with my thoughts, I do not want to talk to you right now.")
			else
				Npc:says(_"Please leave me alone with my thoughts, I do not want to talk to anyone right now.")
			end
			if (Dixon_Singularity_war) then
				Npc:says(_"But due to your forceful line of action, I am sure Spencer and Butch will be delighted to speak with you.")
			end
			hide("node53")
		end,
	},
	{
		id = "node55",
		text = _"Is everything all right?",
		code = function()
			Npc:says(_"No, I am afraid not.", "NO_WAIT")
			Npc:says(_"While I do not regret sparing the bots in the tunnels, the town suffers for it.")
			Npc:says(_"It makes me sad to see everything slowly wasting away. The Megasys bots are doing more damage than we can repair.", "NO_WAIT")
			Npc:says(_"This town has a few weeks left to live. After that, we are all dead.")
			Dixon_everything_alright = true
			hide("node55")
		end,
	},
	{
		id = "node56",
		text = _"Is everything all right?",
		code = function()
			Npc:says(_"Ha! Never better!", "NO_WAIT")
			Npc:says(_"We are mass producing energy shields, creating more electric energy than we can ever imagine spending and even experimenting with new armor types.")
			Npc:says(_"Life is good right now.")
			hide("node56") show("node57")
		end,
	},
	{
		id = "node57",
		text = _"What happened? Last time I asked, you said things are not going that well.",
		code = function()
			Npc:says(_"Yes, but now everything is different.", "NO_WAIT")
			Npc:says(_"I met someone who decided to join us in the fight against the MegaSys bots.")
			Npc:says(_"You will need a hacked computer. Type in 'ssh 10.83.13.230' as the superuser, and you will see what I mean.")
			hide("node57") show("node58")
		end,
	},
	{
		id = "node58",
		text = _"Why the secrecy and the hushed voice? Can't you just tell me?",
		code = function()
			Npc:says(_"Nope. Some things you just have to see with your own eyes.", "NO_WAIT")
			Npc:says(_"The Library of Alexandria, the Colossus of Rhodes, the Black Island...")
			Npc:says(_"And this is just one of those things.", "NO_WAIT")
			Npc:says(_"Just go and see for yourself. Otherwise, you will not believe me.")
			Tux:end_quest("The yellow toolkit", _"The tunnels bots seem to be working together with Dixon in keeping the town working. All is well that ends well.")
			Dixon_hide_node_56 = true
			hide("node58")
		end,
	},
	{
		id = "node60",
		text = _"I have a problem with the Automated Factory.",
		echo_text = false,
		code = function()
			if (Dixon_mood > 50) then
				Npc:says(_"You have a problem... really amazing.")
				Npc:says(_"There is a really easy way to solve it.")
				Npc:says(_"Read the FLIPPING MANUAL!")
				end_dialog()
			else
				Npc:says(_"We haven't used it for a long time, so I am not surprised.")
				Npc:says(_"What is the error code?")
				Tux:says(_"Erm... I don't recall it.")
				Npc:says(_"So, I should guess?") -- 0x6465636c6365
				Npc:says(_"Hm... It could be the common error when the autofactory is restarting.", "NO_WAIT")
				Npc:says(_"Its code should be 0x6465636c... 0x6465636c6365... C, I think. It means 'decline' in hex.")
				Npc:says(_"There is a really easy way to solve it. It's not in the official instructions, but I expect it to solve your problem.")
				Npc:says(_"You just have to apply some elbow grease to the mechanism at the end of the line.")
				Npc:says(_"You can ask Bender for it. He makes much elbow grease and should be able to give you a small can.")
				Bender_elbow_grease = true
			end
			hide("node60")
		end,
	},
	{
		id = "node70",
		text = _"Do you have a copy of Subatomic and Nuclear Science for Dummies, Volume IV?",
		code = function()
			Npc:says(_"Unfortunately, I never added that one to my library.")
			Tux:says(_"Library... Of course! Thanks, Dixon!")
			Npc:says(_"Uh... You're welcome, I guess.")
			Tux:update_quest("An Explosive Situation", _"I spoke to Dixon, who didn't have a copy of the book. He did give me an idea, though - I'll head for the library in town.")
			Dixon_296_book_examine_library = true
			hide("node70")
		end,
	},
	{
		id = "node80",
		text = _"How can I open the gate in the Maintenance Tunnel?",
		code = function()
			Npc:says(_"You cannot.")
			Npc:says(_"I locked it in order to keep us save from these bots down there.")
			Npc:says(_"You never know what they're up to...")
			Maintenance_Terminal_accessgate_nope="official"
			hide("node80")
		end,
	},
	{
		id = "node99",
		text = _"I must go now.",
		code = function()
			end_dialog()
		end,
	},
}