Kaiser 2 - Datei "KAISER5.TUR"
100 SAVE "D8:KAISER5.TUR" 110 COM ACKER(6),LEUTE(6),KRIEG(6),LKORN(6),LAND(6),KPREIS(6),MUHL(6),MARKT(6),GELD(6),LPREIS(6),APREIS(6) 120 COM VERALAND(6),PUNKTE(6),VERBLAND(6),JUSTIZ(6),ENTHOB(6),HH(6),BD(6) 130 COM MWST(6),EIN(6),ZOLL(6),DOM(6),BURG(6),INFANT(6),ARTELL(6),KAVALL(6),MANOV(6),TOD(6),TITEL(6),VERKORN(6) 140 DIM NAME$(160),LAND$(60),K$(1760),TITEL$(120),SCR$(2000),MEM$(2000) 150 TITEL$="Herrscher Baron Landgraf Markgraf Herzog F^rst Kurf^rst K]nig " 160 NAME$(160)="#":GRAPHICS %0:POKE 559,%0:POKE 1628,%1 170 OPEN #%1,4,%0,"D8:NAMEN.DAT" 180 BGET #1,ADR(NAME$),160 190 CLOSE #%1 200 CLS :POKE 752,%1 210 POKE 710,225:POKE 712,6:POKE 708,196:POKE 709,108 220 DL=DPEEK(560) 230 POKE DL,%1:DPOKE DL+%1,$0600 240 OPEN #%1,4,%0,"D1:KRIEG.FNT" 250 BGET #1,PEEK(106)*256,1024 260 CLOSE #%1:POKE 756,PEEK(106) 270 EXEC LOAD:Y=11 280 INFP=500+RAND(100) 290 ARTP=600+RAND(100) 300 KAVP=100+RAND(50) 310 MANP=200+RAND(80) 320 # HAUPT:CLS 330 POSITION 9,%0:? " GEHEIMDIENST " 340 POSITION 9,%1:? "--------------" 350 POSITION %2,%3:? "Wachen :";INFANT(SP);" " 360 POSITION %2,4:? "Preis der Wachen :";INFP 370 POSITION %2,5:? "Ausbildung pro Wache :";KAVP 380 POSITION %2,7:? "Saboteure :";ARTELL(SP);" " 390 POSITION %2,8:? "Preis der Saboteure :";ARTP 400 POSITION %2,9:? "Ausbildung pro Saboteur :";MANP 410 POSITION 6,11:? "Verm]gen :";GELD(SP);" Taler " 420 POSITION 12,14:? "Wachen einstellen" 430 POSITION 12,15:? "Saboteure einstellen" 440 POSITION 12,17:? "Wachen ausbilden" 450 POSITION 12,18:? "Saboteure ausbilden" 460 POSITION 12,20:? "Geheimdienstt\tigkeiten" 470 POSITION 12,22:? "Zur^ck" 480 POSITION 8,Y+%3:? "ESC^_":POKE 559,34 490 REPEAT 500 ST=STICK(%0) 510 IF ST<>15 THEN POSITION 8,Y+%3:? " " 520 IF ST=14 AND Y>11 530 Y=Y-%1-1*(Y=19 OR Y=14 OR Y=17) 540 ENDIF 550 IF ST=13 AND Y<19 560 Y=Y+%1+%1*(Y=12 OR Y=15 OR Y=17) 570 ENDIF 580 POSITION 8,Y+%3:? "ESC^_" 590 IF ST<>15 THEN SOUND %0,20+Y,10,10 600 PAUSE %2 610 SOUND 620 UNTIL STRIG(%0)=%0 630 SOUND %0,100,10,14:PAUSE 5:SOUND 640 IF Y=11 650 INFANT(SP)=INFANT(SP)+%1:GELD(SP)=GELD(SP)-INFP 660 ENDIF 670 IF Y=12 680 ARTELL(SP)=ARTELL(SP)+%1:GELD(SP)=GELD(SP)-ARTP 690 ENDIF 700 IF Y=14 710 KAVALL(SP)=KAVALL(SP)+%1 720 GELD(SP)=GELD(SP)-KAVP*INFANT(SP) 730 ENDIF 740 IF Y=15 750 MANOV(SP)=MANOV(SP)+%1 760 GELD(SP)=GELD(SP)-MANP*ARTELL(SP) 770 ENDIF 780 IF Y=17 AND ARTELL(SP)>%0 THEN GO# GEHEIM 790 IF Y=19 800 EXEC SAVE:POKE 1790,33:POKE 559,%0 810 TRAP 811:RUN "D8:KAISER4.TUR" 811 RUN "D1:KAISER4.TUR" 820 ENDIF 830 GOTO 330 840 ------------------------------ 850 # GEHEIM 860 EXEC WER:SPI=W+%1 870 IF SPI=SP THEN CLS :GOTO 330 880 FOR U=%0 TO 100 890 X=RAND(2000) 900 POKE ADR(SCR$)+X,72 910 NEXT U 920 CLS :WACH=INFANT(SPI) 930 POSITION 15,%2:? "WACHEN" 940 POSITION 15,%3:? "------" 950 POSITION 6,6:? " Die Wachen werden verteilt!":PAUSE 200 960 MM=MUHL(SPI) 970 AA=MARKT(SPI) 980 HH=HH(SPI) 990 REPEAT 1000 IF MM>%0 1010 X=RAND(39):Y=RAND(48):U=Y*40+X 1020 IF WACH>%0 1030 WACH=WACH-%1 1040 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1 1050 ENDIF 1060 POKE ADR(SCR$)+U,71 1070 MM=MM-%1 1080 ENDIF 1090 IF AA>%0 1100 X=RAND(39):Y=RAND(48):U=Y*40+X 1110 IF WACH>%0 1120 WACH=WACH-%1 1130 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1 1140 ENDIF 1150 POKE ADR(SCR$)+U,70 1160 AA=AA-%1 1170 ENDIF 1180 IF HH>%0 1190 X=RAND(39):Y=RAND(48):U=Y*40+X 1200 IF WACH>%0 1210 WACH=WACH-%1 1220 POKE ADR(MEM$)+U,PEEK(ADR(MEM$)+U)+%1 1230 ENDIF 1240 POKE ADR(SCR$)+U,86 1250 HH=HH-%1 1260 ENDIF 1270 UNTIL WACH+MM+AA+HH=%0 OR MM+AA+HH=%0 1280 CLS :TITEL$="-" 1290 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760:U=RAND(30) 1300 MOVE DPEEK(88)+200,ADR(SCR$),760 1310 MOVE ADR("^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@7%)4%2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@"),ADR(SCR$)+1920,40 1320 X=%0:Y=5:XX=%0 1330 POKE DL+10,%0:SPPI=RAND(500)+TITEL(SP)*500 1340 POSITION %0,%0:? "Spion :";SPPI 1350 POSITION %0,%1:? "Objekt: ";TITEL$ 1360 POSITION 20,%1:? "Wachen :",WW 1370 POSITION 20,%0:? "Verm]gen: ";GELD(SP);" ^X" 1380 POSITION %0,%2:? "Gewinne :" 1390 POSITION 20,%2:? "Land :" 1400 POSITION %0,%3:? "Geld :" 1410 POSITION 20,%3:? "Korn :" 1420 POSITION %0,4:? " SPIONAGEPHASE " 1430 REPEAT 1440 ST=STICK(%0) 1450 IF ST=14 AND Y>5 THEN Y=Y-%1 1460 IF ST=14 AND XX>%0 AND Y=5 THEN XX=XX-%1 1470 IF ST=13 AND Y<22 THEN Y=Y+%1 1480 IF ST=13 AND Y=22 AND XX<31 THEN XX=XX+%1 1490 IF ST=7 AND X<38 THEN X=X+%1 1500 IF ST=11 AND X>%0 THEN X=X-%1 1510 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760 1520 COLOR 35:PLOT X,Y 1530 PAUSE %1 1540 UNTIL STRIG(%0)=%0 1550 WW=PEEK(ADR(MEM$)+WER*40+(Y-5)*40+X) 1560 W=PEEK(ADR(SCR$)+XX*40+(Y-5)*40+X) 1570 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760 1580 TITEL$="---------" 1590 IF W=71 THEN TITEL$="M^hle " 1600 IF W=70 THEN TITEL$="Markt " 1610 IF W=86 THEN TITEL$="Handelsh." 1620 IF W=76 THEN TITEL$="Schloss " 1630 IF TITEL$(%1,%1)<>"-" THEN GELD(SP)=GELD(SP)-SPPI 1640 IF XX<31 OR Y<22 THEN GOTO 1340 1650 # SABO 1660 POSITION %0,4:? " SABOTAGEPHASE " 1670 POSITION 20,%1:? "Saboteure:" 1680 POSITION %0,%0:? "Saboteure:";ARTELL(SP)-US;" ":PAUSE 10 1690 POKE 710,82 1700 REPEAT 1710 ST=STICK(%0) 1720 IF ST=14 AND Y>5 THEN Y=Y-%1 1730 IF ST=14 AND XX>%0 AND Y=5 THEN XX=XX-%1 1740 IF ST=13 AND Y<22 THEN Y=Y+%1 1750 IF ST=13 AND Y=22 AND XX<31 THEN XX=XX+%1 1760 IF ST=7 AND X<38 THEN X=X+%1 1770 IF ST=11 AND X>%0 THEN X=X-%1 1780 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760 1790 COLOR 35:PLOT X,Y 1800 PAUSE %1 1810 UNTIL STRIG(%0)=%0:PAUSE 10 1820 WW=PEEK(ADR(MEM$)+XX*40+(Y-5)*40+X) 1830 W=PEEK(ADR(SCR$)+XX*40+(Y-5)*40+X) 1840 MOVE ADR(SCR$)+XX*40,DPEEK(88)+200,760 1850 TITEL$="---------" 1860 IF W=71 THEN TITEL$="M^hle " 1870 IF W=70 THEN TITEL$="Markt " 1880 IF W=86 THEN TITEL$="Handelsh." 1890 POSITION 8,%1:? TITEL$ 1900 IF TITEL$(%1,%1)="-" THEN 2240 1910 PAUSE 5:STEL=%2:XPOS=30:YPOS=%1:EXEC UJZER:PAUSE 5 1920 IF ERGB<=(ARTELL(SP)-US) 1930 SAB=ERGB 1940 ELSE 1950 PUT 253 1960 SAB=ARTELL(SP)-US 1970 ENDIF :IF SAB=%0 THEN 2240 1980 POSITION 30,%1:? SAB;" " 1990 SABO=SAB*MANOV(SP)+RAND(6)*(SAB>%0) 2000 WACH=WW*KAVALL(SP)+RAND(6)*(WW>%0) 2010 FOR U=%0 TO 20 2020 SOUND %0,RAND(100)+50,%2,5 2030 PAUSE %1 2040 SOUND :PAUSE RAND(6)+%2 2050 NEXT U 2060 IF SABO>WACH 2070 FOR U=%0 TO 30 2080 COLOR 14+RAND(%3):PLOT X,Y 2090 PAUSE 4:COLOR 26:PLOT X,Y 2100 NEXT U 2110 US=US+SAB 2120 INFANT(SPI)=INFANT(SPI)-WW 2130 IF TITEL$(%3,%3)="r":LG=LG+1000+RAND(500):GG=GG+800+RAND(200):KG=KG+2000+RAND(1000):MARKT(SPI)=MARKT(SPI)-%1:ENDIF 2140 IF TITEL$(%3,%3)="h":LG=LG+2000 AND (800):GG=GG+1600+RAND(400):KG=KG+4000+RAND(2000):MUHL(SPI)=MUHL(SPI)-%1:ENDIF 2150 IF TITEL$(%3,%3)="n":LG=LG+500+RAND(200):GG=GG+5600+RAND(900):KG=KG+1000+RAND(500):HH(SPI)=HH(SPI)-%1:ENDIF 2160 ELSE 2170 COLOR 21:PLOT X+%1,Y 2180 ARTELL(SP)=ARTELL(SP)-SAB 2190 ENDIF 2200 MOVE DPEEK(88)+200,ADR(SCR$)+XX*40,760 2210 POSITION 26,%2:? LG 2220 POSITION 6,%3:? GG 2230 POSITION 26,%3:? KG 2240 IF XX<31 OR Y<22 THEN GO# SABO 2250 POSITION 30,%1:? SAB;" " 2260 GELD(SP)=GELD(SP)+GG 2270 LKORN(SP)=LKORN(SP)+KG 2280 LAND(SP)=LAND(SP)+INT(LG/%2) 2290 ACKER(SP)=ACKER(SP)+INT(LG/%2) 2300 GELD(SPI)=GELD(SPI)-GG 2310 LKORN(SPI)=LKORN(SPI)-KG 2320 IF LKORN(SPI)<%0 THEN LKORN(SPI)=%0 2330 LAND(SPI)=LAND(SPI)-INT(LG/%2) 2340 IF LAND(SPI)<%0 THEN LAND(SPI)=%0 2350 ACKER(SPI)=ACKER(SPI)-INT(LG/%2) 2360 IF ACKER(SPI)<%0 THEN ACKER(SPI)=%0 2370 IF HH(SPI)<%0 THEN HH(SPI)=%0 2380 IF MUHL(SPI)<%0 THEN MUHL(SPI)=%0 2390 IF MARKT(SPI)<%0 THEN MARKT(SPI)=%0 2400 EXEC SAVE 2410 POKE 1790,33:POKE 559,%0 2420 TRAP 2421:RUN "D8:KAISER4.TUR" 2421 RUN "D1:KAISER4.TUR" 2430 ------------------------------ 2440 PROC UJZER 2450 ZAEHL=%0:ERGB=%0 2460 FOR U=%1 TO STEL 2470 POSITION XPOS+U-%1,YPOS 2480 ? ZAEHL 2490 NEXT U 2500 STE=STEL 2510 REPEAT 2520 ST=STICK(%0) 2530 IF ST<15 2540 SOUND %0,40+10*(ST=13 OR ST=14),10,6 2550 PAUSE 0.7:SOUND 2560 ENDIF 2570 IF ST=11 AND STE>%1 THEN STE=STE-%1 2580 IF ST=7 AND STE<STEL THEN KG=STE+%1 2590 IF ST=11 OR ST=7 THEN LOCATE XPOS-%1+STE,YPOS,ZAEHL:ZAEHL=ZAEHL-48 2600 POSITION XPOS-%1+STE,YPOS+%1 2610 ? "ESC^\":PAUSE %1 2620 POSITION XPOS-%1+STE,YPOS+%1 2630 ? " " 2640 IF ST=14 THEN ZAEHL=ZAEHL+%1 2650 IF ST=13 THEN ZAEHL=ZAEHL-%1 2660 IF ZAEHL<%0 THEN ZAEHL=9 2670 IF ZAEHL>9 THEN ZAEHL=%0 2680 POSITION XPOS-%1+STE,YPOS 2690 ? ZAEHL 2700 UNTIL STRIG(%0)=%0 2710 FOR U=%1 TO STEL 2720 LOCATE XPOS-%1+U,YPOS,ZAEHL 2730 ERGB=ERGB+((ZAEHL-48)*10^(STEL-U)) 2740 NEXT U:SOUND %1,20,12,6:SOUND %0,70,10,6:PAUSE %3:SOUND 2750 ENDPROC 2760 ------------------------------ 2770 PROC LOAD 2780 OPEN #%1,4,%0,"D1:DATEN.DAT" 2790 %GET #%1,SP 2800 FOR U=%1 TO 6 2810 %GET #%1,A:%GET #%1,B:ACKER(U)=A:LEUTE(U)=B 2820 %GET #%1,A:%GET #%1,B:KRIEG(U)=A:LKORN(U)=B 2830 %GET #%1,A:%GET #%1,B:LAND(U)=A:KPREIS(U)=B 2840 %GET #%1,A:%GET #%1,B:MUHL(U)=A:MARKT(U)=B 2850 %GET #%1,A:%GET #%1,B:GELD(U)=A:LPREIS(U)=B 2860 %GET #%1,A:%GET #%1,B:APREIS(U)=A:VERALAND(U)=B 2870 %GET #%1,A:%GET #%1,B:PUNKTE(U)=A:VERBLAND(U)=B 2880 %GET #%1,A:%GET #%1,B:JUSTIZ(U)=A:MWST(U)=B 2890 %GET #%1,A:%GET #%1,B:EIN(U)=A:ZOLL(U)=B 2900 %GET #%1,A:%GET #%1,B:LET DOM(U)=A:BURG(U)=B 2910 %GET #%1,A:%GET #%1,B:INFANT(U)=A:ARTELL(U)=B 2920 %GET #%1,A:%GET #%1,B:KAVALL(U)=A:MANOV(U)=B 2930 %GET #%1,A:%GET #%1,B:TOD(U)=A:TITEL(U)=B 2940 %GET #%1,A:%GET #%1,B:HH(U)=A:BD(U)=B 2950 %GET #%1,A:VERKORN(U)=A:%GET #%1,B:ENTHOB(U)=B:NEXT U:%GET #%1,MG1 2960 %GET #%1,MG2:%GET #%1,JAHR:%GET #%1,U:HH(%0)=U 2970 CLOSE #%1 2980 ENDPROC 2990 ------------------------------ 3000 PROC SAVE 3010 CLOSE #%1:OPEN #%1,8,%0,"D8:DATEN.DAT" 3020 %PUT #%1,SP 3030 FOR U=%1 TO 6 3040 %PUT #%1,ACKER(U):%PUT #%1,LEUTE(U) 3050 %PUT #%1,KRIEG(U):%PUT #%1,LKORN(U) 3060 %PUT #%1,LAND(U):%PUT #%1,KPREIS(U) 3070 %PUT #%1,MUHL(U):%PUT #%1,MARKT(U) 3080 %PUT #%1,GELD(U):%PUT #%1,LPREIS(U) 3090 %PUT #%1,APREIS(U):%PUT #%1,VERALAND(U) 3100 %PUT #%1,PUNKTE(U):%PUT #%1,VERBLAND(U) 3110 %PUT #%1,JUSTIZ(U):%PUT #%1,MWST(U) 3120 %PUT #%1,EIN(U):%PUT #%1,ZOLL(U) 3130 %PUT #%1,DOM(U):%PUT #%1,BURG(U) 3140 %PUT #%1,INFANT(U):%PUT #%1,ARTELL(U) 3150 %PUT #%1,KAVALL(U):%PUT #%1,MANOV(U) 3160 %PUT #%1,TOD(U):%PUT #%1,TITEL(U) 3170 %PUT #%1,HH(U):%PUT #%1,BD(U) 3180 %PUT #%1,VERKORN(U):%PUT #%1,ENTHOB(U):NEXT U:%PUT #%1,MG1 3190 %PUT #%1,MG2:%PUT #%1,JAHR:%PUT #%1,HH(%0) 3200 CLOSE #%1 3210 ENDPROC 3220 ------------------------------ 3230 PROC WER 3240 AN=VAL(NAME$(%1,%1)):CLS 3250 POKE 710,113:POKE 709,15 3260 POSITION 5,6:? "Wen wollen Sie angreifen?" 3270 FOR U=%1 TO AN 3280 IF U=SP:POSITION 7,7+U*%2:? " Niemand " 3290 ELSE 3300 POSITION 7,7+U*%2:? CHR$(U-%1);NAME$(U*20,U*20+10) 3310 ENDIF 3320 NEXT U 3330 W=%0 3340 REPEAT 3350 POSITION %2,9+W*%2:? "ESC^_":PAUSE %2 3360 ST=STICK(%0) 3370 IF ST<15 THEN SOUND %0,30+W,10,10:PAUSE %2:SOUND 3380 IF ST<>15 THEN POSITION %2,9+W*%2:? " " 3390 IF ST=14 THEN W=W-%1:IF W<%0 THEN W=%0 3400 IF ST=13 THEN W=W+%1:IF W>AN-%1 THEN W=AN-%1 3410 UNTIL STRIG(%0)=%0 3420 SOUND %0,100,10,10:PAUSE 5:SOUND 3430 ENDPROC 3440 ------------------------------
Kaiser II (c) 1989-2020 PhöniX SoftCrew
Carsten Strotmann / Björn Israel
Atari und PC Software
https://kaiser2.strotmann.de