100 PRINT "Quick Loop for Mary Piper Scenario" 105 PRINT "The number you enter to randomize the program will create" 106 PRINT "a unique set of information specific to that number." 110 RANDOMIZE 111 INPUT "Please provide file name of not more than 8 characters plus suffix"; ff$ 112 OPEN ff$ FOR OUTPUT AS 1 120 a = INT(RND(1) * 4) + 1 121 IF a = 1 THEN l1$ = "before New Tempest" 122 IF a = 2 THEN l1$ = "before Rough Passage" 123 IF a = 3 THEN l1$ = "in Rough Passage" 124 IF a = 4 THEN l1$ = "before New Haven" 125 d1 = INT(RND(1) * 10) + INT(RND(1) * 10) + 42 130 GOSUB 4800 135 t1$ = z$ 140 a = INT(RND(1) * 2) + 1 141 IF a = 1 THEN l2$ = "in New Tempest" 142 IF a = 2 THEN l2$ = "in New Haven" 145 GOSUB 4850 150 p1$ = z$ 151 PRINT d1; "Days from Sardic to New Tempest" 152 PRINT #1, d1; "Days from Sardic to New Tempest" 153 PRINT "Reach New Tempest on Day "; d1 154 PRINT #1, "Reach New Tempest on Day "; d1 155 PRINT t1$; l1$ 156 PRINT #1, t1$; l1$ 157 PRINT p1$; l2$ 158 PRINT #1, p1$; l2$ 159 t = d1 160 d2 = INT(RND(1) * 10) + 16 161 t = t + d2 162 PRINT #1, d2; "days to Rough Passage" 163 PRINT d2; "days to Rough Passage" 164 PRINT #1, "Reach Rough Passage on day"; t 165 d3 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 166 PRINT "Reach Rough Passage on day"; t 167 PRINT #1, d3; "days through Rough Passage" 168 PRINT d3; "days through Rough Passage" 170 d4 = INT(RND(1) * 10) + 11 175 d5 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 5 180 p2 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 181 t = t + d3 182 PRINT "Emerge from Rough Passage on Day "; t 183 PRINT #1, "Emerge from Rough Passage on Day "; t 184 PRINT d4; "Days from Rough Passage to New Haven" 185 PRINT #1, d4; "Days from Rough Passage to New Haven" 186 t = t + d4 187 PRINT "Reach New Haven on Day "; t 188 PRINT #1, "Reach New Haven on Day "; t 189 PRINT d5; "Days through the Lesser Syndic" 190 PRINT #1, d5; "Days through the Lesser Syndic" 191 t = t + d5 192 PRINT "Reach Emerald on Day "; t 193 PRINT #1, "Reach Emerald on Day "; t 194 PRINT "Native encounter severity "; p2 195 PRINT #1, "Native encounter severity "; p2 200 d6 = INT(RND(1) * 20) + INT(RND(1) * 20) + 2 205 d7 = INT(RND(1) * 20) + INT(RND(1) * 20) + 2 210 d8 = INT(RND(1) * 20) + INT(RND(1) * 20) + 2 215 d9 = INT(RND(1) * 20) + INT(RND(1) * 20) + 2 220 d10 = INT(RND(1) * 20) + INT(RND(1) * 20) + 2 225 d11 = INT(RND(1) * 20) + INT(RND(1) * 20) + 82 230 GOSUB 4800 235 t2$ = z$ 240 GOSUB 4800 245 t3$ = z$ 250 GOSUB 4800 255 t4$ = z$ 260 GOSUB 4800 265 t5$ = z$ 270 GOSUB 4800 275 t6$ = z$ 287 t1 = t + d6 288 PRINT "Day "; t1; t2$ 289 PRINT #1, "Day "; t1; t2$ 290 t1 = t1 + d7 291 PRINT "Day "; t1; t3$ 292 PRINT #1, "Day "; t1; t3$ 293 t1 = t1 + d8 294 PRINT "Day "; t1; t4$ 295 PRINT #1, "Day "; t1; t4$ 296 t1 = t1 + d9 297 PRINT "Day "; t1; t5$ 298 PRINT #1, "Day "; t1; t5$ 299 t1 = t1 + d10 300 PRINT "Day "; t1; t6$ 301 PRINT #1, "Day "; t1; t6$ 302 t = t + d11 303 IF t1 > t THEN t = t1 + INT(RND(1) * 3) + 1 305 a = INT(RND(1) * 5) + 1 306 a1 = INT(RND(1) * 5) + 1 307 IF a = a1 GOTO 306 308 IF a = 1 THEN l3$ = " at Durnmist " 309 IF a = 2 THEN l3$ = " at Tempest " 310 IF a = 3 THEN l3$ = " at Tristar " 311 IF a = 4 THEN l3$ = " at Haven " 312 IF a = 5 THEN l3$ = " at Moon of Korg " 313 IF a1 = 1 THEN l4$ = " at Durnmist " 314 IF a1 = 2 THEN l4$ = " at Tempest " 315 IF a1 = 3 THEN l4$ = " at Tristar " 316 IF a1 = 4 THEN l4$ = " at Haven " 317 IF a1 = 5 THEN l4$ = " at Moon of Korg " 318 GOSUB 4850 319 p2$ = z$ 320 GOSUB 4850 321 p3$ = z$ 322 a = INT(RND(1) * 5) + 1 323 IF a = 1 THEN l5$ = " after Durnmist " 324 IF a = 2 THEN l5$ = " after Tempest " 325 IF a = 3 THEN l5$ = " after Tristar " 326 IF a = 4 THEN l5$ = " after Haven " 327 IF a = 5 THEN l5$ = " after Moon of Korg " 328 GOSUB 4800 329 t7$ = z$ 330 d12 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 331 d13 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 332 d14 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 333 d15 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 334 d16 = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 335 z = INT(RND(1) * 9) + 1 336 GOSUB 4860 337 p4$ = z$ 338 z = INT(RND(1) * 9) + 1 339 GOSUB 4860 340 p5$ = z$ 341 PRINT "Reach Durnmist Day "; t 342 PRINT #1, "Reach Durnmist Day "; t 343 PRINT p2$; l3$ 344 PRINT #1, p2$; l3$ 345 PRINT p3$; l4$ 346 PRINT #1, p3$; l4$ 347 PRINT t7$; l5$ 348 PRINT #1, t7$; l5$ 349 PRINT d12; "Days from Durnmist to Tempest" 350 PRINT #1, d12; "Days from Durnmist to Tempest" 351 t = t + d12 352 PRINT "Reach Tempest on Day "; t 353 PRINT #1, "Reach Tempest on Day "; t 354 PRINT d13; "Days from Tempest to Tristar" 355 PRINT #1, d13; "Days from Tempest to Tristar" 356 t = t + d13 357 PRINT "Reach Tristar on Day "; t 358 PRINT #1, "Reach Tristar on Day "; t 359 PRINT d14; "Days from Tristar to Haven" 360 PRINT #1, d14; "Days from Tristar to Haven" 361 t = t + d14 362 PRINT "Reach Haven on Day "; t 363 PRINT #1, "Reach Haven on Day "; t 364 PRINT d15; "Days from Haven to Moon of Korg" 365 PRINT #1, d15; "Days from Haven to Moon of Korg" 366 t = t + d15 367 PRINT "Reach Moon of Korg on Day "; t 368 PRINT #1, "Reach Moon of Korg on Day "; t 369 PRINT d16; "Days from Moon of Korg to Sardic" 370 PRINT #1, d16; "Days from Moon of Korg to Sardic" 371 t = t + d16 372 PRINT "Reach Sardic on Day "; t 373 PRINT #1, "Reach Sardic on Day "; t 374 PRINT p4$; " in Sardic" 375 PRINT #1, p4$; " in Sardic" 376 PRINT p5$; " in Sardic" 377 PRINT #1, p5$; " in Sardic" 378 PRINT "End of the run" 379 PRINT #1, "End of the run" 380 CLOSE 1 381 END 4800 REM Travel Encounters 4801 z = INT(RND(1) * 20) + 1 4810 IF z = 1 THEN z$ = " Pirates boarding " 4811 IF z = 2 THEN z$ = " Storm--ship lost (hurricane/meteor) " 4812 IF z = 3 THEN z$ = " Monster attack " 4813 IF z = 4 THEN z$ = " Crew uprising " 4814 IF z = 5 THEN z$ = " Uncharted island/planet " 4815 IF z = 6 THEN z$ = " Distress call--rescue " 4816 IF z = 7 THEN z$ = " Derelict " 4817 IF z = 8 THEN z$ = " Pirate ship to ship assault " 4818 IF z = 9 THEN z$ = " Pirate faked distress call " 4819 IF z = 10 THEN z$ = " Disease " 4820 IF z = 11 THEN z$ = " Rations spoilage " 4821 IF z = 12 THEN z$ = " Iceberg/Comet " 4822 IF z = 13 THEN z$ = " Broken mast/Engine failure " 4823 IF z = 14 THEN z$ = " Fake/Holographic monster " 4824 IF z = 15 THEN z$ = " Foreigner/Alien encounter, known " 4825 IF z = 16 THEN z$ = " Foreigner/Alien enounter, unknown " 4826 IF z = 17 THEN z$ = " Water loss " 4827 IF z = 18 THEN z$ = " Friendly merchant ship " 4828 IF z = 19 THEN z$ = " Patrol ship " 4829 IF z = 20 THEN z$ = " Whirlpool/Black hole " 4830 RETURN 4850 REM Port Encounters 4851 z = INT(RND(1) * 10) + 1 4860 IF z = 1 THEN z$ = " Ship attacked by locals " 4861 IF z = 2 THEN z$ = " Ship jumper: " 4862 IF z = 3 THEN z$ = " Customs check problem " 4863 IF z = 4 THEN z$ = " Bar Fight/police action " 4864 IF z = 5 THEN z$ = " Muggers, possible crew member killed: " 4865 IF z = 6 THEN z$ = " Character implicated in crime: " 4866 IF z = 7 THEN z$ = " Random crew member resigns: " 4867 IF z = 8 THEN z$ = " Cargo problem " 4868 IF z = 9 THEN z$ = " Repair delay " 4869 IF z = 10 THEN z$ = " Port closed " 4870 IF z = 2 THEN GOSUB 5000 4871 IF z = 5 THEN GOSUB 5000 4872 IF z = 6 THEN GOSUB 5000 4873 IF z = 7 THEN GOSUB 5000 4880 RETURN 5000 c = INT(RND(1) * 10) + INT(RND(1) * 10) + INT(RND(1) * 10) + 3 5001 IF c = 3 THEN c$ = " Captain " 5002 IF c = 4 THEN c$ = " Pilot Commander " 5003 IF c = 5 THEN c$ = " Chief Engineer " 5004 IF c = 6 THEN c$ = " Security Chief " 5005 IF c = 7 THEN c$ = " Pilot 1 " 5006 IF c = 8 THEN c$ = " Navigator 1 " 5007 IF c = 9 THEN c$ = " Medic 1 " 5008 IF c = 10 THEN c$ = " Medic 3 " 5009 IF c = 11 THEN c$ = " Engineer 2 " 5010 IF c = 12 THEN c$ = " Security Officer 1 " 5011 IF c = 13 THEN c$ = " Security Officer 3 " 5012 IF c = 14 THEN c$ = " Deck Hand 1 " 5013 IF c = 15 THEN c$ = " Deck Hand 3 " 5014 IF c = 16 THEN c$ = " Player Character or re-roll " 5015 IF c = 17 THEN c$ = " Deck Hand 5 " 5016 IF c = 18 THEN c$ = " Deck Hand 4 " 5017 IF c = 19 THEN c$ = " Deck Hand 2 " 5018 IF c = 20 THEN c$ = " Security Officer 4 " 5019 IF c = 21 THEN c$ = " Security Officer 2 " 5020 IF c = 22 THEN c$ = " Engineer 3 " 5021 IF c = 23 THEN c$ = " Engineer 1 " 5022 IF c = 24 THEN c$ = " Medic 2 " 5023 IF c = 25 THEN c$ = " Navigator 2 " 5024 IF c = 26 THEN c$ = " Pilot 2 " 5025 IF c = 27 THEN c$ = " Chief of Deck " 5026 IF c = 28 THEN c$ = " Doctor " 5027 IF c = 29 THEN c$ = " Chief Navigator " 5028 IF c = 30 THEN c$ = " First Mate/First Officer " 5029 z$ = z$ + c$ 5030 RETURN