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

Datum: 2020-05-10 Sun 00:00

Autor: Carsten Strotmann

Created: 2020-05-10 Sun 21:57

Validate