home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / PRISONER.DSK / PR.HALL.bas < prev    next >
BASIC Source File  |  2014-09-09  |  7KB  |  68 lines

  1. 1 ZZ =  FRE(0): POKE  -16368,0
  2. 2  ONERR  GOTO 32000
  3. 8  PRINT  CHR$(4);"BLOAD TONES"
  4. 9  GOTO 1000
  5. 300  VTAB 6: NORMAL : FOR I = 1 TO 8: HTAB 18: PRINT  SPC( 3): IF  RND(1) <T2(4)  THEN T1% = T2(I) *100: HTAB 21 - LEN( STR$(T1%)): PRINT T1%;
  6. 303  PRINT : NEXT I: VTAB 18: HTAB 25: PRINT  SPC( 4): HTAB 25: PRINT T4%;: HTAB 35: PRINT  SPC( 4): IF  RND(1) <T2(4)  THEN  HTAB 35: PRINT T5%
  7. 305  PRINT : RETURN 
  8. 390  NORMAL :H3% = 16:H4% = 19:L3% = 2:L4% = 20: GOSUB 395: RETURN 
  9. 395 T1% = L4% -L3% +1: VTAB H3%: FOR I3 = H3% TO H4%: HTAB L3%: PRINT  SPC( T1%): PRINT : NEXT I3: RETURN 
  10. 397  VTAB 3: HTAB 23: PRINT  SPC( 16): PRINT : FOR I3 = 1 TO 9: HTAB 23: PRINT " ";: HTAB 38: PRINT " ": NEXT I3: HTAB 23: PRINT  SPC( 16): RETURN 
  11. 500  IF T4% <950  AND  INT( RND(1) *1.2)  THEN T1% =  INT( RND(1) *100): IF T1%  THEN T4% = T4% +T1%:TP$ = "MORE PRISONERS HAVE ARRIVED ON THE ISLAND": GOSUB 620
  12. 510 T2(6) = T2(6) *(.95 +T2(5)/20) *(.9 +T2(1)/10): FLASH : IF  RND(1) >T2(6)  THEN  NORMAL : IF  RND(1) >T2(5)  AND T4%  THEN T1% =  RND(1) *2:T4% = T4% -T1%:T6% = T6% +T1%
  13. 511  GOSUB 397: NORMAL : IF  RND(1) >T2(6)  AND  RND(1) <T2(5)  AND  RND(1) <T2(3)  THEN T2(6) = T2(6) + RND(1) *(1 -T2(6)):TP$ = "SECURITY IS REPAIRING THE GATES": GOSUB 610
  14. 520 T2(5) = T2(5) *(.9 +T2(7)/10) *(.95 +T2(2)/20) *(.95 +T2(3)/20): IF T5%  AND  RND(1) <T2(5)  THEN T1% =  RND(1) *T6%:T6% = T6% -T1%:T4% = T4% +T1%: IF T1%  THEN TP$ = "SECURITY HAS CAUGHT SOME ESCAPEES": GOSUB 610
  15. 521  IF  INT( RND(1) *1.3)  AND T2(5) <.5  AND  RND(1) <T2(8)  THEN T2(5) = T2(5) + RND(1) *(1 -T2(5)):TP$ = "HEADQUARTERS IS REINFORCING OUR SECURITY": GOSUB 620
  16. 522  IF X3%  AND Y3%  AND  RND(1) <T2(5)  THEN  VTAB Y3%: HTAB X3%: PRINT " ":TP$ = "SECURITY HAS BROKEN UP FIGHT": GOSUB 610:X3% = 0:Y3% = 0
  17. 523  IF   NOT (X3%)  AND  RND(1) >T2(5)  AND  INT( RND(1) *1.3)  THEN X3% =  INT( RND(1) *7) *2 +25:Y3% =  INT( RND(1) *5) *2 +4: VTAB Y3%: HTAB X3%: PRINT "F":TP$ = "A FIGHT HAS STARTED": GOSUB 610
  18. 524  IF X3%  AND   NOT ( INT( RND(1) *10))  THEN  VTAB Y3%: HTAB X3%: PRINT " ":X3% = 0:Y3% = 0:T4% = T4% -1:TP$ = "SOMEONE WAS KILLED IN THE FIGHT": GOSUB 610:T5% = T5% +1
  19. 525  IF X4%  AND Y4%  AND  RND(1) <T2(5)/10  THEN  VTAB Y4%: HTAB X4%: PRINT " ":TP$ = "SECURITY HAS STOPPED THE RIOT": GOSUB 610:X4% = 0:Y4% = 0
  20. 526  IF   NOT (X4%)  AND  RND(1) >T2(5)  AND  RND(1) >T2(2)  AND  RND(1) >T2(3)  AND  INT( RND(1) *1.1)  THEN X4% =  INT( RND(1) *7) *2 +25:Y4% =  INT( RND(1) *5) *2 +4: VTAB Y4%: HTAB X4%: PRINT "R":TP$ = "THERE IS A RIOT ON THE ISLAND": GOSUB 610
  21. 527  IF X4%  THEN T1% =  INT( RND(1) *T4%/10): IF T1%  THEN T4% = T4% -T1%:TP$ = "SOME PEOPLE WERE KILLED IN THE RIOT": GOSUB 610:T5% = T5% +T1%
  22. 530 T2(7) = T2(7) *(.95 +T2(1)/20):T2(8) = T2(8) *(.9 +T2(1)/10):T2(4) = T2(4) *(.9 +T2(1)/10) *(.95 +T2(7)/20):T2(2) = T2(2) *(.9 +T2(3)/10) *(.95 +T2(1)/20) *(.95 +T2(7)/20)
  23. 570 T2(3) = T2(3) *(.95 +T2(1)/20) *(.95 +T2(7)/20)
  24. 575  IF  INT( RND(1) *1.05)  AND T2(1) <1  THEN T2(1) = T2(1) + RND(1) *(1 -T2(1)):TP$ = "HEADQUARTERS IS FIXING OUR POWER LINES": GOSUB 620
  25. 576  FOR I = 1 TO 8: IF T2(I) >.99  THEN T2(I) = 1
  26. 577  NEXT I
  27. 578  IF T5%  AND  RND(1)/50 >T2(5)  AND T2(3) >.75  THEN T2(3) = T2(3)/2:TP$ = "SABOTEURS HAVE BLOWN UP OUR WATER LINES": GOSUB 610:T5% =  INT( RND(1) *3) +T5%
  28. 579  IF T5% >500  THEN  POP 
  29. 580  GOSUB 300: RETURN 
  30. 600  VTAB 22: HTAB 2: NORMAL : PRINT  SPC( 38):TP$ = BK$ +TP$ +BK$:T1% =  LEN(TP$) -37:ZZ =  FRE(0): FOR I6 = 1 TO T1%: HTAB 2
  31. 603  PRINT  MID$ (TP$,I6,38);: POKE P1,34 + INT( RND(1) *26): POKE P2,35: CALL P3: NEXT I6:ZZ =  FRE(0): RETURN 
  32. 610  IF  RND(1) >T2(7)  THEN  RETURN 
  33. 615  GOTO 600
  34. 620  IF  RND(1) >T2(8)  THEN  RETURN 
  35. 623  IF  RND(1) >T2(5)  THEN T1$ = TP$:TP$ = "": FOR I6 = 1 TO  LEN(T1$):A$ =  MID$ (T1$,I6,1):TP$ = TP$ + CHR$( ASC(A$) +3): NEXT I6
  36. 625  GOTO 600
  37. 1000  GOSUB 10000: GOSUB 300:CT% = 0:T6% = 0
  38. 1003 TP$ = "GREETINGS, #. THIS IS OUR TOWN HALL. FROM HERE YOU HAVE COMPLETE CONTROL OF THE ISLAND. WOULD YOU BE INTERESTED IN BEING CARETAKER FOR A WHILE?": GOSUB 600
  39. 1004  HTAB 2: PRINT "?";
  40. 1005  GET A$: PRINT A$: IF A$ < >"Y"  THEN TP$ = "I AM GLAD TO SEE YOU ARE HAPPY WITH THE WAY THINGS ARE. TAKE CARE": GOSUB 600:ID% = ID% -20: GOTO 1090
  41. 1008 TP$ = "VERY WELL. LET'S SEE IF YOU CAN MAKE A DIFFERENCE": GOSUB 600
  42. 1010  FLASH : VTAB 4: HTAB 7: PRINT "CONTROL": NORMAL :X3% = 0:X4% = 0:Y3% = 0:Y4% = 0: GOSUB 2000
  43. 1020  IF CT% <99  OR T5%  THEN TP$ = "NOT A VERY IMPRESSIVE PERFORMANCE, #. I'M SURE YOU NOW APPRECIATE HOW WELL THINGS ARE MANAGED HERE.": GOSUB 600: GOTO 1090
  44. 1025 TP$ = "IN APPRECIATION FOR A JOB WELL DONE, I AM PRESENTING YOU WITH THIS GOLD WATCH AND A PLACE TO RETIRE . . . THE ISLAND": GOSUB 600
  45. 1090  NORMAL : PRINT : PRINT CH$
  46. 1095  CALL 520"PR.VILLAGE"
  47. 1999  END 
  48. 2000 A% =  PEEK( -16384): IF A% <128  THEN  GOSUB 500: GOTO 2000
  49. 2003  POKE  -16368,0:T2% = A% -176: IF T2% <1  OR T2% >9  THEN  POKE P1,17: POKE P2,17: CALL P3: GOTO 2000
  50. 2005  FLASH : VTAB 5 +T2%: HTAB 3: PRINT T2%: NORMAL : IF T2% = 9  THEN  RETURN 
  51. 2008  NORMAL : VTAB 17: HTAB 2: PRINT "D KEY";: HTAB 14: PRINT "I KEY": HTAB 2: PRINT "DECREASE   INCREASE": INVERSE : VTAB 17: HTAB 10: PRINT  SPC( 3);: HTAB 10: PRINT  INT(T2(T2%) *100);
  52. 2010 T7% =  PEEK( -16384): IF T7% <128  THEN 2010
  53. 2013  POKE  -16368,0:CT% = CT% +1: IF CT%/10 =  INT(CT%/10)  THEN  GOSUB 500
  54. 2014  IF CT% >32000  THEN CT% = 1000
  55. 2015 T7% = T7% -128: IF T7% < >68  AND T7% < >73  THEN 2090
  56. 2018 T1 = 0: IF T7% = 68  AND T2(T2%) > = .01  THEN T1 =  -.01
  57. 2020  IF T7% = 73  AND T2(T2%) < = .99  THEN T1 = .01
  58. 2025 T2(T2%) = T2(T2%) +T1: INVERSE : VTAB 17: HTAB 10: PRINT  SPC( 3): HTAB 10: PRINT  INT(T2(T2%) *100);: GOTO 2010
  59. 2090  NORMAL : GOSUB 390: VTAB T2% +5: HTAB 3: PRINT T2%: GOTO 2000
  60. 10000  FOR I = 1 TO 8:T2(I) = 1: NEXT I:T4% = 1000:T5% = 0: INVERSE : TEXT : HOME : FOR I = 1 TO 24: PRINT  SPC( 40): NEXT I: VTAB 2: HTAB 7: PRINT "TOWN HALL": VTAB 16: HTAB 22: PRINT "POPULATION  DEATHS"
  61. 10003  NORMAL :L3% = 2:L4% = 20:H3% = 4:H4% = 14: GOSUB 395: GOSUB 390:H3% = 2:H4% = 14:L3% = 22:L4% = 39: GOSUB 395: VTAB 18: HTAB 25: PRINT  SPC( 4): HTAB 35: PRINT  SPC( 4): VTAB 22: HTAB 2: PRINT  SPC( 38)
  62. 10005  FLASH : GOSUB 397: INVERSE : FOR I = 26 TO 36  STEP 2: FOR J = 5 TO 11  STEP 2: VTAB J: HTAB I: PRINT " ": NEXT J,I: NORMAL : VTAB 4: HTAB 7: PRINT "CONTROL"
  63. 10008  PRINT : HTAB 2: PRINT "<1> POWER": HTAB 2: PRINT "<2> FOOD": HTAB 2: PRINT "<3> WATER": HTAB 2: PRINT "<4> SURVEILLANCE": HTAB 2: PRINT "<5> SECURITY"
  64. 10010  HTAB 2: PRINT "<6> GATES": HTAB 2: PRINT "<7> INT.COMMUN.": HTAB 2: PRINT "<8> EXT.COMMUN.": HTAB 2: PRINT "<9> EXIT": RETURN 
  65. 32000 T1% =  PEEK(222): CALL 1002: IF T1% = 5  OR T1% = 6  OR T1% = 7  OR T1% = 13  THEN  RESUME 
  66. 32003  NORMAL : TEXT : PRINT : PRINT CH$
  67. 32005  IF T1% = 255  THEN  CALL 520"PR.SAVE"
  68. 32008  CALL 520"PR.ERR"