-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheclipse.inf
More file actions
2463 lines (2314 loc) · 89.1 KB
/
Copy patheclipse.inf
File metadata and controls
2463 lines (2314 loc) · 89.1 KB
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
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
!% -~S
!% $OMIT_UNUSED_ROUTINES=1
!% $ZCODE_COMPACT_GLOBALS=1
!% $ZCODE_LESS_DICT_DATA=1
!% $ZCODE_MAX_INLINE_STRING=9999
!% $MAX_ABBREVS=96
!========================================
! Eclipse
! Morgan Tyler series #1 of 5
! Copyright © 2026 Gianluca Girelli
!========================================
!Constant DEBUG;
Abbreviate ". ";
Abbreviate ", ";
Abbreviate " the ";
Abbreviate "You";
Abbreviate "The";
Abbreviate "you";
Abbreviate "ing";
Abbreviate "It's";
Abbreviate "and";
Abbreviate "Thalos";
Abbreviate "'d better";
Abbreviate "Markus";
Abbreviate "with";
Abbreviate "tion";
Abbreviate ".^^";
Abbreviate "This";
Abbreviate " th";
Abbreviate " to";
Abbreviate " lo";
Abbreviate "e a";
Abbreviate "'s no";
Abbreviate " of";
Abbreviate " can";
Abbreviate " mo";
Abbreviate " in";
Abbreviate " wea";
Abbreviate " it";
Abbreviate " so";
Abbreviate "planet";
Abbreviate " start";
Abbreviate "r father";
Abbreviate " sh";
Abbreviate " co";
Abbreviate "lready";
Abbreviate "e n";
Abbreviate " di";
Abbreviate " is";
Abbreviate "d a";
Abbreviate " wa";
Abbreviate " hav";
Abbreviate "Earth";
Abbreviate "ent";
Abbreviate " from";
Abbreviate " ho";
Abbreviate " ba";
Abbreviate " esca";
Abbreviate " crystals";
Abbreviate " un";
Abbreviate " ma";
Abbreviate " don't";
Abbreviate " wo";
Abbreviate " ex";
Abbreviate " on";
Abbreviate "here";
Abbreviate " no";
Abbreviate " do";
Abbreviate "s a";
Abbreviate " st";
Abbreviate " ca";
Abbreviate " ne";
Abbreviate "n't";
Abbreviate " de";
Abbreviate "hat";
Abbreviate " be";
Abbreviate "ward";
Abbreviate " se";
Abbreviate "und";
Abbreviate " re";
Abbreviate "ver";
Abbreviate " for";
Abbreviate "Fhenor";
Abbreviate "ship";
Abbreviate " happe";
Abbreviate "ine";
Abbreviate "water";
Abbreviate "int";
Abbreviate " fa";
Abbreviate " frie";
Abbreviate "s lik";
Abbreviate "first";
Abbreviate " la";
Abbreviate " we";
Abbreviate " might";
Abbreviate "sout";
Abbreviate "xoskeleto";
Abbreviate " ro";
Abbreviate " helmet";
Abbreviate " pressure suit";
Abbreviate " power";
Abbreviate "_to/";
Abbreviate " me";
Abbreviate " take";
Abbreviate " rifle";
Abbreviate " plac";
Abbreviate " spec";
Abbreviate "ble";
Constant Story "Eclipse";
Constant Headline "^Morgan Tyler series #1 of 5^Copyright (c) 2026 Gianluca Girelli^https://bdb-project.itch.io^Type ABOUT for further info and credits.^^";
Array UUID_ARRAY string "UUID://39972ae0-6e6e-4fcb-8881-ff1e3668976b//";
#Ifdef UUID_ARRAY;
#Endif;
Release 1;
Serial "260606";
!Inform 6 constants
Constant DEATH_MENTION_UNDO;
Constant MAX_CARRIED = 8;
Constant NO_SCORE;
!PunyInform constants
Constant CUSTOM_ABBREVIATIONS;
Constant OPTIONAL_EXTENDED_METAVERBS;
Constant OPTIONAL_EXTENDED_VERBSET;
Constant OPTIONAL_FULL_DIRECTIONS;
Constant OPTIONAL_PRINT_SCENERY_CONTENTS;
Constant OPTIONAL_PROVIDE_UNDO;
Constant RUNTIME_ERRORS 0;!0 for release, 2 for debug
!PunyInform static messages
Constant MSG_COMMENT_NO_TRANSCRIPT "Comment recorded. Use SCRIPT ON to save future comments in a transcript.^";
Constant MSG_COMMENT_TRANSCRIPT "Comment recorded.^";
Constant MSG_PARSER_NO_INPUT "You need to enter a command.";
Constant MSG_PARSER_UNKNOWN_VERB "That's not a verb I recognise.";
Constant MSG_SORRY_DEFAULT "Oh, don't apologise.";
Constant MSG_WAIT_DEFAULT "Time passes...";
!PunyInform dynamic messages
Constant MSG_CLOSE_NOT_OPEN 1000;
Constant MSG_LOCK_ALREADY_LOCKED 1001;
Constant MSG_LOCK_CLOSE_FIRST 1002;
Constant MSG_LOCK_KEY_DOESNT_FIT 1003;
Constant MSG_UNLOCK_ALREADY_UNLOCKED 1004;
Constant MSG_UNLOCK_KEY_DOESNT_FIT 1005;
!Game-specific constants
Constant CANT_TAKE_VEHICLE_THAT_WAY "You can't take the pod that way. You'll have to leave it behind, unless you have a way to lift it.";
Constant CANT_SHOOT_ANYTHING_WITH "You can't shoot anything with ";
!Replaced actions
Replace _UpdateDarkness;
Replace GoSub; !Delete if diagonal directions are used
Replace LockSub;
Replace UnlockSub;
Include "globals.h";
!Game-specific variables
Attribute passable; !can be traversed with the pod
!========================================
! Entry point routines
!========================================
[ LibraryMessages p_msg p_arg_1 p_arg_2;
switch (p_msg)
{
MSG_CLOSE_NOT_OPEN:
print_ret (CTheyreOrIts)noun, " already closed.";
MSG_LOCK_ALREADY_LOCKED:
print_ret (CTheyreOrIts)noun, " already locked.";
MSG_LOCK_CLOSE_FIRST:
"You'll have to close ", (ItOrThem)noun, " first.";
MSG_LOCK_KEY_DOESNT_FIT:
print_ret (The)second, " ", (DoesntOrDont)second, " fit the lock.";
MSG_UNLOCK_ALREADY_UNLOCKED:
print_ret (CTheyreOrIts)noun, " already unlocked.";
MSG_UNLOCK_KEY_DOESNT_FIT:
print_ret (The)second, " ", (DoesntOrDont)second, " fit the lock.";
}
p_arg_1 = p_arg_2;
];
Include "puny.h";
!========================================
! Initialisation
!========================================
[ Initialise;
location = room31;
lookmode = 2;
no_implicit_actions = true;
player.description = PlayerDescription;
"With the advent of interstellar travel, Earth settlers reached the planet Thalos, where they built Thalos City. At first, the colony lived in peace, with some of the settlers (including your father and his best friend, Markus) trying to blend in with the natives.^^Once your father and Markus had befriended the natives, they learned that they were actually ancient cosmic alchemists, with a peculiar understanding of the universe. This included a phenomenon that they called the 'eclipse'. The eclipse occurs every fifteen years and blocks communications with Earth, but this knowledge had been kept hidden from the settlers. To most settlers, the Thalos natives appeared as simple people with moderate technological capabilities, and nothing more.^^Fhenor Darkscepter was initially the Governor of Thalos and represented the Earth's Government. Towards the end of the colonisation phase, Darkscepter rose to power, became a dictator, and took full control of the city and, subsequently, the planet. This was possible thanks to information censorship and the brainwashing of any opponents. Brainwashing was not imposed on the alchemists, as they were outside the circle of power and were considered harmless.^^Determined to fight Fhenor's dictatorship, your father and Markus, together with a few alchemists, developed a plan to escape Thalos and return to Earth to reveal what's really been happening on Thalos. One night, during the eclipse, Markus boarded a small spaceship and departed towards Earth to seek help. All contact was lost soon after take off, but that was to be expected because of the eclipse. As no help ever arrived from Earth, it was assumed that Markus never made it.^^These events took place fifteen years ago. The next eclipse is due soon and it's now your turn to try reaching Earth in search of help. It's time to say goodbye to your father and board the spaceship.^";
];
!========================================
! Room 31: Living room
!========================================
Object room31 "Living Room in Your House"
with
description
[;
"The living room you're in is warm and comfy. It has the peculiar look that blends architectural elements coming both from Earth and Thalos. The furniture is nothing eccentric, the only noticeable feature being a cupboard with a framed picture on it. The only exit is south.";
],
s_to
[;
if (room31 hasnt general)
"You should talk to your father, first.";
give self general;
if (father in location)
{
move father to room32;
print"Your father follows you.^^";
}
return room32;
],
has light;
!----------------------------------------
! Room
!----------------------------------------
Object "room" room31
with
name 'living' 'room' 'furniture',
description "There's nothing special about the room or the furniture.",
has scenery;
!----------------------------------------
! Cupboard
!----------------------------------------
Object "cupboard" room31
with
name 'cupboard',
description "It's a fine crafted cupboard, but at present you are not interested in it.",
before
[;
Open, Close, Search:
"You don't need to bother with it.";
Take, Push, Pull:
"There's nothing to take, push or pull.";
],
has scenery;
!----------------------------------------
! Framed Picture
!----------------------------------------
Object picture "framed picture" room31
with
name 'framed' 'picture',
description "The picture was taken fifteen years ago, but you feel like a century has passed by. In the picture, taken when you were 10, your father stands between you and his best friend, Markus. Markus was already in his spacesuit before boarding his ship. He was almost an uncle to you, and you have been missing him ever since.",
before
[;
Take:
"It's the only picture left of your father's best friend. Please leave it there.";
]
has scenery;
!----------------------------------------
! Morgan's Father
!----------------------------------------
Object father "father" room31
with
article "your",
name 'father' 'old' 'man' 'dad',
description
[;
print"Your father stands near you with a sad look on his face. He probably senses that he might not see you for a long time, or never again if things go wrong. ";
if ((self in room31) && (room31 hasnt general))
"You should try talking to him.";
if ((self in room32) && (room32 hasnt general))
"It's almost time for you to leave. It's probably your last chance to talk to him for a while.";
"";
],
life
[;
Ask:
wn = consult_from;
switch (NextWord())
{
'escape':
"~Yes, it's time to go. Or were you referring to the pod? I wasn't paying attention.~";
'framed', 'picture':
if (picture hasnt general)
{
give picture general;
"~We took it the night he left in search for help. Now, my son, it's your turn to try.~";
}
else
"~I already told you about the picture.~";
'friend', 'markus':
"~He was like a brother to me, and an uncle to you. Wherever he is now, I hope he's fine.~";
'pod':
"~Let's hope you won't need it, but it's very efficient and can also float on water.";
'ship', 'spaceship':
"~It's the fastest in the galaxy. She made the Kessel Run in less than 12 parsecs. But that was in a galaxy far, far away.~";
default:
"~This is no time for questions, Morgan. There's work to be done.~";
}
Kiss: !-> hug
"You hug your father and, for a moment, the weight of the endeavour you are about to start seems to get lighter.^^~Enough hugging, son.~ you hear your father saying. ~You have work to do.~";
Talk:
if ((self in room31) && (room31 hasnt general))
{
give room31 general;
"~Morgan, the 'planetary eclipse' is about to start. It will soon cause severe malfunctioning in the communications and control systems. Despite the name, the 'eclipse' is not a phenomenon related to light but to electromagnetic signals and, acting like a jamming device, it will allow you to escape from Thalos undetected by Fhenor's minions. It occurs every fifteen years and it's still unknown to Fhenor, although he might be close to discovering how Markus escaped. We need to exploit it before it's too late. Please make haste.~";
}
if ((self in room32) && (room32 hasnt general))
{
give room32 general;
"~My son, it's time for you to leave. Thalos has fallen, and no help will come unless we go and try to bring it ourselves.~^^Your father stops talking for a moment, then he resumes.^^~This could be your last chance to escape. Fhenor's troopers are always around patrolling the streets, and they could come here just as part of their ordinary routine. If this happens, we'll be doomed forever.~^^Your father looks at you, straight into your eyes, showing all the love a father can have for his son. Then, he talks to you once again.^^~Your ship is small, yet fully capable of withstanding the journey. Should anything go wrong, just remember there is a rifle inside the cockpit for your self-defense. Also, the ship is equipped with an escape pod that can also float on water. I hope you won't have to use it.~";
}
if (self in room33)
"~Enough talking, my son. Your time has come. Take off and make Thalos proud of you.~";
"~We should proceed, now.~";
],
before
[;
Shoot:
if (CantBeShot())
rtrue;
"You mimic the gesture of shooting your father, like you did when you were a kid, to say that you loved him. You both laugh, then seriousness takes place again.";
],
has animate;
!========================================
! Room 32: Back of House
!========================================
Object room32 "Back of House"
with
description
[;
"There's nothing significant here, only a wide empty space. From here you can either go back north towards the house, or continue south.";
],
n_to room31,
s_to
[;
if (room32 hasnt general)
"Soon you will leave Thalos, so you might want to talk to your father one more time.";
give self general;
if (father in location)
{
move father to room33;
print"Your father follows along.^^";
}
return room33;
],
has light;
!----------------------------------------
! Back of House
!----------------------------------------
Object "back of house" room32
with
name 'back' 'of' 'house' 'farm' 'house' 'wide' 'empty' 'space',
description "The back of the house doesn't reveal anyting of interest. It's just an empty space that opens towards the south.",
has scenery;
!========================================
! Room 33: Shipyard
!========================================
Object room33 "Shipyard"
with
description
[;
"Disguised among heaps of junk you can see the ship that your father has prepared for you to escape Thalos. It's actually rather small, able to accommodate only two or three people as crew. Yet, she will have to do. From here, you can go back north towards the back of the house or enter the ship.";
],
n_to room32,
in_to
[;
<<Enter ship>>;
],
has light;
!----------------------------------------
! Heaps of junk
!----------------------------------------
Object "heaps of junk" room33
with
article "some",
name 'heaps' 'of' 'junk' 'heap',
description "In part those heaps are real junk, but they mostly serve to hide the spaceship.",
before
[;
Search:
"Nope, nothing but junk.";
],
has scenery;
!----------------------------------------
! Ship (floating object)
!----------------------------------------
Object ship "ship"
with
article "your",
name 'ship' 'spaceship',
description "It looks compact, robust, and fast. You hope it's true and not just your impression.",
before
[;
Enter:
if (self in room33)
{
print"^You enter the ship, sit down in the cockpit and initiate the start-up sequence. Before you finish feeding the mission computer with all the necessary data, your peripheral vision catches Fhenor's agents entering the shipyard and confronting your father.^^He tries to stop them, but they open fire on him, and you see him falling to the ground. With death in your heart and tears in your eyes, you go full-throttle and leave the place.^^Soon after gaining the upper orbit the eclipse starts, and your navigation system loses track of your route right when you entered the wormhole towards Earth. When you get out of it, the ship starts shaking, and gets attracted by the gravity of an unknown planet that doesn't look like Earth should. With the ship collapsing and tearing apart, you just manage to enter the escape pod and bail out.^^Your journey is interrupted.^^";
give ship general;
move remote to player;
PlayerTo(pod1, 2);
rtrue;
}
Exit:
if (self in room34)
<<Go FAKE_OUT_OBJ>>;
],
found_in room33 room34,
has static;
!========================================
! Room 34: The Ship
!========================================
Object room34 "Ship"
with
description
[;
"This is the interior of your ship.";
],
out_to room33,
has light;
!========================================
! Room 1: Inside Escape Pod
!========================================
! removed from the game
!========================================
! Room 2: Surface of Planet
!========================================
Object room02 "Surface of Planet"
with
description
[;
if (button hasnt general)
"The inside of the pod is so narrow that you can barely move. Under the hot atmosphere of the planet, it really leaves much to be desired as a place to linger. Inside it, you are suffocating and sweating profusely. You need to get out.";
"Nothing but a monotonous expanse of rocks of various sizes can be seen. On the ground, there's nothing but reddish sand. The only direction is north.";
],
n_to room03,
has light;
!----------------------------------------
! Single-button remote control
!----------------------------------------
Object remote "single-button remote control"
with
name 'single-button' 'remote' 'control',
description "This weird remote is used to open and close the escape pod. It doesn't make much sense, but this is how things work here. The remote has a single button.",
before
[;
Push:
<<Push button>>;
],
add_to_scope button,
has;
!----------------------------------------
! Button on remote control
!----------------------------------------
Object button "button"
with
name 'button',
description "It's exactly what it looks like: a button.",
before
[;
Push:
if (self hasnt general)
{
give self general;
give pod1 open;
move canopy to room02;
"As soon as you push the button on the remote control, tiny microcharges burst with a loud noise, jettisoning the canopy. A wave of heat from the planet's rarefied atmosphere hits you, and your breathing gets heavy. You can now exit the pod.";
}
"You already pushed the button, and the pod is now open.";
],
has scenery;
!----------------------------------------
! Pod Canopy
!----------------------------------------
Object canopy "canopy"
with
article "the",
name 'canopy',
description
"It's the canopy you just jettisoned to open the pod.",
before
[;
Take:
"You have no use for it.";
],
has static;
!----------------------------------------
! Surface of planet (floating object)
!----------------------------------------
Object "surface of planet"
with
name 'monotonous' 'expanse' 'of' 'rocks' 'surface' 'planet',
description "Seen from here, the planet looks truly inhospitable. Wherever you turn your gaze, you only see rocks and sand.",
found_in room02 room03,
has scenery;
!----------------------------------------
! Sand
!----------------------------------------
Object "sand" room02
with
name 'sand',
description "It's just sand, and covers most of the planet, it seems.",
before
[;
Search:
"Don't bother with it. Besides, it covers most of the planet, so it would be impossible for you to search everywhere.";
Take:
"You try to take the sand but it slips through your hands. Don't worry about it.";
],
has scenery;
!----------------------------------------
! Escape pod
!----------------------------------------
Object pod1 "escape pod" room02
with
article "your",
name 'escape' 'pod',
invent
[;
if (inventory_stage == 2 && child(self) == 0)
rtrue;
],
description
[;
print"The pod allowed you to survive the crash and land safely on this alien planet.";
if (button hasnt general)
" It's very hot inside it, so you should get out.";
print" Despite the crash landing, it's still in good shape and can even float on water";
if (pod1 hasnt general)
{
if (exoskeleton hasnt worn)
" should you find a way to take it with you.";
else
". When you are wearing the exoskeleton you are able to take it with you around.";
}
],
react_before
[;
if (player notin self)
rfalse;
if (noun == nothing)
rfalse;
if (action == ##Examine or ##Go or ##Shoot or ##Push)
rfalse;
if (CommonAncestor(parent(player), noun) ~= self)
"You can't reach ", (the)noun, " while you're in the pod.";
Insert, PutOn:
if (CommonAncestor(parent(player), second) ~= self)
"You can't reach ", (the)second, " while you're in the pod.";
],
before
[ destination;
Go:
destination = location.(direction_properties_array->selected_direction_index);
if (destination ofclass Object)
{
if (destination has door || destination hasnt passable)
{
print (string)CANT_TAKE_VEHICLE_THAT_WAY, "^";
return 2;
}
}
if ((location == room13) || (location == room12))
{
if (pole notin player)
{
print"Although the pod can be used as a life raft, you need something to thrust yourself through the shallow waters of the basin. Have you found anything suitable for the task?^";
return 2;
}
}
return 1;
Open:
if (button hasnt general)
"You can't. It's hermetically sealed.";
else
"The pod is already open.";
Close:
if (button hasnt general)
"The pod is already sealed.";
"You can't close the pod, now that you jettisoned its canopy.";
Exit:
if (button hasnt general)
"You should find a way to open the pod, first.";
if (helmet hasnt worn)
StartDaemon(suit);
Insert:
if ((location == room12) || (location == room13))
"Maybe you could try pushing it into the water.";
"The pod is too big to fit into it.";
Push:
if ((player in room13) || (player in room12))
{
if (helmet hasnt worn)
"Be sure to wear your helmet before going to an area where the air might not be breathable.";
if (pole notin player)
"Although the pod can be used as a life raft, you need something to thrust yourself through the shallow waters of the basin. Have you found anything suitable for the task?";
if (player in room13)
move pod1 to room18;
else
move pod1 to room17;
move player to pod1;
print"You push the pod towards the basin, and climb into it before getting in touch with the acidic water. You are now using the pod as a raft.^^";
<<Go FAKE_W_OBJ>>;
}
Take:
if (room23 has visited)
"As it's covered in acid, you cannot take it any more. You can still push into the basin if you need to navigate its waters.";
if (player in self)
"You can't take the pod while you're inside it.";
if (exoskeleton hasnt worn)
"You're not strong enough to carry the escape pod.";
if (self notin player)
{
move self to player;
"The strength given you by the exoskeleton allows you to take and carry the pod.";
}
"You already have the pod.";
],
after
[;
Enter:
"You get in the pod.";
Exit, GetOff:
if ((location == room17) || (location == room18))
{
deadflag = 1;
"You thrust yourself out of the pod, and fall into the deadly waters of the basin. In a few seconds, the acid dissolves your body. Thalos is now doomed.";
}
"You exit the pod.";
],
has enterable static container openable transparent; !open;
!========================================
! Room 3: Long Channel (south)
!========================================
Object room03 "Southern Part of Long Channel"
with
description "A very long channel with steep walls extends to the north, disappearing in the distance in the hazy atmosphere of the planet.",
n_to room04,
s_to room02,
has light;
!----------------------------------------
! Long channel (floating object)
!----------------------------------------
Object "channel"
with
name 'very' 'long' 'channel' 'steep' 'walls' 'rocks',
description "There's not much more to see here but rocks.",
found_in room03 room04,
has scenery;
!----------------------------------------
! Hazy atmosphere (floating object)
!----------------------------------------
Object "hazy atmosphere"
with
name 'hazy' 'atmosphere' 'air',
description "The combined effect of the heat and fine sand suspended midair hampers your vision and makes it difficult to estimate distances.",
found_in room03 room04,
has scenery;
!========================================
! Room 4: Long Channel (north)
!========================================
Object room04 "Northern Part of Long Channel"
with
description "A very long channel with steep walls extends to the south, disappearing in the distance in the hazy atmosphere of the planet. From this position you can also go up to climb out of the channel.",
s_to room03,
u_to room06,
has light;
!========================================
! Room 5: Surface of Planet
!========================================
Object room05 "Surface of Planet"
with
description "The surface of the planet becomes very rocky at this point, and sparse debris covers it becoming more numerous towards the west. To the north, you can see the edge of the channel from which you emerged, while to the south, a true deserted territory opens up.",
n_to room06,
s_to room20,
w_to room09,
has light;
!----------------------------------------
! Surface of planet (floating object)
!----------------------------------------
Object "surface of the planet"
with
name 'surface' 'of' 'the' 'planet' 'rocks' 'debris',
description "It's just rocks, sand and debris. Who could live in such a place?",
found_in room05 room08,
has scenery;
!========================================
! Room 6: Edge of Channel
!========================================
Object room06 "Edge of Channel"
with
description "You're on the edge that leads to your escape pod. Towards the north, the territory transforms into an arid expanse of gravel and, to the south, it's just covered with rocks. You can also go down towards the channel you came from.",
n_to room21,
s_to room05,
d_to room04,
has light;
!----------------------------------------
! Edge of channel (floating object)
!----------------------------------------
Object "channel" room06
with
name 'edge' 'of' 'channel',
description
[;
if (location == room05)
"Even if you are now on high terrain, there's not much to be seen. The view is bleak.";
"The edge of the channel is the highest point on this side of the planet.";
],
found_in room05 room06 room21,
has scenery;
!========================================
! Room 7: In Front of Strange Construction
!========================================
Object room07 "In Front of Strange Construction"
with
description "Towards the south stands a strange construction with a familiar and typically terrestrial appearance. To the west, the strip of emerged surface dives back into the deadly waters of the planet.",
w_to room12,
s_to room23,
in_to room23,
has light;
!----------------------------------------
! Strange construction
!----------------------------------------
Object "strange construction"
with
name 'strange' 'construction' 'house',
description "It resembles a typical terrestrial house.",
before
[;
Enter:
if (self in room07)
<<Go FAKE_IN_OBJ>>;
Exit:
if (self in room23)
<<Go FAKE_OUT_OBJ>>;
],
found_in room07 room23,
has scenery;
!========================================
! Room 8: Surface of Planet
!========================================
Object room08 "Surface of Planet"
with
description "A fine reddish sand, similar to the one you saw at the bottom of the channel, covers the vast area of the planet's surface on which you now stand. The scattered remains of your ship can be seen all around. From here you can either go north or west.",
n_to room09,
w_to room13,
has light;
!----------------------------------------
! Long expanse of sand (floating object)
!----------------------------------------
Object "sand"
with
name 'long' 'expanse' 'of' 'reddish' 'sand',
description "The sand has a reddish tinge, probably due to the presence of iron oxide.",
found_in room05 room08 room13,
has scenery;
!----------------------------------------
! Remains of your ship's engine
!----------------------------------------
Object engine "remains of your ship" room08
with
article "the",
name 'scattered' 'remains' 'of' 'your' 'ship' 'engine',
description "The most noticeable thing is the engine. The technology behind it is fascinating, but it's totally useless now that the engine, its central housing and its fairings have been turned into a heap of junk.",
before
[;
Search:
<<Search junk>>;
],
has static;
!----------------------------------------
! Junk
!----------------------------------------
Object junk "junk" room08
with
article "the",
name 'heap' 'of' 'junk' 'central' 'housing' 'fairings',
description
[;
print "After the crash, what remains of the engine is just junk. ";
if (self hasnt general)
"Yet, it might be worth searching through it.";
else
"You've already searched through the junk, so it's not worth searching it again.";
],
before
[;
Search:
print "You search through the junk";
if (self hasnt general)
{
give self general;
move rod to room08;
move pole to room08;
" and find a solium rod and a metal pole.";
}
", but don't find anything else of interest.";
],
has scenery;
!----------------------------------------
! Solium rod
!----------------------------------------
Object rod "solium rod"
with
name 'solium' 'rod',
description "It's a rod made of a mineral called 'solium'. It can power a photon rifle.",
before
[;
Insert:
if (second == rifle)
<<Load second self>>;
],
has;
!----------------------------------------
! Very light metal pole
!----------------------------------------
Object pole "very light metal pole"
with
name 'very' 'light' 'metal' 'pole',
description
[;
if (room13 hasnt visited)
"You have no clue what it's for, but it's very long.";
"The metal pole can be used as an oar to direct the pod across the shallow waters of the basin.";
],
has;
!========================================
! Room 9: Vast Rocky Terrain
!========================================
Object room09 "Vast Rocky Terrain"
with
description "This is a vast rocky terrain, on which debris of unknown origin lies, extending into the distance before your eyes. From here you can proceed north, south or east.",
n_to room10,
s_to room08,
e_to room05,
has light;
!----------------------------------------
! Vast rocky terrain (floating object)
!----------------------------------------
Object "rocky terrain"
with
name 'vast' 'rocky' 'terrain' 'rocks' 'debris' 'rock' 'fragments',
description "The terrain is really impervious and rocks and debris make walking difficult.",
found_in room09 room10,
has scenery;
!----------------------------------------
! Part of your ship's cockpit
!----------------------------------------
Object cockpit "remains of your ship's cockpit" room09
with
article "the",
name 'remains' 'of' 'your' 'ship^s' 'cockpit' 'mess',
description
[;
print "After the crash, what remains of the cockpit is a total mess and nothing seems usable any more. ";
if (rifle in nothing)
"Yet, it might be worth searching through it.";
else
"You've already searched through the mess, so it's not worth searching it again.";
],
before
[;
Search:
print "You search through the mess";
if (rifle in nothing)
{
move rifle to room09;
" and find your photon rifle.";
}
", but don't find anything of interest.";
],
has static;
!----------------------------------------
! Photon rifle
!----------------------------------------
Object rifle "photon rifle"
with
article "your",
name 'photon' 'rifle' 'gun' 'weapon',
description
[;
print "It's a photon rifle, part of the standard equipment of a starship and used for self-defense purposes. It's ";
if (rod hasnt general)
"not currently loaded.";
"fully charged, and ready to fire.";
],
before
[;
Drop, Insert:
"This is a deadly place. You'd better keep your rifle with you.";
Load:
if (rod has general)
{
"It's already loaded and fully charged.";
}
if (second == nothing && rod in player)
{
print "(with the solium rod)^";
second = rod;
}
if (second == nothing)
"You don't have anything suitable to load it with.";
if (second ~= rod)
"You can't load the rifle with ", (ThatOrThose)second, ".";
give rod general;
move rod to limbo;
"You load the rifle with the solium rod.";
],
has;
!========================================
! Room 10: Vast Rocky Terrain
!========================================
Object room10 "Vast Rocky Terrain"
with
description "This is a long strip of land leading north to the mouth of a large crater. It's scattered with a large number of rock fragments of all sizes that continue to the south.",
n_to room11,
s_to room09,
has light;
!========================================
! Room 11: Edge of Crater
!========================================
Object room11 "Edge of Crater"
with
description "You've reached the edge of a large crater formed by a meteorite. A steep slope leads to the bottom. You can either go down into the crater or south, back to where you came from.",
s_to room10,
d_to room16,
has light;
!----------------------------------------
! Crater (floating object)
!----------------------------------------
Object "crater"
with
name 'mouth' 'edge' 'of' 'large' 'crater',
description "The crater is very wide, a sign of a tremendous impact that happened who knows when.",
found_in room10 room11 room16,
has scenery;
!========================================
! Room 12: Shore of Island
!========================================
Object room12 "Shore of Island"
with
description "You've reached the shore of a tiny island consisting of a narrow strip of volcanic material, probably emerged due to an ancient eruption. To the west, you can see the basin of water you just crossed with the pod. The shore expands a little bit towards the east.",
n_to "There's no point in going north.",
s_to "There's no point in going south.",
e_to room07,
w_to
[;
if (helmet hasnt worn)
"The air is barely breathable in that direction. You'd better wear your helmet before going west.";
if (player notin pod1)
"If you intend to cross the basin you'd better enter the pod first.";
else
return room17;
],
before
[;
Hint:
if (pod1 notin self)