neelthee-mansion 3.1.3__py3-none-any.whl → 3.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
neelthee_mansion/Rooms.py CHANGED
@@ -24,6 +24,51 @@ KEY = [
24
24
  'π = desk',
25
25
  ]
26
26
 
27
+ class RandomEvent:
28
+ def __init__(self,
29
+ name='Event name',
30
+ probability=0.0, # Probability of the event running (0.1 = 10% chance)
31
+ condition=lambda player: True, # Condition under which the event can occur
32
+ effect=lambda player: None): # Define the effect of the event
33
+ self.name = name
34
+ self.probability = probability
35
+ self.condition = condition
36
+ self.effect = effect
37
+
38
+ def check_and_trigger(self, player):
39
+ """Check if the event can occur based on its condition and probability, and trigger the effect."""
40
+ import random
41
+ if self.condition(player) and random.random() < self.probability:
42
+ self.effect(player)
43
+
44
+ class Door:
45
+ def __init__(self, RoomName, KeyCode=None) -> None:
46
+ self.destination = RoomName
47
+ self.lock = Lock(KeyCode) if KeyCode else None
48
+ self.reveal_count = 0
49
+ self.CurentRevealStr = "-" * len(self.lock.key_code) if isinstance(self.lock, Lock) else ""
50
+
51
+ def Unlock(self, key: Key, player):
52
+ return self.lock.unlock(key, player)
53
+
54
+ def GetRoom(self, currentroom):
55
+ if not self.lock.is_locked if isinstance(self.lock, Lock) else True:
56
+ return self.destination
57
+ else:
58
+ type_text("The door is locked.")
59
+ return currentroom
60
+
61
+ class SwitchDoor(Door):
62
+ def __init__(self, RoomOneName, RoomTwoName, KeyCode=None) -> None:
63
+ super.__init__(RoomOneName, Lock(KeyCode) if KeyCode else None, 0)
64
+ self.switch_destination = RoomTwoName
65
+
66
+ def GetRoom(self, currentroom):
67
+ if not self.lock.is_locked if isinstance(self.lock, Lock) else True:
68
+ return self.destination
69
+ else:
70
+ return self.switch_destination
71
+
27
72
  global map_dict, positions
28
73
 
29
74
  def string_to_2d_list(map_str):
@@ -101,18 +146,18 @@ ROOMS = {
101
146
  'position': (0, 8, 0),
102
147
  'discovered': True,
103
148
  'directions': {
104
- 'south': 'Kitchen',
105
- 'east': 'Dining Room',
106
- 'north': 'Armoury',
107
- 'up': 'Landing',
108
- 'easter': 'Cavegame',
149
+ 'south': Door('Kitchen'),
150
+ 'east': Door('Dining Room'),
151
+ 'north': Door('Armoury'),
152
+ 'up': Door('Landing'),
153
+ 'easter': Door('Cavegame'),
109
154
  },
110
155
  'item': item('torch'),
111
156
  'containers': {
112
- 'drawers': container([item('key')]),
157
+ 'drawers': container([Key('key', "629.IdnXwnt")]),
113
158
  },
114
159
  'info': 'You are in the hall of the house. There is a chest of %*RED*%drawers%*RESET*% against one wall, and flaming %*BLUE*%torch%*RESET*%es on the walls. You hear a \
115
- %*YELLOW*%smash%*RESET*% from the %*GREEN*%south%*RESET*%',
160
+ %*YELLOW*%smash%*RESET*% from the %*GREEN*%south%*RESET*%.',
116
161
  'map': '''
117
162
  ████║████
118
163
  █☼☼ █
@@ -124,20 +169,20 @@ ROOMS = {
124
169
  █╖ █
125
170
  ████║████''',
126
171
  'Hints': [
127
- 'Those %*RED*%drawers%*RESET*% look intresting',
128
- 'I wonder if those %*RED*%drawers%*RESET*% are locked',
129
- "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder",
130
- "I wonder what that %*YELLOW*%smash%*RESET*% from the %*GREEN*%south%*RESET*% was",
131
- "I should probably aviod that %*YELLOW*%smash%*RESET*%ing sound",
172
+ 'Those %*RED*%drawers%*RESET*% look intresting.',
173
+ 'I wonder if those %*RED*%drawers%*RESET*% are locked.',
174
+ "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder.",
175
+ "I wonder what that %*YELLOW*%smash%*RESET*% from the %*GREEN*%south%*RESET*% was.",
176
+ "I should probably aviod that %*YELLOW*%smash%*RESET*%ing sound.",
132
177
  ],
133
178
  },
134
179
 
135
180
  'Cavegame': {
136
181
  'room type': 'easter egg',
137
182
  'directions': {
138
- 'back': 'Hall',
183
+ 'back': Door('Hall'),
139
184
  },
140
- 'info': 'Cavegame, type "go back" to leave',
185
+ 'info': 'Cavegame, type "go back" to leave.',
141
186
  },
142
187
 
143
188
  'Kitchen': {
@@ -145,8 +190,8 @@ ROOMS = {
145
190
  'position': (0, 16, 0),
146
191
  'discovered': False,
147
192
  'directions': {
148
- 'north': 'Hall',
149
- 'east': 'Garden',
193
+ 'north': Door('Hall'),
194
+ 'east': Door('Garden'),
150
195
  },
151
196
  'item': item('rations'),
152
197
  'containers': {
@@ -173,8 +218,8 @@ ROOMS = {
173
218
  █ææææ√ææ█
174
219
  █████████''',
175
220
  'Hints': [
176
- 'I wonder if there is anything salvageable in the %*RED*%cupboards%*RESET*%',
177
- 'I should probably look around',
221
+ 'I wonder if there is anything salvageable in the %*RED*%cupboards%*RESET*%.',
222
+ 'I should probably look around.',
178
223
  ],
179
224
  },
180
225
 
@@ -183,16 +228,16 @@ ROOMS = {
183
228
  'position': (0, 8, 8),
184
229
  'discovered': False,
185
230
  'directions': {
186
- 'west': 'Hall',
187
- 'south': 'Garden',
188
- 'north': 'Sitting Room',
231
+ 'west': Door('Hall'),
232
+ 'south': Door('Garden'),
233
+ 'north': Door('Sitting Room'),
189
234
  },
190
235
  'item': item('potion'),
191
236
  'containers': {
192
237
  'chandelier': container([item('gem', 'valuable', 50)]),
193
238
  },
194
239
  'info': 'You are in the dining room, there is a dining table with 8 chairs around it in the middle of the room, and a %*RED*%chandelier%*RESET*% on the ceiling. You hear \
195
- %*YELLOW*%ripping%*RESET*% from the %*GREEN*%north%*RESET*%',
240
+ %*YELLOW*%ripping%*RESET*% from the %*GREEN*%north%*RESET*%.',
196
241
  'map': '''
197
242
  ████║████
198
243
  █ █
@@ -204,8 +249,8 @@ ROOMS = {
204
249
  █ █
205
250
  ████║████''',
206
251
  'Hints': [
207
- 'I wonder if there is anything in the %*RED*%chandelier',
208
- 'I wonder if there is anything around the room',
252
+ 'I wonder if there is anything in the %*RED*%chandelier.',
253
+ 'I wonder if there is anything around the room.',
209
254
  ],
210
255
  },
211
256
 
@@ -214,8 +259,8 @@ ROOMS = {
214
259
  'position': (0, 16, 8),
215
260
  'discovered': False,
216
261
  'directions': {
217
- 'north': 'Dining Room',
218
- 'west': 'Kitchen',
262
+ 'north': Door('Dining Room'),
263
+ 'west': Door('Kitchen'),
219
264
  },
220
265
  'info': 'You are in a bright garden you are in a garden with a gate out of the house.',
221
266
  'map': '''
@@ -229,7 +274,7 @@ ROOMS = {
229
274
  █ í
230
275
  █íííííííí''',
231
276
  'Hints': [
232
- 'I think I need a %*BLUE*%key%*RESET*% for the gate',
277
+ 'I think I need a %*BLUE*%key%*RESET*% for the gate.',
233
278
  ],
234
279
  },
235
280
 
@@ -239,8 +284,8 @@ ROOMS = {
239
284
  'discovered': False,
240
285
  'directions': {
241
286
  'south' :'Hall',
242
- 'east': 'Sitting Room',
243
- 'up': 'Tower Bottom',
287
+ 'east': Door('Sitting Room'),
288
+ 'up': Door('Tower Bottom'),
244
289
  },
245
290
  'containers': {
246
291
  'racks': container([item('sword', 'weapon', 3)]),
@@ -260,8 +305,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
260
305
  █ █
261
306
  ████║████''',
262
307
  'Hints': [
263
- 'Maybe there is something salvageable on the %*RED*%racks%*RESET*%',
264
- 'I wonder if that armour is salvageable',
308
+ 'Maybe there is something salvageable on the %*RED*%racks%*RESET*%.',
309
+ 'I wonder if that armour is salvageable.',
265
310
  ],
266
311
  },
267
312
 
@@ -270,8 +315,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
270
315
  'position': (0, 0, 8),
271
316
  'discovered': False,
272
317
  'directions': {
273
- 'west': 'Armoury',
274
- 'south': 'Dining Room',
318
+ 'west': Door('Armoury'),
319
+ 'south': Door('Dining Room'),
275
320
  'down': 'Basement 1',
276
321
  },
277
322
  'creatures stats': creature(
@@ -297,9 +342,9 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
297
342
  █ █
298
343
  ████║████''',
299
344
  'Hints': [
300
- 'That %*CYAN*%pig%*RESET*% seems dangerous',
301
- 'Those %*RED*%sofas%*RESET*% look comfy',
302
- "I wonder what's %*GREEN*%down%*RESET*% those stairs",
345
+ 'That %*CYAN*%pig%*RESET*% seems dangerous.',
346
+ 'Those %*RED*%sofas%*RESET*% look comfy.',
347
+ "I wonder what's %*GREEN*%down%*RESET*% those stairs.",
303
348
  ],
304
349
  },
305
350
 
@@ -309,9 +354,9 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
309
354
  'discovered': False,
310
355
  'directions': {
311
356
  'down': 'Hall',
312
- 'north': 'Tower Bottom',
313
- 'east': 'Bedroom',
314
- 'south': 'Balcony',
357
+ 'north': Door('Tower Bottom'),
358
+ 'east': Door('Bedroom'),
359
+ 'south': Door('Balcony'),
315
360
  },
316
361
  'containers': {
317
362
  'floorboards': container([item('money-pouch', 'valuable', 10)]),
@@ -328,7 +373,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
328
373
  █╖ █
329
374
  ████║████''',
330
375
  'Hints': [
331
- 'I wonder if I can pry one of the %*RED*%floorboards%*RESET*% back'
376
+ 'I wonder if I can pry one of the %*RED*%floorboards%*RESET*% back.'
332
377
  ],
333
378
  },
334
379
 
@@ -337,8 +382,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
337
382
  'position': (1, 8, 8),
338
383
  'discovered': False,
339
384
  'directions': {
340
- 'west': 'Landing',
341
- 'north': 'Office',
385
+ 'west': Door('Landing'),
386
+ 'north': Door('Office'),
342
387
  },
343
388
  'containers': {
344
389
  'bed': container([item('chamber-pot')]),
@@ -357,10 +402,10 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
357
402
  █╬ ☼☼§§█
358
403
  █████████''',
359
404
  'Hints': [
360
- "I wonder what's %*GREEN*%north%*RESET*%",
361
- 'I wonder if there is anything under the %*RED*%bed%*RESET*%',
362
- 'I wonder if there is anything in the %*RED*%drawers%*RESET*%',
363
- "I wonder what's in the %*RED*%wardrobe%*RESET*%",
405
+ "I wonder what's %*GREEN*%north%*RESET*%.",
406
+ 'I wonder if there is anything under the %*RED*%bed%*RESET*%.',
407
+ 'I wonder if there is anything in the %*RED*%drawers%*RESET*%.',
408
+ "I wonder what's in the %*RED*%wardrobe%*RESET*%.",
364
409
  ],
365
410
  },
366
411
 
@@ -369,8 +414,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
369
414
  'position': (1, 0, 8),
370
415
  'discovered': False,
371
416
  'directions': {
372
- 'south': 'Bedroom',
373
- 'west': 'Tower Bottom',
417
+ 'south': Door('Bedroom'),
418
+ 'west': Door('Tower Bottom'),
374
419
  },
375
420
  'containers': {
376
421
  'storage': container([item('saddle'), item('ink-pot'), item('parchment'), item('knife', 'weapon', 2)]),
@@ -388,9 +433,9 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
388
433
  █ █
389
434
  ████║████''',
390
435
  'Hints': [
391
- "I wonder what's in the %*RED*%storage%*RESET*%, if anything",
392
- "I wonder what's through the %*GREEN*%south%*RESET*%ern door",
393
- 'I wonder if there is anything on the %*RED*%desk%*RESET*%',
436
+ "I wonder what's in the %*RED*%storage%*RESET*%, if anything.",
437
+ "I wonder what's through the %*GREEN*%south%*RESET*%ern door.",
438
+ 'I wonder if there is anything on the %*RED*%desk%*RESET*%.',
394
439
  ],
395
440
  },
396
441
 
@@ -399,7 +444,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
399
444
  'position': (1, 16, 0),
400
445
  'discovered': False,
401
446
  'directions': {
402
- 'north': 'Landing',
447
+ 'north': Door('Landing'),
403
448
  },
404
449
  'info': 'You are on a balcony with an ornate railing. It is a nice day.',
405
450
  'map': '''
@@ -413,7 +458,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
413
458
  ∟ ∟
414
459
  ∟∟∟∟∟∟∟∟∟''',
415
460
  'Hints': [
416
- 'If I had a %*BLUE*%grappling-hook%*RESET*% I might be able to throw it into the trees and swing down into the forest',
461
+ 'If I had a %*BLUE*%grappling-hook%*RESET*% I might be able to throw it into the trees and swing down into the forest.',
417
462
  ],
418
463
  },
419
464
 
@@ -422,10 +467,10 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
422
467
  'position': (1, 0, 0),
423
468
  'discovered': False,
424
469
  'directions': {
425
- 'south': 'Landing',
426
- 'east': 'Office',
470
+ 'south': Door('Landing'),
471
+ 'east': Door('Office'),
427
472
  'down': 'Armoury',
428
- 'up': 'Tower Middle',
473
+ 'up': Door('Tower Middle'),
429
474
  },
430
475
  'info': 'You are in the base of a stone tower, there is a spiral staircase going up into the darkness.',
431
476
  'map': '''
@@ -438,7 +483,12 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
438
483
  █╖ █
439
484
  █╖ █
440
485
  ████║████''',
441
- 'Hints': ["I wonder what's %*GREEN*%south%*RESET*%", "I wonder what's %*GREEN*%east%*RESET*%", "I wonder what's %*GREEN*%up%*RESET*%", "I wonder what's %*GREEN*%down%*RESET*%"],
486
+ 'Hints': [
487
+ "I wonder what's %*GREEN*%south%*RESET*%.",
488
+ "I wonder what's %*GREEN*%east%*RESET*%.",
489
+ "I wonder what's %*GREEN*%up%*RESET*%.",
490
+ "I wonder what's %*GREEN*%down%*RESET*%.",
491
+ ],
442
492
  },
443
493
 
444
494
  'Tower Middle': {
@@ -447,7 +497,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
447
497
  'discovered': False,
448
498
  'directions': {
449
499
  'down': 'Tower Bottom',
450
- 'up': 'Tower Top',
500
+ 'up': Door('Tower Top'),
451
501
  },
452
502
  'containers': {
453
503
  'stone': container([item('money-pouch', 'valuable', 25)], True),
@@ -465,7 +515,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
465
515
  █╖ █
466
516
  █████████''',
467
517
  'Hints': [
468
- 'There might be an item here',
518
+ 'There might be an item here.',
469
519
  ],
470
520
  },
471
521
 
@@ -475,7 +525,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
475
525
  'discovered': False,
476
526
  'directions': {
477
527
  'down': 'Tower Middle',
478
- 'teleport': 'Teleportation Deck',
528
+ 'teleport': Door('Teleportation Deck'),
479
529
  },
480
530
  'creatures stats': creature(
481
531
  'greedy goblin',
@@ -486,7 +536,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
486
536
  'A %*CYAN*%greedy goblin%*RESET*% spots you and your money pouch!',
487
537
  creature_type('humanoid', 'goblin'),
488
538
  ),
489
- 'info': 'You are at the top of a stone tower. There are windows in every wall',
539
+ 'info': 'You are at the top of a stone tower. There are windows in every wall.',
490
540
  'map': '''
491
541
  █████████
492
542
  █ ╖█
@@ -498,7 +548,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
498
548
  █ █
499
549
  █████████''',
500
550
  'Hints': [
501
- 'I could %*GREEN*%teleport%*RESET*%',
551
+ 'I could %*GREEN*%teleport%*RESET*%.',
502
552
  ],
503
553
  },
504
554
 
@@ -507,8 +557,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
507
557
  'position': (-1, 0, 0),
508
558
  'discovered': False,
509
559
  'directions': {
510
- 'south': 'Basement 3',
511
- 'east': 'Basement 1',
560
+ 'south': Door('Basement 3'),
561
+ 'east': Door('Basement 1'),
512
562
  },
513
563
  'item': item('torch'),
514
564
  'containers': {
@@ -528,8 +578,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
528
578
  █ █
529
579
  ████║████''',
530
580
  'Hints': [
531
- 'The things in %*RED*%rack-1%*RESET*% and %*RED*%rack-2%*RESET*% are salvigable',
532
- "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder",
581
+ 'The things in %*RED*%rack-1%*RESET*% and %*RED*%rack-2%*RESET*% are salvigable.',
582
+ "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder.",
533
583
  ],
534
584
  },
535
585
 
@@ -538,9 +588,9 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
538
588
  'position': (-1, 0, 8),
539
589
  'discovered': False,
540
590
  'directions': {
541
- 'south': 'Basement 2',
542
- 'west': 'Basement Armoury',
543
- 'up': 'Sitting Room',
591
+ 'south': Door('Basement 2'),
592
+ 'west': Door('Basement Armoury'),
593
+ 'up': Door('Sitting Room'),
544
594
  },
545
595
  'item': item('torch'),
546
596
  'info': 'You are in an dimly lit underground (all the light in the room comes from 3 %*BLUE*%torch%*RESET*%es on the walls). You hear a %*YELLOW*%ripping%*RESET*% from the\
@@ -556,7 +606,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
556
606
  █ █
557
607
  ████║████''',
558
608
  'Hints': [
559
- "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder",
609
+ "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder.",
560
610
  ],
561
611
  },
562
612
 
@@ -565,8 +615,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
565
615
  'position': (-1, 8, 8),
566
616
  'discovered': False,
567
617
  'directions': {
568
- 'north': 'Basement 1',
569
- 'west': 'Basement 3',
618
+ 'north': Door('Basement 1'),
619
+ 'west': Door('Basement 3'),
570
620
  },
571
621
  'item': item('torch'),
572
622
  'info': 'You are in an dimly lit underground (all the light in the room comes from 3 %*BLUE*%torch%*RESET*%es on the walls).',
@@ -581,7 +631,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
581
631
  █ █
582
632
  █████████''',
583
633
  'Hints': [
584
- "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder",
634
+ "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder.",
585
635
  ],
586
636
  },
587
637
 
@@ -590,9 +640,9 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
590
640
  'position': (-1, 8, 0),
591
641
  'discovered': False,
592
642
  'directions': {
593
- 'south': 'Basement 4',
594
- 'east': 'Basement 2',
595
- 'north': 'Basement Armoury',
643
+ 'south': Door('Basement 4'),
644
+ 'east': Door('Basement 2'),
645
+ 'north': Door('Basement Armoury'),
596
646
  },
597
647
  'item': item('torch'),
598
648
  'info': 'You are in an dimly lit underground (all the light in the room comes from 3 %*BLUE*%torch%*RESET*%es on the walls).',
@@ -606,7 +656,6 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
606
656
  █ █
607
657
  █ █
608
658
  ████║████''',
609
- 'Hints': ['', '', '', ''],
610
659
  },
611
660
 
612
661
  'Basement 4': {
@@ -614,7 +663,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
614
663
  'position': (-1, 16, 0),
615
664
  'discovered': False,
616
665
  'directions': {
617
- 'north': 'Basement 3',
666
+ 'north': Door('Basement 3'),
618
667
  'shoot': 'Cavern 1',
619
668
  },
620
669
  'item': item('torch'),
@@ -630,14 +679,14 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
630
679
  █ █
631
680
  █████████''',
632
681
  'Hints': [
633
- "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder",
682
+ "I wonder if I can get this %*BLUE*%torch%*RESET*% out of it's holder.",
634
683
  ],
635
684
  },
636
685
 
637
686
  'Cavern 1': {
638
687
  'room type': 'cavern',
639
688
  'directions': {
640
- 'up': 'Basement 4',
689
+ 'up': Door('Basement 4'),
641
690
  'down': 'Cavern 2',
642
691
  },
643
692
  'info': 'you are in a dark cavern with the only light coming from the shoot you came through. A voice in the back of your head says: \'Do not go down the shoot, leave while you still can!\'',
@@ -652,7 +701,7 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
652
701
  █ █
653
702
  █████████''',
654
703
  'Hints': [
655
- 'I should probably go up the shoot I came from',
704
+ 'I should probably go up the shoot I came from.',
656
705
  ],
657
706
  },
658
707
 
@@ -673,17 +722,17 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
673
722
  █ █
674
723
  █████████''',
675
724
  'Hints': [
676
- 'I should probably quit so I\'m not here forever',
725
+ 'I should probably quit so I\'m not here forever.',
677
726
  ],
678
727
  },
679
728
 
680
729
  'Forest Clearing': {
681
730
  'room type': 'forest',
682
731
  'directions': {
683
- 'north': 'Forest Path1',
684
- 'east': 'Forest Path2',
685
- 'south': 'Forest Path1',
686
- 'west': 'Forest Path2',
732
+ 'north': Door('Forest Path1'),
733
+ 'east': Door('Forest Path2'),
734
+ 'south': Door('Forest Path1'),
735
+ 'west': Door('Forest Path2'),
687
736
  },
688
737
  'info': 'You are in a forest clearing outside the house.',
689
738
  'map': '''
@@ -702,8 +751,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
702
751
  'Forest Path1': {
703
752
  'room type': 'forest',
704
753
  'directions': {
705
- 'north': 'Forest Clearing',
706
- 'south': 'Forest Clearing',
754
+ 'north': Door('Forest Clearing'),
755
+ 'south': Door('Forest Clearing'),
707
756
  },
708
757
  'info': 'You are in a forest path outside the house.',
709
758
  'map': '''
@@ -722,8 +771,8 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
722
771
  'Forest Path2': {
723
772
  'room type': 'forest',
724
773
  'directions': {
725
- 'east': 'Forest Clearing',
726
- 'west': 'Forest Clearing',
774
+ 'east': Door('Forest Clearing'),
775
+ 'west': Door('Forest Clearing'),
727
776
  },
728
777
  'info': 'You are in a forest path outside the house.',
729
778
  'map': '''
@@ -742,18 +791,18 @@ You notice a ''%*RED*%storage%*RESET*% device in one corner. You hear a %*YELLOW
742
791
  'Teleportation Deck': {
743
792
  'room type': 'asteroid-1',
744
793
  'directions': {
745
- 'teleport': 'Tower Top',
746
- '0': 'Charter ship',
747
- '1': 'The Dancing Jellyfish Inn',
748
- '2': 'The Slopy Plasmoid Tapphouse',
749
- '3': 'The Centaurbow Weapon Shop',
750
- '4': 'The Gadabout Bakery',
751
- '5': 'The Shifterspender St',
752
- '6': 'The Town Hall',
753
- '7': 'The Assassins Guild',
754
- '8': 'The Watch Castle',
755
- '9': 'The Old Manor',
756
- },
794
+ 'teleport': Door('Tower Top'),
795
+ '0': Door('Charter ship'),
796
+ '1': Door('The Dancing Jellyfish Inn'),
797
+ '2': Door('The Slopy Plasmoid Tapphouse'),
798
+ '3': Door('The Centaurbow Weapon Shop'),
799
+ '4': Door('The Gadabout Bakery'),
800
+ '5': Door('The Shifterspender St'),
801
+ '6': Door('The Town Hall'),
802
+ '7': Door('The Assassins Guild'),
803
+ '8': Door('The Watch Castle'),
804
+ '9': Door('The Old Manor'),
805
+ },
757
806
  'item': item('money-pouch', 'valuable', 10),
758
807
  'info': '''
759
808
  You are in a strange cave with many teleportation circles, as well as some ships that are floating above the floor.
@@ -779,18 +828,18 @@ Do you want to:
779
828
  'Charter ship' :{
780
829
  'room type': 'asteroid-1',
781
830
  'directions': {
782
- '1': 'Teleportation Deck',
783
- '2': 'The Dancing Jellyfish Inn',
784
- '3': 'The Slopy Plasmoid Tapphouse',
785
- '4': 'The Centaurbow Weapon Shop',
786
- '5': 'The Gadabout Bakery',
787
- '6': 'The Shifterspender St',
788
- '7': 'The Town Hall',
789
- '8': 'The Assassins Guild',
790
- '9': 'The Watch Castle',
791
- '10': 'The Old Manor',
792
- '11': '2nd Teleportation Deck',
793
- '12': '3rd Teleportation Deck',
831
+ '1': Door('Teleportation Deck'),
832
+ '2': Door('The Dancing Jellyfish Inn'),
833
+ '3': Door('The Slopy Plasmoid Tapphouse'),
834
+ '4': Door('The Centaurbow Weapon Shop'),
835
+ '5': Door('The Gadabout Bakery'),
836
+ '6': Door('The Shifterspender St'),
837
+ '7': Door('The Town Hall'),
838
+ '8': Door('The Assassins Guild'),
839
+ '9': Door('The Watch Castle'),
840
+ '10': Door('The Old Manor'),
841
+ '11': Door('2nd Teleportation Deck'),
842
+ '12': Door('3rd Teleportation Deck'),
794
843
  },
795
844
  'info': '''
796
845
 
@@ -814,15 +863,15 @@ Do you want to:
814
863
  'The Dancing Jellyfish Inn' :{
815
864
  'room type': 'asteroid-1',
816
865
  'directions': {
817
- '1': 'Teleportation Deck',
818
- '2': 'The Slopy Plasmoid Tapphouse',
819
- '3': 'The Centaurbow Weapon Shop',
820
- '4': 'The Gadabout Bakery',
821
- '5': 'The Shifterspender St',
822
- '6': 'The Town Hall',
823
- '7': 'The Assassins Guild',
824
- '8': 'The Watch Castle',
825
- '9': 'The Old Manor',
866
+ '1': Door('Teleportation Deck'),
867
+ '2': Door('The Slopy Plasmoid Tapphouse'),
868
+ '3': Door('The Centaurbow Weapon Shop'),
869
+ '4': Door('The Gadabout Bakery'),
870
+ '5': Door('The Shifterspender St'),
871
+ '6': Door('The Town Hall'),
872
+ '7': Door('The Assassins Guild'),
873
+ '8': Door('The Watch Castle'),
874
+ '9': Door('The Old Manor'),
826
875
  },
827
876
  'info': '''
828
877
 
@@ -841,15 +890,15 @@ do you want to:
841
890
  'The Slopy Plasmoid Tapphouse' :{
842
891
  'room type': 'asteroid-1',
843
892
  'directions': {
844
- '1': 'Teleportation Deck',
845
- '2': 'The Dancing Jellyfish Inn',
846
- '3': 'The Centaurbow Weapon Shop',
847
- '4': 'The Gadabout Bakery',
848
- '5': 'The Shifterspender St',
849
- '6': 'The Town Hall',
850
- '7': 'The Assassins Guild',
851
- '8': 'The Watch Castle',
852
- '9': 'The Old Manor',
893
+ '1': Door('Teleportation Deck'),
894
+ '2': Door('The Dancing Jellyfish Inn'),
895
+ '3': Door('The Centaurbow Weapon Shop'),
896
+ '4': Door('The Gadabout Bakery'),
897
+ '5': Door('The Shifterspender St'),
898
+ '6': Door('The Town Hall'),
899
+ '7': Door('The Assassins Guild'),
900
+ '8': Door('The Watch Castle'),
901
+ '9': Door('The Old Manor'),
853
902
  },
854
903
  'info': '''
855
904
 
@@ -868,15 +917,15 @@ do you want to:
868
917
  'The Centaurbow Weapon Shop' :{
869
918
  'room type': 'asteroid-1',
870
919
  'directions': {
871
- '1': 'Teleportation Deck',
872
- '2': 'The Dancing Jellyfish Inn',
873
- '3': 'The Slopy Plasmoid Tapphouse',
874
- '4': 'The Gadabout Bakery',
875
- '5': 'The Shifterspender St',
876
- '6': 'The Town Hall',
877
- '7': 'The Assassins Guild',
878
- '8': 'The Watch Castle',
879
- '9': 'The Old Manor',
920
+ '1': Door('Teleportation Deck'),
921
+ '2': Door('The Dancing Jellyfish Inn'),
922
+ '3': Door('The Slopy Plasmoid Tapphouse'),
923
+ '4': Door('The Gadabout Bakery'),
924
+ '5': Door('The Shifterspender St'),
925
+ '6': Door('The Town Hall'),
926
+ '7': Door('The Assassins Guild'),
927
+ '8': Door('The Watch Castle'),
928
+ '9': Door('The Old Manor'),
880
929
  },
881
930
  'info': '''
882
931
 
@@ -895,15 +944,15 @@ do you want to:
895
944
  'The Gadabout Bakery' :{
896
945
  'room type': 'asteroid-1',
897
946
  'directions': {
898
- '1': 'Teleportation Deck',
899
- '2': 'The Dancing Jellyfish Inn',
900
- '3': 'The Slopy Plasmoid Tapphouse',
901
- '4': 'The Centaurbow Weapon Shop',
902
- '5': 'The Shifterspender St',
903
- '6': 'The Town Hall',
904
- '7': 'The Assassins Guild',
905
- '8': 'The Watch Castle',
906
- '9': 'The Old Manor',
947
+ '1': Door('Teleportation Deck'),
948
+ '2': Door('The Dancing Jellyfish Inn'),
949
+ '3': Door('The Slopy Plasmoid Tapphouse'),
950
+ '4': Door('The Centaurbow Weapon Shop'),
951
+ '5': Door('The Shifterspender St'),
952
+ '6': Door('The Town Hall'),
953
+ '7': Door('The Assassins Guild'),
954
+ '8': Door('The Watch Castle'),
955
+ '9': Door('The Old Manor'),
907
956
  },
908
957
  'info': '''
909
958
 
@@ -922,15 +971,15 @@ do you want to:
922
971
  'The Shifterspender St' :{
923
972
  'room type': 'asteroid-1',
924
973
  'directions': {
925
- '1': 'Teleportation Deck',
926
- '2': 'The Dancing Jellyfish Inn',
927
- '3': 'The Slopy Plasmoid Tapphouse',
928
- '4': 'The Centaurbow Weapon Shop',
929
- '5': 'The Gadabout Bakery',
930
- '6': 'The Town Hall',
931
- '7': 'The Assassins Guild',
932
- '8': 'The Watch Castle',
933
- '9': 'The Old Manor',
974
+ '1': Door('Teleportation Deck'),
975
+ '2': Door('The Dancing Jellyfish Inn'),
976
+ '3': Door('The Slopy Plasmoid Tapphouse'),
977
+ '4': Door('The Centaurbow Weapon Shop'),
978
+ '5': Door('The Gadabout Bakery'),
979
+ '6': Door('The Town Hall'),
980
+ '7': Door('The Assassins Guild'),
981
+ '8': Door('The Watch Castle'),
982
+ '9': Door('The Old Manor'),
934
983
  },
935
984
  'info': '''
936
985
 
@@ -949,15 +998,15 @@ do you want to:
949
998
  'The Town Hall' :{
950
999
  'room type': 'asteroid-1',
951
1000
  'directions': {
952
- '1': 'Teleportation Deck',
953
- '2': 'The Dancing Jellyfish Inn',
954
- '3': 'The Slopy Plasmoid Tapphouse',
955
- '4': 'The Centaurbow Weapon Shop',
956
- '5': 'The Gadabout Bakery',
957
- '6': 'The Shifterspender St',
958
- '7': 'The Assassins Guild',
959
- '8': 'The Watch Castle',
960
- '9': 'The Old Manor',
1001
+ '1': Door('Teleportation Deck'),
1002
+ '2': Door('The Dancing Jellyfish Inn'),
1003
+ '3': Door('The Slopy Plasmoid Tapphouse'),
1004
+ '4': Door('The Centaurbow Weapon Shop'),
1005
+ '5': Door('The Gadabout Bakery'),
1006
+ '6': Door('The Shifterspender St'),
1007
+ '7': Door('The Assassins Guild'),
1008
+ '8': Door('The Watch Castle'),
1009
+ '9': Door('The Old Manor'),
961
1010
  },
962
1011
  'info': '''
963
1012
 
@@ -976,15 +1025,15 @@ do you want to:
976
1025
  'The Assassins Guild' :{
977
1026
  'room type': 'asteroid-1',
978
1027
  'directions': {
979
- '1': 'Teleportation Deck',
980
- '2': 'The Dancing Jellyfish Inn',
981
- '3': 'The Slopy Plasmoid Tapphouse',
982
- '4': 'The Centaurbow Weapon Shop',
983
- '5': 'The Gadabout Bakery',
984
- '6': 'The Shifterspender St',
985
- '7': 'The Town Hall',
986
- '8': 'The Watch Castle',
987
- '9': 'The Old Manor',
1028
+ '1': Door('Teleportation Deck'),
1029
+ '2': Door('The Dancing Jellyfish Inn'),
1030
+ '3': Door('The Slopy Plasmoid Tapphouse'),
1031
+ '4': Door('The Centaurbow Weapon Shop'),
1032
+ '5': Door('The Gadabout Bakery'),
1033
+ '6': Door('The Shifterspender St'),
1034
+ '7': Door('The Town Hall'),
1035
+ '8': Door('The Watch Castle'),
1036
+ '9': Door('The Old Manor'),
988
1037
  },
989
1038
  'info': ''',
990
1039
 
@@ -1003,15 +1052,15 @@ do you want to:
1003
1052
  'The Watch Castle' :{
1004
1053
  'room type': 'asteroid-1',
1005
1054
  'directions': {
1006
- '1': 'Teleportation Deck',
1007
- '2': 'The Dancing Jellyfish Inn',
1008
- '3': 'The Slopy Plasmoid Tapphouse',
1009
- '4': 'The Centaurbow Weapon Shop',
1010
- '5': 'The Gadabout Bakery',
1011
- '6': 'The Shifterspender St',
1012
- '7': 'The Town Hall',
1013
- '8': 'The Assassins Guild',
1014
- '9': 'The Old Manor',
1055
+ '1': Door('Teleportation Deck'),
1056
+ '2': Door('The Dancing Jellyfish Inn'),
1057
+ '3': Door('The Slopy Plasmoid Tapphouse'),
1058
+ '4': Door('The Centaurbow Weapon Shop'),
1059
+ '5': Door('The Gadabout Bakery'),
1060
+ '6': Door('The Shifterspender St'),
1061
+ '7': Door('The Town Hall'),
1062
+ '8': Door('The Assassins Guild'),
1063
+ '9': Door('The Old Manor'),
1015
1064
  },
1016
1065
  'info': '''
1017
1066
 
@@ -1030,15 +1079,15 @@ do you want to:
1030
1079
  'The Old Manor' :{
1031
1080
  'room type': 'asteroid-1',
1032
1081
  'directions': {
1033
- '1': 'Teleportation Deck',
1034
- '2': 'The Dancing Jellyfish Inn',
1035
- '3': 'The Slopy Plasmoid Tapphouse',
1036
- '4': 'The Centaurbow Weapon Shop',
1037
- '5': 'The Gadabout Bakery',
1038
- '6': 'The Shifterspender St',
1039
- '7': 'The Town Hall',
1040
- '8': 'The Assassins Guild',
1041
- '9': 'The Watch Castle',
1082
+ '1': Door('Teleportation Deck'),
1083
+ '2': Door('The Dancing Jellyfish Inn'),
1084
+ '3': Door('The Slopy Plasmoid Tapphouse'),
1085
+ '4': Door('The Centaurbow Weapon Shop'),
1086
+ '5': Door('The Gadabout Bakery'),
1087
+ '6': Door('The Shifterspender St'),
1088
+ '7': Door('The Town Hall'),
1089
+ '8': Door('The Assassins Guild'),
1090
+ '9': Door('The Watch Castle'),
1042
1091
  },
1043
1092
  'info': '''
1044
1093
 
@@ -1057,17 +1106,17 @@ do you want to:
1057
1106
  '2nd Teleportation Deck': {
1058
1107
  'room type': 'asteroid-2',
1059
1108
  'directions': {
1060
- '1': 'Charter 2nd Ship',
1061
- '2': 'The 2nd Dancing Jellyfish Inn',
1062
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1063
- '4': 'The 2nd GiffHammer Weapon Shop',
1064
- '5': 'The 2nd Gadabout Bakery',
1065
- '6': 'The 2nd Githspender St',
1066
- '7': 'The 2nd Town Hall',
1067
- '8': 'The 2nd Thieves Guild',
1068
- '9': 'The 2nd Watch Castle',
1069
- },
1070
- '10': 'The 2nd Old Manor',
1109
+ '1': Door('Charter 2nd Ship'),
1110
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1111
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1112
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1113
+ '5': Door('The 2nd Gadabout Bakery'),
1114
+ '6': Door('The 2nd Githspender St'),
1115
+ '7': Door('The 2nd Town Hall'),
1116
+ '8': Door('The 2nd Thieves Guild'),
1117
+ '9': Door('The 2nd Watch Castle'),
1118
+ },
1119
+ '10': Door('The 2nd Old Manor'),
1071
1120
  'info': '''
1072
1121
  You are in a strange cave with many teleportation circles, as well as some ships that are floating above the floor.
1073
1122
 
@@ -1091,18 +1140,18 @@ do you want to:
1091
1140
  'Charter 2nd Ship' :{
1092
1141
  'room type': 'asteroid-2',
1093
1142
  'directions': {
1094
- '1': '2nd Teleportation Deck',
1095
- '2': 'The 2nd Dancing Jellyfish Inn',
1096
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1097
- '4': 'The 2nd GiffHammer Weapon Shop',
1098
- '5': 'The 2nd Gadabout Bakery',
1099
- '6': 'The 2nd Githspender St',
1100
- '7': 'The 2nd Town Hall',
1101
- '8': 'The 2nd Thieves Guild',
1102
- '9': 'The 2nd Watch Castle',
1103
- '10': 'The Old 2nd Manor',
1104
- '11': 'Teleportation Deck',
1105
- '12': '3rd Teleportation Deck',
1143
+ '1': Door('2nd Teleportation Deck'),
1144
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1145
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1146
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1147
+ '5': Door('The 2nd Gadabout Bakery'),
1148
+ '6': Door('The 2nd Githspender St'),
1149
+ '7': Door('The 2nd Town Hall'),
1150
+ '8': Door('The 2nd Thieves Guild'),
1151
+ '9': Door('The 2nd Watch Castle'),
1152
+ '10': Door('The Old 2nd Manor'),
1153
+ '11': Door('Teleportation Deck'),
1154
+ '12': Door('3rd Teleportation Deck'),
1106
1155
  },
1107
1156
  'creatures stats': creature(
1108
1157
  'hull leech',
@@ -1135,15 +1184,15 @@ Do you want to:
1135
1184
  'The 2nd Dancing Jellyfish Inn' :{
1136
1185
  'room type': 'asteroid-2',
1137
1186
  'directions': {
1138
- '1': '2nd Teleportation Deck',
1139
- '2': 'The 2nd Slopy Plasmoid Tapphouse',
1140
- '3': 'The 2nd GiffHammer Weapon Shop',
1141
- '4': 'The 2nd Gadabout Bakery',
1142
- '5': 'The 2nd Githspender St',
1143
- '6': 'The 2nd Town Hall',
1144
- '7': 'The 2nd Thieves Guild',
1145
- '8': 'The 2nd Watch Castle',
1146
- '9': 'The 2nd Old Manor',
1187
+ '1': Door('2nd Teleportation Deck'),
1188
+ '2': Door('The 2nd Slopy Plasmoid Tapphouse'),
1189
+ '3': Door('The 2nd GiffHammer Weapon Shop'),
1190
+ '4': Door('The 2nd Gadabout Bakery'),
1191
+ '5': Door('The 2nd Githspender St'),
1192
+ '6': Door('The 2nd Town Hall'),
1193
+ '7': Door('The 2nd Thieves Guild'),
1194
+ '8': Door('The 2nd Watch Castle'),
1195
+ '9': Door('The 2nd Old Manor'),
1147
1196
  },
1148
1197
  'info': '''
1149
1198
 
@@ -1162,15 +1211,15 @@ do you want to:
1162
1211
  'The 2nd Slopy Plasmoid Tapphouse' :{
1163
1212
  'room type': 'asteroid-2',
1164
1213
  'directions': {
1165
- '1': '2nd Teleportation Deck',
1166
- '2': 'The 2nd Dancing Jellyfish Inn',
1167
- '3': 'The 2nd GiffHammer Weapon Shop',
1168
- '4': 'The 2nd Gadabout Bakery',
1169
- '5': 'The 2nd Githspender St',
1170
- '6': 'The 2nd Town Hall',
1171
- '7': 'The 2nd Thieves Guild',
1172
- '8': 'The 2nd Watch Castle',
1173
- '9': 'The 2nd Old Manor',
1214
+ '1': Door('2nd Teleportation Deck'),
1215
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1216
+ '3': Door('The 2nd GiffHammer Weapon Shop'),
1217
+ '4': Door('The 2nd Gadabout Bakery'),
1218
+ '5': Door('The 2nd Githspender St'),
1219
+ '6': Door('The 2nd Town Hall'),
1220
+ '7': Door('The 2nd Thieves Guild'),
1221
+ '8': Door('The 2nd Watch Castle'),
1222
+ '9': Door('The 2nd Old Manor'),
1174
1223
  },
1175
1224
  'info': '''
1176
1225
 
@@ -1189,15 +1238,15 @@ do you want to:
1189
1238
  'The 2nd GiffHammer Weapon Shop' :{
1190
1239
  'room type': 'asteroid-2',
1191
1240
  'directions': {
1192
- '1': '2nd Teleportation Deck',
1193
- '2': 'The 2nd Dancing Jellyfish Inn',
1194
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1195
- '4': 'The 2nd Gadabout Bakery',
1196
- '5': 'The 2nd Githspender St',
1197
- '6': 'The 2nd Town Hall',
1198
- '7': 'The 2nd Thieves Guild',
1199
- '8': 'The 2nd Watch Castle',
1200
- '9': 'The 2nd Old Manor',
1241
+ '1': Door('2nd Teleportation Deck'),
1242
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1243
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1244
+ '4': Door('The 2nd Gadabout Bakery'),
1245
+ '5': Door('The 2nd Githspender St'),
1246
+ '6': Door('The 2nd Town Hall'),
1247
+ '7': Door('The 2nd Thieves Guild'),
1248
+ '8': Door('The 2nd Watch Castle'),
1249
+ '9': Door('The 2nd Old Manor'),
1201
1250
  },
1202
1251
  'info': '''
1203
1252
 
@@ -1216,15 +1265,15 @@ do you want to:
1216
1265
  'The 2nd Gadabout Bakery' :{
1217
1266
  'room type': 'asteroid-2',
1218
1267
  'directions': {
1219
- '1': '2nd Teleportation Deck',
1220
- '2': 'The 2nd Dancing Jellyfish Inn',
1221
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1222
- '4': 'The 2nd GiffHammer Weapon Shop',
1223
- '5': 'The 2nd Githspender St',
1224
- '6': 'The 2nd Town Hall',
1225
- '7': 'The 2nd Thieves Guild',
1226
- '8': 'The 2nd Watch Castle',
1227
- '9': 'The 2nd Old Manor',
1268
+ '1': Door('2nd Teleportation Deck'),
1269
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1270
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1271
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1272
+ '5': Door('The 2nd Githspender St'),
1273
+ '6': Door('The 2nd Town Hall'),
1274
+ '7': Door('The 2nd Thieves Guild'),
1275
+ '8': Door('The 2nd Watch Castle'),
1276
+ '9': Door('The 2nd Old Manor'),
1228
1277
  },
1229
1278
  'info': '''
1230
1279
 
@@ -1243,15 +1292,15 @@ do you want to:
1243
1292
  'The 2nd Githspender St' :{
1244
1293
  'room type': 'asteroid-2',
1245
1294
  'directions': {
1246
- '1': '2nd Teleportation Deck',
1247
- '2': 'The 2nd Dancing Jellyfish Inn',
1248
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1249
- '4': 'The 2nd GiffHammer Weapon Shop',
1250
- '5': 'The 2nd Gadabout Bakery',
1251
- '6': 'The 2nd Town Hall',
1252
- '7': 'The 2nd Thieves Guild',
1253
- '8': 'The 2nd Watch Castle',
1254
- '9': 'The 2nd Old Manor',
1295
+ '1': Door('2nd Teleportation Deck'),
1296
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1297
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1298
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1299
+ '5': Door('The 2nd Gadabout Bakery'),
1300
+ '6': Door('The 2nd Town Hall'),
1301
+ '7': Door('The 2nd Thieves Guild'),
1302
+ '8': Door('The 2nd Watch Castle'),
1303
+ '9': Door('The 2nd Old Manor'),
1255
1304
  },
1256
1305
  'info': '''
1257
1306
 
@@ -1270,15 +1319,15 @@ do you want to:
1270
1319
  'The 2nd Town Hall' :{
1271
1320
  'room type': 'asteroid-2',
1272
1321
  'directions': {
1273
- '1': '2nd Teleportation Deck',
1274
- '2': 'The 2nd Dancing Jellyfish Inn',
1275
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1276
- '4': 'The 2nd GiffHammer Weapon Shop',
1277
- '5': 'The 2nd Gadabout Bakery',
1278
- '6': 'The 2nd Githspender St',
1279
- '7': 'The 2nd Thieves Guild',
1280
- '8': 'The 2nd Watch Castle',
1281
- '9': 'The 2nd Old Manor',
1322
+ '1': Door('2nd Teleportation Deck'),
1323
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1324
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1325
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1326
+ '5': Door('The 2nd Gadabout Bakery'),
1327
+ '6': Door('The 2nd Githspender St'),
1328
+ '7': Door('The 2nd Thieves Guild'),
1329
+ '8': Door('The 2nd Watch Castle'),
1330
+ '9': Door('The 2nd Old Manor'),
1282
1331
  },
1283
1332
  'info': '''
1284
1333
 
@@ -1297,15 +1346,15 @@ do you want to:
1297
1346
  'The 2nd Thieves Guild' :{
1298
1347
  'room type': 'asteroid-2',
1299
1348
  'directions': {
1300
- '1': '2nd Teleportation Deck',
1301
- '2': 'The 2nd Dancing Jellyfish Inn',
1302
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1303
- '4': 'The 2nd GiffHammer Weapon Shop',
1304
- '5': 'The 2nd Gadabout Bakery',
1305
- '6': 'The 2nd Githspender St',
1306
- '7': 'The 2nd Town Hall',
1307
- '8': 'The 2nd Watch Castle',
1308
- '9': 'The 2nd Old Manor',
1349
+ '1': Door('2nd Teleportation Deck'),
1350
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1351
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1352
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1353
+ '5': Door('The 2nd Gadabout Bakery'),
1354
+ '6': Door('The 2nd Githspender St'),
1355
+ '7': Door('The 2nd Town Hall'),
1356
+ '8': Door('The 2nd Watch Castle'),
1357
+ '9': Door('The 2nd Old Manor'),
1309
1358
  },
1310
1359
  'creatures stats': creature(
1311
1360
  'thief',
@@ -1333,15 +1382,15 @@ do you want to:
1333
1382
  'The 2nd Watch Castle' :{
1334
1383
  'room type': 'asteroid-2',
1335
1384
  'directions': {
1336
- '1': '2nd Teleportation Deck',
1337
- '2': 'The 2nd Dancing Jellyfish Inn',
1338
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1339
- '4': 'The 2nd GiffHammer Weapon Shop',
1340
- '5': 'The 2nd Gadabout Bakery',
1341
- '6': 'The 2nd Githspender St',
1342
- '7': 'The 2nd Town Hall',
1343
- '8': 'The 2nd Thieves Guild',
1344
- '9': 'The 2nd Old Manor',
1385
+ '1': Door('2nd Teleportation Deck'),
1386
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1387
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1388
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1389
+ '5': Door('The 2nd Gadabout Bakery'),
1390
+ '6': Door('The 2nd Githspender St'),
1391
+ '7': Door('The 2nd Town Hall'),
1392
+ '8': Door('The 2nd Thieves Guild'),
1393
+ '9': Door('The 2nd Old Manor'),
1345
1394
  },
1346
1395
  'info': '''
1347
1396
 
@@ -1360,15 +1409,15 @@ do you want to:
1360
1409
  'The 2nd Old Manor' :{
1361
1410
  'room type': 'asteroid-2',
1362
1411
  'directions': {
1363
- '1': '2nd Teleportation Deck',
1364
- '2': 'The 2nd Dancing Jellyfish Inn',
1365
- '3': 'The 2nd Slopy Plasmoid Tapphouse',
1366
- '4': 'The 2nd GiffHammer Weapon Shop',
1367
- '5': 'The 2nd Gadabout Bakery',
1368
- '6': 'The 2nd Githspender St',
1369
- '7': 'The 2nd Town Hall',
1370
- '8': 'The 2nd Thieves Guild',
1371
- '9': 'The 2nd Watch Castle',
1412
+ '1': Door('2nd Teleportation Deck'),
1413
+ '2': Door('The 2nd Dancing Jellyfish Inn'),
1414
+ '3': Door('The 2nd Slopy Plasmoid Tapphouse'),
1415
+ '4': Door('The 2nd GiffHammer Weapon Shop'),
1416
+ '5': Door('The 2nd Gadabout Bakery'),
1417
+ '6': Door('The 2nd Githspender St'),
1418
+ '7': Door('The 2nd Town Hall'),
1419
+ '8': Door('The 2nd Thieves Guild'),
1420
+ '9': Door('The 2nd Watch Castle'),
1372
1421
  },
1373
1422
  'info': '''
1374
1423
 
@@ -1387,17 +1436,17 @@ do you want to:
1387
1436
  '3rd Teleportation Deck': {
1388
1437
  'room type': 'asteroid-2',
1389
1438
  'directions': {
1390
- '1': 'Charter 3rd Ship',
1391
- '2': 'The Main Guildhall',
1392
- '3': 'The Order of the Arcane Scribes',
1393
- '4': 'The Wayfarers\' Brotherhood',
1394
- '5': 'The Artisans\' Collective',
1395
- '6': 'The Silent Shadows Syndicate',
1396
- '7': 'The Guardians of the Wilds',
1397
- '8': 'The Mercantile Consortium',
1398
- '9': 'The Sentinels of the Shield',
1399
- },
1400
- '10': 'The 3rd Old Manor',
1439
+ '1': Door('Charter 3rd Ship'),
1440
+ '2': Door('The Main Guildhall'),
1441
+ '3': Door('The Order of the Arcane Scribes'),
1442
+ '4': Door('The Wayfarers\' Brotherhood'),
1443
+ '5': Door('The Artisans\' Collective'),
1444
+ '6': Door('The Silent Shadows Syndicate'),
1445
+ '7': Door('The Guardians of the Wilds'),
1446
+ '8': Door('The Mercantile Consortium'),
1447
+ '9': Door('The Sentinels of the Shield'),
1448
+ },
1449
+ '10': Door('The 3rd Old Manor'),
1401
1450
  'info': '''
1402
1451
  You are in a strange cave with many teleportation circles, as well as some ships that are floating above the floor.
1403
1452
 
@@ -1421,18 +1470,18 @@ do you want to:
1421
1470
  'Charter 3rd Ship' :{
1422
1471
  'room type': 'asteroid-3',
1423
1472
  'directions': {
1424
- '1': 'Teleportation Deck',
1425
- '2': 'The Main Guildhall',
1426
- '3': 'The Order of the Arcane Scribes',
1427
- '4': 'The Wayfarers\' Brotherhood',
1428
- '5': 'The Artisans\' Collective',
1429
- '6': 'The Silent Shadows Syndicate',
1430
- '7': 'The Guardians of the Wilds',
1431
- '8': 'The Mercantile Consortium',
1432
- '9': 'The Sentinels of the Shield',
1433
- '10': 'The 3rd Old Manor',
1434
- '11': 'Teleportation Deck',
1435
- '12': '2nd Teleportation Deck',
1473
+ '1': Door('Teleportation Deck'),
1474
+ '2': Door('The Main Guildhall'),
1475
+ '3': Door('The Order of the Arcane Scribes'),
1476
+ '4': Door('The Wayfarers\' Brotherhood'),
1477
+ '5': Door('The Artisans\' Collective'),
1478
+ '6': Door('The Silent Shadows Syndicate'),
1479
+ '7': Door('The Guardians of the Wilds'),
1480
+ '8': Door('The Mercantile Consortium'),
1481
+ '9': Door('The Sentinels of the Shield'),
1482
+ '10': Door('The 3rd Old Manor'),
1483
+ '11': Door('Teleportation Deck'),
1484
+ '12': Door('2nd Teleportation Deck'),
1436
1485
  },
1437
1486
  'info': '''
1438
1487
 
@@ -1465,16 +1514,16 @@ tapestries, statues, and artifacts commemorating the triumphs of the past. Wheth
1465
1514
  from across the realm flock to the Forge, drawn by the promise of glory and the chance to make their mark on history.''',
1466
1515
  'room type': 'asteroid-3',
1467
1516
  'directions': {
1468
- '1': '2nd Teleportation Deck',
1469
- '2': 'The Order of the Arcane Scribes',
1470
- '3': 'The Wayfarers\' Brotherhood',
1471
- '4': 'The Artisans\' Collective',
1472
- '5': 'The Silent Shadows Syndicate',
1473
- '6': 'The Guardians of the Wilds',
1474
- '7': 'The Mercantile Consortium',
1475
- '8': 'The Sentinels of the Shield',
1476
- '9': 'The 3rd Old Manor',
1477
- '10': 'The Grand Coliseum',
1517
+ '1': Door('2nd Teleportation Deck'),
1518
+ '2': Door('The Order of the Arcane Scribes'),
1519
+ '3': Door('The Wayfarers\' Brotherhood'),
1520
+ '4': Door('The Artisans\' Collective'),
1521
+ '5': Door('The Silent Shadows Syndicate'),
1522
+ '6': Door('The Guardians of the Wilds'),
1523
+ '7': Door('The Mercantile Consortium'),
1524
+ '8': Door('The Sentinels of the Shield'),
1525
+ '9': Door('The 3rd Old Manor'),
1526
+ '10': Door('The Grand Coliseum'),
1478
1527
  },
1479
1528
  'info': '''
1480
1529
 
@@ -1505,7 +1554,7 @@ elaborate tournaments of skill and strategy, the fighters of the Grand Coliseum
1505
1554
  Coliseum stands as a testament to the enduring appeal of gladiatorial combat and the timeless allure of the warrior's path.''',
1506
1555
  'room type': 'asteroid-3',
1507
1556
  'directions': {
1508
- '1': 'The Main Guildhall',
1557
+ '1': Door('The Main Guildhall'),
1509
1558
  },
1510
1559
  'creatures stats': creature(
1511
1560
  'gladiator',
@@ -1535,15 +1584,15 @@ Whether delving into the depths of forgotten lore or harnessing the power of the
1535
1584
  magic.''',
1536
1585
  'room type': 'asteroid-3',
1537
1586
  'directions': {
1538
- '1': '3rd Teleportation Deck',
1539
- '2': 'The Main Guildhall',
1540
- '3': 'The Wayfarers\' Brotherhood',
1541
- '4': 'The Artisans\' Collective',
1542
- '5': 'The Silent Shadows Syndicate',
1543
- '6': 'The Guardians of the Wilds',
1544
- '7': 'The Mercantile Consortium',
1545
- '8': 'The Sentinels of the Shield',
1546
- '9': 'The 3rd Old Manor',
1587
+ '1': Door('3rd Teleportation Deck'),
1588
+ '2': Door('The Main Guildhall'),
1589
+ '3': Door('The Wayfarers\' Brotherhood'),
1590
+ '4': Door('The Artisans\' Collective'),
1591
+ '5': Door('The Silent Shadows Syndicate'),
1592
+ '6': Door('The Guardians of the Wilds'),
1593
+ '7': Door('The Mercantile Consortium'),
1594
+ '8': Door('The Sentinels of the Shield'),
1595
+ '9': Door('The 3rd Old Manor'),
1547
1596
  },
1548
1597
  'info': '''
1549
1598
 
@@ -1571,15 +1620,15 @@ ambitious expeditions, and seek companions for their journeys. Guided by a spiri
1571
1620
  eager to uncover the mysteries that lie beyond the horizon.''',
1572
1621
  'room type': 'asteroid-3',
1573
1622
  'directions': {
1574
- '1': '3rd Teleportation Deck',
1575
- '2': 'The Main Guildhall',
1576
- '3': 'The Order of the Arcane Scribes',
1577
- '4': 'The Artisans\' Collective',
1578
- '5': 'The Silent Shadows Syndicate',
1579
- '6': 'The Guardians of the Wilds',
1580
- '7': 'The Mercantile Consortium',
1581
- '8': 'The Sentinels of the Shield',
1582
- '9': 'The 3rd Old Manor',
1623
+ '1': Door('3rd Teleportation Deck'),
1624
+ '2': Door('The Main Guildhall'),
1625
+ '3': Door('The Order of the Arcane Scribes'),
1626
+ '4': Door('The Artisans\' Collective'),
1627
+ '5': Door('The Silent Shadows Syndicate'),
1628
+ '6': Door('The Guardians of the Wilds'),
1629
+ '7': Door('The Mercantile Consortium'),
1630
+ '8': Door('The Sentinels of the Shield'),
1631
+ '9': Door('The 3rd Old Manor'),
1583
1632
  },
1584
1633
  'info': '''
1585
1634
 
@@ -1608,15 +1657,15 @@ quality, crafting intricate works of jewelry, or painting breathtaking landscape
1608
1657
  potential of skilled craftsmanship.''',
1609
1658
  'room type': 'asteroid-3',
1610
1659
  'directions': {
1611
- '1': '3rd Teleportation Deck',
1612
- '2': 'The Main Guildhall',
1613
- '3': 'The Order of the Arcane Scribes',
1614
- '4': 'The Wayfarers\' Brotherhood',
1615
- '5': 'The Silent Shadows Syndicate',
1616
- '6': 'The Guardians of the Wilds',
1617
- '7': 'The Mercantile Consortium',
1618
- '8': 'The Sentinels of the Shield',
1619
- '9': 'The 3rd Old Manor',
1660
+ '1': Door('3rd Teleportation Deck'),
1661
+ '2': Door('The Main Guildhall'),
1662
+ '3': Door('The Order of the Arcane Scribes'),
1663
+ '4': Door('The Wayfarers\' Brotherhood'),
1664
+ '5': Door('The Silent Shadows Syndicate'),
1665
+ '6': Door('The Guardians of the Wilds'),
1666
+ '7': Door('The Mercantile Consortium'),
1667
+ '8': Door('The Sentinels of the Shield'),
1668
+ '9': Door('The 3rd Old Manor'),
1620
1669
  },
1621
1670
  'info': '''
1622
1671
 
@@ -1645,15 +1694,15 @@ before melting back into the shadows from whence they came. Though their methods
1645
1694
  willing to operate outside the boundaries of conventional morality.''',
1646
1695
  'room type': 'asteroid-3',
1647
1696
  'directions': {
1648
- '1': '3rd Teleportation Deck',
1649
- '2': 'The Main Guildhall',
1650
- '3': 'The Order of the Arcane Scribes',
1651
- '4': 'The Wayfarers\' Brotherhood',
1652
- '5': 'The Artisans\' Collective',
1653
- '6': 'The Guardians of the Wilds',
1654
- '7': 'The Mercantile Consortium',
1655
- '8': 'The Sentinels of the Shield',
1656
- '9': 'The 3rd Old Manor',
1697
+ '1': Door('3rd Teleportation Deck'),
1698
+ '2': Door('The Main Guildhall'),
1699
+ '3': Door('The Order of the Arcane Scribes'),
1700
+ '4': Door('The Wayfarers\' Brotherhood'),
1701
+ '5': Door('The Artisans\' Collective'),
1702
+ '6': Door('The Guardians of the Wilds'),
1703
+ '7': Door('The Mercantile Consortium'),
1704
+ '8': Door('The Sentinels of the Shield'),
1705
+ '9': Door('The 3rd Old Manor'),
1657
1706
  },
1658
1707
  'info': '''
1659
1708
 
@@ -1682,15 +1731,15 @@ would exploit nature for profit or power. Whether embarking on quests to thwart
1682
1731
  wildlife, the Guardians of the Wilds stand as vigilant protectors of the natural world, sworn to defend it against all who would seek to do it harm.''',
1683
1732
  'room type': 'asteroid-3',
1684
1733
  'directions': {
1685
- '1': '3rd Teleportation Deck',
1686
- '2': 'The Main Guildhall',
1687
- '3': 'The Order of the Arcane Scribes',
1688
- '4': 'The Wayfarers\' Brotherhood',
1689
- '5': 'The Artisans\' Collective',
1690
- '6': 'The Silent Shadows Syndicate',
1691
- '7': 'The Mercantile Consortium',
1692
- '8': 'The Sentinels of the Shield',
1693
- '9': 'The 3rd Old Manor',
1734
+ '1': Door('3rd Teleportation Deck'),
1735
+ '2': Door('The Main Guildhall'),
1736
+ '3': Door('The Order of the Arcane Scribes'),
1737
+ '4': Door('The Wayfarers\' Brotherhood'),
1738
+ '5': Door('The Artisans\' Collective'),
1739
+ '6': Door('The Silent Shadows Syndicate'),
1740
+ '7': Door('The Mercantile Consortium'),
1741
+ '8': Door('The Sentinels of the Shield'),
1742
+ '9': Door('The 3rd Old Manor'),
1694
1743
  },
1695
1744
  'info': '''
1696
1745
 
@@ -1719,15 +1768,15 @@ Though their methods may be ruthless and their ambitions vast, their guild stand
1719
1768
  of wealth.''',
1720
1769
  'room type': 'asteroid-3',
1721
1770
  'directions': {
1722
- '1': '3rd Teleportation Deck',
1723
- '2': 'The Main Guildhall',
1724
- '3': 'The Order of the Arcane Scribes',
1725
- '4': 'The Wayfarers\' Brotherhood',
1726
- '5': 'The Artisans\' Collective',
1727
- '6': 'The Silent Shadows Syndicate',
1728
- '7': 'The Guardians of the Wilds',
1729
- '8': 'The Sentinels of the Shield',
1730
- '9': 'The 3rd Old Manor',
1771
+ '1': Door('3rd Teleportation Deck'),
1772
+ '2': Door('The Main Guildhall'),
1773
+ '3': Door('The Order of the Arcane Scribes'),
1774
+ '4': Door('The Wayfarers\' Brotherhood'),
1775
+ '5': Door('The Artisans\' Collective'),
1776
+ '6': Door('The Silent Shadows Syndicate'),
1777
+ '7': Door('The Guardians of the Wilds'),
1778
+ '8': Door('The Sentinels of the Shield'),
1779
+ '9': Door('The 3rd Old Manor'),
1731
1780
  },
1732
1781
  'info': '''
1733
1782
 
@@ -1764,15 +1813,15 @@ guild. Training programs cover various aspects of combat, law enforcement techni
1764
1813
  new recruits, fostering a sense of camaraderie and unity among the ranks.''',
1765
1814
  'room type': 'asteroid-3',
1766
1815
  'directions': {
1767
- '1': '3rd Teleportation Deck',
1768
- '2': 'The Main Guildhall',
1769
- '3': 'The Order of the Arcane Scribes',
1770
- '4': 'The Wayfarers\' Brotherhood',
1771
- '5': 'The Artisans\' Collective',
1772
- '6': 'The Silent Shadows Syndicate',
1773
- '7': 'The Guardians of the Wilds',
1774
- '8': 'The Mercantile Consortium',
1775
- '9': 'The 3rd Old Manor',
1816
+ '1': Door('3rd Teleportation Deck'),
1817
+ '2': Door('The Main Guildhall'),
1818
+ '3': Door('The Order of the Arcane Scribes'),
1819
+ '4': Door('The Wayfarers\' Brotherhood'),
1820
+ '5': Door('The Artisans\' Collective'),
1821
+ '6': Door('The Silent Shadows Syndicate'),
1822
+ '7': Door('The Guardians of the Wilds'),
1823
+ '8': Door('The Mercantile Consortium'),
1824
+ '9': Door('The 3rd Old Manor'),
1776
1825
  },
1777
1826
  'info': '''
1778
1827
 
@@ -1791,15 +1840,15 @@ do you want to:
1791
1840
  'The 3rd Old Manor' :{
1792
1841
  'room type': 'asteroid-3',
1793
1842
  'directions': {
1794
- '1': '3rd Teleportation Deck',
1795
- '2': 'The Main Guildhall',
1796
- '3': 'The Order of the Arcane Scribes',
1797
- '4': 'The Wayfarers\' Brotherhood',
1798
- '5': 'The Artisans\' Collective',
1799
- '6': 'The Silent Shadows Syndicate',
1800
- '7': 'The Guardians of the Wilds',
1801
- '8': 'The Mercantile Consortium',
1802
- '9': 'The Sentinels of the Shield',
1843
+ '1': Door('3rd Teleportation Deck'),
1844
+ '2': Door('The Main Guildhall'),
1845
+ '3': Door('The Order of the Arcane Scribes'),
1846
+ '4': Door('The Wayfarers\' Brotherhood'),
1847
+ '5': Door('The Artisans\' Collective'),
1848
+ '6': Door('The Silent Shadows Syndicate'),
1849
+ '7': Door('The Guardians of the Wilds'),
1850
+ '8': Door('The Mercantile Consortium'),
1851
+ '9': Door('The Sentinels of the Shield'),
1803
1852
  },
1804
1853
  'info': '''
1805
1854