Kaiser 2 - Datei "KAISER4.TUR"

0 CLR :DIM TEXT$(40),NAMEN$(160),TITEL$(90)
1 SAVE "D8:KAISER4.TUR"
10 COM ACKER(6),LEUTE(6),KRIEG(6),LKORN(6),LAND(6),KPREIS(6),MUHL(6),MARKT(6),GELD(6),LPREIS(6),APREIS(6)
20 COM VERALAND(6),PUNKTE(6),VERBLAND(6),JUSTIZ(6),ENTHOB(6),HH(6),BD(6)
30 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)
40 ------------------------------
50 OPEN #%1,4,%0,"D8:NAMEN.DAT"
60 NAMEN$(160)="#"
70 BGET #%1,ADR(NAMEN$),160
80 CLOSE #%1
90 EXEC LOAD
91 IF PEEK(1790)=33 THEN GO# GESCHAFT
92 REPEAT :C=C+$10:PAUSE %2:IF C>$FF THEN C=8
93	POKE 708,C:UNTIL STRIG(%0)=%0
100 ------------------------------
101 RA=RAND(100)*JUSTIZ(SP)
102 SE=INT((MG1+MG2)/100*(ZOLL(SP)+EIN(SP)+MWST(SP))+RA)
110 # EINNAHM
120 GRAPHICS %0:POKE 559,%0:POKE 756,PEEK(106):TRAP 40000:POKE 752,%1
130 DL=DPEEK(560):GELD(SP)=INT(GELD(SP))
140 DPOKE 1560,DL+%3
150 POKE DL,%1:DPOKE DL+%1,1536
151 IF GELD(SP)<-10000-(TITEL(SP)*2000) THEN POKE 559,34:EXEC PFAND:CLS :POKE 559,%0
160 POKE 710,5:POKE 709,12:POKE 712,130
170 POKE 708,%0
180 POSITION %2,4:? " Staatseinnahmen:"
200 POSITION 20,4:? SE;" Taler"
210 POSITION 6,8:? "Zoll				 :"
220 POSITION 6,10:? "Mehrwertsteuer	:"
230 POSITION 6,12:? "Einkommensteuer  :"
240 POSITION 28+%1*(ZOLL(SP)<10),8:? ZOLL(SP);" %"
250 POSITION 28+%1*(MWST(SP)<10),10:? MWST(SP);" %"
260 POSITION 28+%1*(EIN(SP)<10),12:? EIN(SP);" %"
270 POSITION 6,14:? "Justiz			  :"
280 LET TEXT$="Sehr fair BescheidenHart		Gierig	 "
290 POSITION 25,14:? TEXT$((JUSTIZ(SP)-1)*10+1,(JUSTIZ(SP)-1)*10+10)
300 POKE 559,34
310 POSITION %1,17:? "W\hlen Sie: ESC^\ Zoll \ndern"
320 POSITION %1,18:? "				ESC^^ Mehrwertsteuer \ndern"
330 POSITION %1,19:? "				ESC^_ Einkommensteuer \ndern"
340 POSITION %1,20:? "		oder  ESC^] Justiz \ndern"
350 REPEAT
360	ST=STICK(%0):IF ST<>15 THEN PAUSE 5
370	IF ST=14:PAUSE %3
380	  XPOS=28:YPOS=8:STEL=%2
390	  EXEC UJZER
400	  ZOLL(SP)=ERGB
410	  GO# EINNAHM
420	ENDIF
430	IF ST=11:PAUSE %3
440	  XPOS=28:YPOS=10:STEL=%2
450	  EXEC UJZER
460	  MWST(SP)=ERGB
470	  GO# EINNAHM
480	ENDIF
490	IF ST=7:PAUSE %3
500	  XPOS=28:YPOS=12:STEL=%2
510	  EXEC UJZER
520	  EIN(SP)=ERGB
530	  GO# EINNAHM
540	ENDIF
550	IF ST=13:PAUSE 5
560	  POKE DPEEK(88)+680,%0
570	  MOVE DPEEK(88)+680,DPEEK(88)+681,279
590	  POSITION %2,17:? "Justiz:			ESC^\ Sehr fair"
600	  POSITION %2,18:? "					 ESC^^ Bescheiden"
610	  POSITION %2,19:? "					 ESC^_ Hart"
620	  POSITION %2,20:? "			 oder  ESC^] Gierig"
630	  REPEAT :UNTIL STICK(%0)<>15
640	  IF STICK(%0)=14 THEN JUSTIZ(SP)=%1
650	  IF STICK(%0)=11 THEN JUSTIZ(SP)=%2
660	  IF STICK(%0)=7 THEN JUSTIZ(SP)=%3
670	  IF STICK(%0)=13 THEN JUSTIZ(SP)=4
680	  GO# EINNAHM
690	ENDIF
700 UNTIL STRIG(%0)=%0:P=%0:GELD(SP)=GELD(SP)+SE
710 ------------------------------
720 # HA
730 CLS :IF P=%1 THEN 770
740 VERKORN(SP)=LKORN(SP)
750 VERALAND(SP)=INT(ACKER(SP)/10)
760 VERBLAND(SP)=INT(LAND(SP)/10)
765 IF VAL(NAMEN$(%1,%1))=%1 THEN GO# LANDMANGEL
770 CLS :POKE 708,130:POKE 709,15:POKE 710,181:POKE 712,%2:POKE 559,%0
780 POSITION 4,4:? " Handelsdaten "
790 POSITION 5,7:? "Kornpreis		  :"
800 A=KPREIS(SP):POSITION 25+%1*(A<100),7:? A;" Taler"
810 POSITION 5,8:? "Ackerlandpreis	:"
820 A=APREIS(SP):POSITION 25+%1*(A<100),8:? A;" Taler"
830 POSITION 5,9:? "Baulandpreis	  :"
840 A=LPREIS(SP):POSITION 25+%1*(A<100),9:? A;" Taler"
850 POSITION 5,11:? "Kornmenge		  :"
860 A=VERKORN(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),11:? A;" Ma'"
870 POSITION 5,12:? "Ackerlandmenge	:"
880 A=VERALAND(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),12:? A;" Hektar"
890 POSITION 5,13:? "Baulandmenge	  :"
900 A=VERBLAND(SP):POSITION 25+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),13:? A;" Hektar"
910 POSITION 5,16:? "  Weiter  "
920 W=9:POKE 559,34:PAUSE 10
930 REPEAT
940	ST=STICK(%0)
950	IF ST=14 THEN SOUND %0,60,10,6:PAUSE %3:SOUND :POSITION %3,7+W:? " ":W=W-%1:IF W=%3 THEN W=%2
960	IF ST=13 THEN SOUND %0,50,10,6:PAUSE %3:SOUND :POSITION %3,7+W:? " ":W=W+%1:IF W=%3 THEN W=4
970	IF W=8 THEN W=6
980	IF W<%0 THEN W=%0
990	IF W>6 THEN W=9
1000	POSITION %3,7+W:? "ESC^_"
1010 UNTIL STRIG(%0)=%0
1020 IF W=%0
1030	PAUSE 5
1040	POSITION 4,20:? "Neuer Kornpreis:"
1050	XPOS=30:YPOS=20:STEL=%3
1060	EXEC UJZER
1070	KPREIS(SP)=ERGB
1080	GOTO 770
1090 ENDIF
1100 IF W=%1
1110	PAUSE 5
1120	POSITION 4,20:? "Neuer Ackerlandpreis:"
1130	XPOS=30:YPOS=20:STEL=%3
1140	EXEC UJZER
1150	APREIS(SP)=ERGB
1160	GOTO 770
1170 ENDIF
1180 IF W=%2
1190	PAUSE 5
1200	POSITION 4,20:? "Neuer Baulandpreis:"
1210	XPOS=30:YPOS=20:STEL=%3
1220	EXEC UJZER
1230	LPREIS(SP)=ERGB
1240	GOTO 770
1250 ENDIF
1260 IF W=4
1270	PAUSE 5
1280	POSITION 4,20:? "Neue Kornmenge:"
1290	XPOS=30:YPOS=20:STEL=6
1300	EXEC UJZER
1301	IF ERGB<LKORN(SP)/10 THEN ERGB=INT(LKORN(SP)/10)
1310	IF ERGB>LKORN(SP)
1320	  PUT 253
1330	  POSITION 4,22:? "Sie haben nur ";LKORN(SP);" Ma'":PAUSE 150
1340	  GOTO 770
1350	ENDIF
1360	VERKORN(SP)=ERGB
1370	GOTO 770
1380 ENDIF
1390 IF W=5
1400	PAUSE 5
1410	POSITION 4,20:? "Neue Ackerlandmenge:"
1420	XPOS=30:YPOS=20:STEL=6
1430	EXEC UJZER
1431	IF ERGB<ACKER(SP)/10 THEN ERGB=INT(ACKER(SP)/10)
1440	IF ERGB>ACKER(SP)
1450	  PUT 253
1460	  POSITION 4,22:? "Sie haben nur ";ACKER(SP);" Hektar":PAUSE 150
1470	  GOTO 770
1480	ENDIF
1490	VERALAND(SP)=ERGB
1500	GOTO 770
1510 ENDIF
1520 IF W=6
1530	PAUSE 5
1540	POSITION 4,20:? "Neue Baulandmenge:"
1550	XPOS=30:YPOS=20:STEL=6
1560	EXEC UJZER
1561	IF ERGB<LAND(SP)/10 THEN ERGB=INT(LAND(SP)/10)
1570	IF ERGB>LAND(SP)
1580	  PUT 253
1590	  POSITION 4,22:? "Sie haben nur ";LAND(SP);" Hektar":PAUSE 150
1600	  GOTO 770
1610	ENDIF
1620	VERBLAND(SP)=ERGB
1630	GOTO 770
1640 ENDIF
1650 ------------------------------
1660 # LANDMANGEL
1670 VMUHL=INT(MUHL(SP)-LAND(SP)/1000)
1680 VMARK=INT(MARKT(SP)-LAND(SP)/600)
1690 IF VMARK<%2 THEN VMARK=%0
1700 IF VMUHL<%2 THEN VMUHL=%0
1710 IF VMUHL>%0 OR VMARK>%0
1720	CLS :POKE 710,20
1730	POSITION 10,5:? " LANDMANGEL "
1740	POSITION 5,10:? "Wegen Landmangels haben Sie"
1750	POSITION 10,14:? VMUHL+1;" M^hle(n) und"
1760	POSITION 10,16:? VMARK+1;" M\rkte verloren"
1770	MARKT(SP)=MARKT(SP)-(VMARK+%1)
1780	MUHL(SP)=MUHL(SP)-(VMUHL+%1)
1781	PAUSE 10
1790	REPEAT :UNTIL STRIG(%0)=%0
1800 ENDIF
1810 ------------------------------
1820 # KARTE
1830 IF MUHL(SP)<%0 THEN MUHL(SP)=%0
1840 IF MARKT(SP)<%0 THEN MARKT(SP)=%0
1850 GRAPHICS 24:POKE 559,%0:POKE 710,%0:POKE 709,14:POKE 712,5:POKE 708,181
1860 ST1=INT(MARKT(SP)/5)
1870 ST2=INT(MUHL(SP)/%3)
1880 IF ST1>ST2:ST=ST2:ELSE :ST=ST1:ENDIF
1890 A=INT((SP+%1)/%2)
1900 LET TEXT$="D8:MAP0"
1910 LET TEXT$(7,7)=STR$(A)
1920 OPEN #%1,4,%0,TEXT$
1930 BGET #%1,DPEEK(88),3720
1940 IF A<>(SP+1)/2 THEN BGET #1,DPEEK(88),80:BGET #%1,DPEEK(88),3720
1950 CLOSE #%1:COLOR %1
1951 RESTORE 1952:FOR U=%0 TO SP-%1:READ X,Y,Q,W:NEXT U
1952 DATA 68,43,135,40,135,40,90,25,192,34,132,26
1953 DATA 110,50,205,15,134,40,32,35,210,30,80,38
1954 FOR U=%0 TO %3
1955	IF BURG(SP)<15
1956	  TEXT Q,W+U*8,"	 "
1957	ENDIF
1958	IF DOM(SP)<20
1959	  TEXT X,Y+U*8,"	 "
1960	ENDIF
1961 NEXT U
1970 DL=DPEEK(560)
1971 POKE DL+98,32
1980 DPOKE 1560,DL+%3
1990 POKE DL,%1:POKE 756,PEEK(106)
2000 DPOKE DL+%1,1536
2010 TEXT 30,100,"St\dte			 :"
2020 TEXT 164,100,ST:POKE 559,34
2030 ZAHL=ST+%1:Y=100:XENDE=315:POKE 559,34
2040 EXEC FBALK
2060 TEXT 30,110,"M\rkte		^F	:"
2070 TEXT 164,110,MARKT(SP)
2080 ZAHL=MARKT(SP):Y=110
2090 EXEC FBALK
2110 TEXT 30,120,"M^hlen		^G	:"
2120 TEXT 164,120,MUHL(SP)
2130 ZAHL=MUHL(SP):Y=120
2131 EXEC FBALK
2132 TEXT 30,132,"Ackerland (Tsnd):":TEXT 164,132,INT(ACKER(SP)/1000)
2133 ZAHL=ACKER(SP)/1000:Y=132
2134 EXEC FBALK
2135 TEXT 30,142,"Bauland	(Tsnd):":TEXT 164,142,INT(LAND(SP)/1000)
2136 ZAHL=LAND(SP)/1000:Y=142
2140 EXEC FBALK
2160 TEXT 30,154,"Bev]lkerung ^Y	:"
2170 TEXT 164,154,LEUTE(SP)
2180 ZAHL=LEUTE(SP)/10:Y=154
2190 EXEC FBALK
2210 TEXT 30,164,"Verm]gen ^X:"
2220 TEXT 124,164,GELD(SP)
2230 ZAHL=GELD(SP)/100:Y=164
2240 EXEC FBALK
2250 TEXT 30,176,"Punkte	 :"
2251 TEXT 124,176,PUNKTE(SP)
2252 ZAHL=PUNKTE(SP):Y=176
2253 EXEC FBALK
2262 REPEAT :UNTIL STRIG(%0)=%0
2270 ------------------------------
2280 # GESCHAFT
2290 GRAPHICS %0:POKE 710,%2:POKE 712,248:POKE 708,%0:POKE 709,252:POKE 559,%0:POKE 756,PEEK(106):POKE 1790,100
2300 DL=DPEEK(560)
2310 DPOKE 1560,DL+%3
2320 POKE DL,%1:POKE DL+28,6
2330 DPOKE DL+%1,1536
2340 CLS :POSITION 12,%2:? " Staatseink\ufe "
2350 POSITION 10,5:? "Verm]gen :				  "
2360 A=GELD(SP)
2370 POSITION 22+%1*(A<10000)+1*(A<1000)+1*(A<100)+1*(A<10),5:? GELD(SP)
2380 POSITION 5,8:? "Markt..().............1000 Taler"
2390 POSITION 5,10:? "M^hle..().............2000 Taler"
2400 POSITION 5,12:? "Palast (Teil	)......5000 Taler"
2410 POSITION 5,14:? "Kathedrale (Teil	)..9000 Taler"
2420 POSITION 5,17:? "Geheimdienst"
2430 POSITION 5,19:? "Spielstand "
2440 POSITION 5,22:? " Ende "
2450 POKE 559,34:POKE 752,%1
2460 W=14
2470 REPEAT :POSITION %1,23:? "					  ";
2471	POSITION 18,12:? 15-BURG(SP);")."
2472	POSITION 22,14:? 20-DOM(SP);")."
2473	POSITION 13,10:? MUHL(SP);")."
2474	POSITION 13,8:? MARKT(SP);")."
2480	ST=STICK(%0)
2490	IF ST=14
2500	  W=W-%2:SOUND %0,100,10,6:PAUSE 4:SOUND :IF W=12 OR W=7 THEN W=W-%1:POSITION %2,8+(W+%3):? " "
2510	  POSITION %2,8+(W+%2):? " "
2520	ENDIF
2530	IF ST=13
2540	  W=W+%2:SOUND %0,90,10,6:PAUSE 4:SOUND :IF W=13 OR W=8 THEN W=W+%1:POSITION %2,8+(W-%3):? " "
2550	  POSITION %2,8+(W-%2):? " "
2560	ENDIF
2570	IF W>14 THEN W=14
2580	IF W<%0 THEN W=%0
2590	POSITION %2,8+W:? "ESC^_"
2600 UNTIL STRIG(%0)=%0
2610 IF W=%0
2620	SOUND %0,30,10,6:PAUSE 5:SOUND
2630	GELD(SP)=GELD(SP)-1000
2640	MARKT(SP)=MARKT(SP)+%1
2650	IF LAND(SP)/600<MARKT(SP)
2660	  PUT 253
2670	  POSITION %2,23:? "zu wenig bauland";
2680	  PAUSE 100:MARKT(SP)=MARKT(SP)-1:GELD(SP)=GELD(SP)+1000
2690	ELSE
2691	  PUNKTE(SP)=PUNKTE(SP)+0.5
2692	ENDIF
2700 ENDIF
2710 IF W=%2
2720	SOUND %0,30,10,6:PAUSE 5:SOUND
2730	GELD(SP)=GELD(SP)-2000
2740	MUHL(SP)=MUHL(SP)+%1
2750	IF LAND(SP)/1000<MUHL(SP)
2760	  PUT 253
2770	  POSITION %2,23:? "zu wenig bauland";
2780	  PAUSE 100:MUHL(SP)=MUHL(SP)-%1:GELD(SP)=GELD(SP)+2000
2790	ELSE
2791	  PUNKTE(SP)=PUNKTE(SP)+0.8
2792	ENDIF
2800 ENDIF
2810 IF W=4 AND BURG(SP)<15
2820	SOUND %0,30,10,6:PAUSE 5:SOUND
2830	GELD(SP)=GELD(SP)-5000
2840	BURG(SP)=BURG(SP)+%1
2850	IF LAND(SP)<20000
2860	  PUT 253
2870	  POSITION %2,23:? "zu wenig bauland";
2880	  PAUSE 100:BURG(SP)=BURG(SP)-%1:GELD(SP)=GELD(SP)+5000
2890	ELSE
2891	  PUNKTE(SP)=PUNKTE(SP)+1.6
2892	ENDIF
2900 ENDIF
2910 IF W=6 AND DOM(SP)<20
2920	SOUND %0,30,10,6:PAUSE 5:SOUND
2930	GELD(SP)=GELD(SP)-9000
2940	LET DOM(SP)=DOM(SP)+%1
2950	IF LAND(SP)<30000
2960	  PUT 253
2970	  POSITION %2,23:? "zu wenig bauland";
2980	  PAUSE 100:LET DOM(SP)=DOM(SP)-%1:GELD(SP)=GELD(SP)+9000
2990	ELSE
2991	  PUNKTE(SP)=PUNKTE(SP)+2.1
2992	ENDIF
3000 ENDIF
3010 IF W<7
3020	POSITION 10,5:? "Verm]gen :				"
3030	A=GELD(SP)
3040	POSITION 22+%1*(A<10000)+%1*(A<1000)+%1*(A<100)+%1*(A<10),5:? GELD(SP)
3050	GOTO 2470
3060 ENDIF
3070 IF W=11 THEN EXEC STAND:GO# GESCHAFT
3080 IF W=14
3090	IF GELD(SP)<-10000-(TITEL(SP)*2000) THEN EXEC PFAND
3100	IF LAND(SP)+ACKER(SP)<LEUTE(SP)*10 AND LAND(SP)>%0 THEN EXEC ENTHOBEN
3110	IF ZOLL(SP)+MWST(SP)+EIN(SP)<20 THEN EXEC ENT2
3120	IF TOD(SP)<=%0 THEN EXEC TOD
3121	IF GELD(SP)>%0 THEN GELD(SP)=GELD(SP)+(GELD(SP)*%2/100)
3122	IF GELD(SP)<%0 THEN GELD(SP)=GELD(SP)+(GELD(SP)*8/100)
3123	EXEC TITEL:GRAPHICS 24:POKE 559,%0:DPOKE 709,2560
3124	OPEN #%1,4,%0,"D8:KAISER5.PIC"
3125	BGET #%1,DPEEK(88),7680
3126	CLOSE #%1:POKE 756,PEEK(106)
3127	TEXT 280,18,CHR$(SP-%1)
3128	TEXT 289,28,CHR$(SP-%1)
3129	POKE 559,34:POKE 1628,%0
3130	SP=SP+%1:EXEC SAVE:TRAP 3131:RUN "D8:KAISERB.TUR"
3131	RUN "D1:KAISERB.TUR"
3140 ENDIF
3150 IF W=9 AND PEEK(1628)=%0
3151	IF GELD(SP)<%0 THEN PUNKTE(SP)=PUNKTE(SP)-0.5
3160	CLS :POSITION 10,10:? "Bitte warten":POKE 1791,%1:EXEC SAVE:TRAP 3170:RUN "D8:KAISER5.TUR"
3170	RUN "D1:KAISER5.TUR"
3180 ENDIF
3190 W=14:GOTO 2340
3200 ------------------------------
3210 PROC UJZER
3220	ZAEHL=%0:ERGB=%0
3230	FOR U=%1 TO STEL
3240	  POSITION XPOS+U-%1,YPOS
3250	  ? ZAEHL
3260	NEXT U
3270	STE=STEL
3280	REPEAT
3290	  ST=STICK(%0)
3300	  IF ST<15
3310		 SOUND %0,40+10*(ST=13 OR ST=14),10,6
3320		 PAUSE 0.7:SOUND
3330	  ENDIF
3340	  IF ST=11 AND STE>%1 THEN STE=STE-%1
3350	  IF ST=7 AND STE<STEL THEN STE=STE+%1
3360	  IF ST=11 OR ST=7 THEN LOCATE XPOS-%1+STE,YPOS,ZAEHL:ZAEHL=ZAEHL-48
3370	  POSITION XPOS-%1+STE,YPOS+%1
3380	  ? "ESC^\":PAUSE %1
3390	  POSITION XPOS-%1+STE,YPOS+%1
3400	  ? " "
3410	  IF ST=14 THEN ZAEHL=ZAEHL+%1
3420	  IF ST=13 THEN ZAEHL=ZAEHL-%1
3430	  IF ZAEHL<%0 THEN ZAEHL=9
3440	  IF ZAEHL>9 THEN ZAEHL=%0
3450	  POSITION XPOS-%1+STE,YPOS
3460	  ? ZAEHL
3470	UNTIL STRIG(%0)=%0
3480	FOR U=%1 TO STEL
3490	  LOCATE XPOS-%1+U,YPOS,ZAEHL
3500	  ERGB=ERGB+((ZAEHL-48)*10^(STEL-U))
3510	NEXT U:SOUND %1,20,12,6:SOUND %0,70,10,6:PAUSE %3:SOUND
3520 ENDPROC
3530 ------------------------------
3540 PROC LOAD
3550	OPEN #%1,4,%0,"D8:DATEN.DAT"
3560	%GET #%1,SP
3570	FOR U=%1 TO 6
3580	  %GET #%1,A:%GET #%1,B:ACKER(U)=A:LEUTE(U)=B
3590	  %GET #%1,A:%GET #%1,B:KRIEG(U)=A:LKORN(U)=B
3600	  %GET #%1,A:%GET #%1,B:LAND(U)=A:KPREIS(U)=B
3610	  %GET #%1,A:%GET #%1,B:MUHL(U)=A:MARKT(U)=B
3620	  %GET #%1,A:%GET #%1,B:GELD(U)=A:LPREIS(U)=B
3630	  %GET #%1,A:%GET #%1,B:APREIS(U)=A:VERALAND(U)=B
3640	  %GET #%1,A:%GET #%1,B:PUNKTE(U)=A:VERBLAND(U)=B
3650	  %GET #%1,A:%GET #%1,B:JUSTIZ(U)=A:MWST(U)=B
3660	  %GET #%1,A:%GET #%1,B:EIN(U)=A:ZOLL(U)=B
3670	  %GET #%1,A:%GET #%1,B:LET DOM(U)=A:BURG(U)=B
3680	  %GET #%1,A:%GET #%1,B:INFANT(U)=A:ARTELL(U)=B
3690	  %GET #%1,A:%GET #%1,B:KAVALL(U)=A:MANOV(U)=B
3700	  %GET #%1,A:%GET #%1,B:TOD(U)=A:TITEL(U)=B
3701	  %GET #%1,A:%GET #%1,B:HH(U)=A:BD(U)=B
3710	  %GET #%1,A:VERKORN(U)=A:%GET #%1,B:ENTHOB(U)=B:NEXT U:%GET #%1,MG1
3720	%GET #%1,MG2:%GET #%1,JAHR:%GET #%1,U:HH(%0)=U
3730	CLOSE #%1
3740 ENDPROC
3750 ------------------------------
3760 PROC SAVE
3770	CLOSE #%1:OPEN #%1,8,%0,"D1:DATEN.DAT"
3780	%PUT #%1,SP
3790	FOR U=%1 TO 6
3800	  %PUT #%1,ACKER(U):%PUT #%1,LEUTE(U)
3810	  %PUT #%1,KRIEG(U):%PUT #%1,LKORN(U)
3820	  %PUT #%1,LAND(U):%PUT #%1,KPREIS(U)
3830	  %PUT #%1,MUHL(U):%PUT #%1,MARKT(U)
3840	  %PUT #%1,GELD(U):%PUT #%1,LPREIS(U)
3850	  %PUT #%1,APREIS(U):%PUT #%1,VERALAND(U)
3860	  %PUT #%1,PUNKTE(U):%PUT #%1,VERBLAND(U)
3870	  %PUT #%1,JUSTIZ(U):%PUT #%1,MWST(U)
3880	  %PUT #%1,EIN(U):%PUT #%1,ZOLL(U)
3890	  %PUT #%1,DOM(U):%PUT #%1,BURG(U)
3900	  %PUT #%1,INFANT(U):%PUT #%1,ARTELL(U)
3910	  %PUT #%1,KAVALL(U):%PUT #%1,MANOV(U)
3920	  %PUT #%1,TOD(U):%PUT #%1,TITEL(U)
3921	  %PUT #%1,HH(U):%PUT #%1,BD(U)
3930	  %PUT #%1,VERKORN(U):%PUT #%1,ENTHOB(U):NEXT U:%PUT #%1,MG1
3940	%PUT #%1,MG2:%PUT #%1,JAHR:%PUT #%1,HH(%0)
3950	CLOSE #%1
3960 ENDPROC
3970 ------------------------------
3980 PROC TITEL
3990	IF PUNKTE(SP)>15+TITEL(SP)*9+(TITEL(SP)+%1)*TITEL(SP)/%2*4.5 AND GELD(SP)>%0
4000	  TITEL$=" Herrscher Baron		Landgraf	Markgraf	Herzog	  F^rst		Kurf^rst	K]nig							  "
4010	  TITEL(SP)=TITEL(SP)+%1:IF TITEL(SP)=8 AND DOM(SP)=20 AND BURG(SP)=15
4020		 EXEC SAVE
4030		 RUN "D:KAISER6.TUR"
4040	  ELSE
4050		 IF TITEL(SP)=8:TITEL(SP)=7:GOTO 4290:ENDIF
4060	  ENDIF
4070	  GRAPHICS 24:DPOKE 709,2560
4080	  POKE 559,%0
4090	  OPEN #%1,4,%0,"D:KAISER4.PIC"
4100	  BGET #%1,DPEEK(88),7680
4110	  CLOSE #%1:X=%0:Y=%0
4120	  IF TITEL(SP)<7
4130		 FOR U=%0 TO 19-TITEL(SP)*2.75
4140			X=X+8:IF X=48 THEN Y=Y+8:X=%0
4150			TEXT 230+X,Y," "
4160		 NEXT U
4170	  ENDIF
4180	  DPOKE 1560,DL+%3
4190	  POKE DL,%1:POKE 756,PEEK(106)
4200	  DPOKE DL+%1,1536
4210	  LET TEXT$=TITEL$(TITEL(SP)*11+1,TITEL(SP)*11+10)
4220	  Y=INSTR(TEXT$," "):GE=VAL(NAMEN$(SP+%1,SP+%1))-4
4230	  IF GE>=%0:LET TEXT$(Y)="in":Y=Y+%2
4231		 IF TITEL(SP)=%2 OR TITEL(SP)=%3 THEN LET TEXT$(7,7)="\"
4232	  ENDIF
4240	  U=(10-Y)*4
4250	  TEXT 11+U,56,TEXT$(1,Y-%1)
4260	  POKE 559,34
4270	  REPEAT :UNTIL STRIG(%0)=%0
4280	ENDIF
4290 ENDPROC
4300 ------------------------------
4310 PROC STAND
4320	CLS :POKE 710,132:POKE 712,114
4330	POSITION 12,%0:? " Spielstand "
4340	POSITION %0,%2:? "Punkte  Land  Bewohner Geheimd. Verm]gen":ANZAHL=VAL(NAMEN$(%1,%1))
4350	FOR U=%1 TO ANZAHL
4360	  POSITION %1,%1+U*%3:? "Seine Majest\t  ";NAMEN$(U*20,U*20+19)
4370	  POSITION %1,%2+U*%3:? PUNKTE(U)
4380	  POSITION 8,%2+U*%3:? LAND(U)+ACKER(U)
4390	  POSITION 16,%2+U*%3:? LEUTE(U)
4400	  POSITION 25,%2+U*%3:? ARTELL(U)
4410	  POSITION 32,%2+U*%3:? INT(GELD(U))
4420	NEXT U
4430	REPEAT :UNTIL STRIG(%0)=%0
4440 ENDPROC
4450 ------------------------------
4460 PROC PFAND
4470	CLS
4480	POKE 710,84
4490	POSITION 12,5:? " Pf\ndung "
4500	POSITION %2,10:? "Ihre Gl\ubiger haben Sie wegen Ihrer"
4510	POSITION %2,12:? "schlechten Finanzpolitik gepf\ndet!"
4520	GELD(SP)=(MUHL(SP)*200)+(MARKT(SP)*100)+(BURG(SP)*500)+(DOM(SP)*900)
4530	MUHL(SP)=%0:MARKT(SP)=%0:ARTELL(SP)=%0:ACKER(SP)=ACKER(SP)/100*(RAND(50)+50):LAND(SP)=LAND(SP)/100*(RAND(50)+50)
4540	KAVALL(SP)=%0:INFANT(SP)=%0:LET DOM(SP)=%0:BURG(SP)=%0:TOD(SP)=TOD(SP)-%1:LEUTE(SP)=200+RAND(300)
4550	PUNKTE(SP)=INT(PUNKTE(SP)/%2)
4560	PAUSE 50
4570	REPEAT :UNTIL STRIG(%0)=%0
4580 ENDPROC
4590 ------------------------------
4600 PROC ENTHOBEN
4610	IF LAND(SP)=%0 THEN GOTO 4690
4620	POKE 710,48:POKE 712,226
4630	CLS
4640	POSITION 8,5:? " Schlechte Landpolitik "
4650	POSITION %1,10:? "Sie wurden inhabitans wegen schlechter"
4660	POSITION %1,12:? "Landpolitik f^r ein Jahr Ihres			 ^]Amtes enthoben"
4670	ENTHOB(SP)=%1:PUNKTE(SP)=PUNKTE(SP)-TITEL(SP)*10
4680	REPEAT :UNTIL STRIG(%0)=%0
4690 ENDPROC
4700 ------------------------------
4710 PROC ENT2
4720	POKE 710,67:POKE 712,245
4730	CLS
4740	POSITION 8,5:? " Schlechte Steuerpolitik "
4750	POSITION %1,10:? "Sie wurden inhabitans wegen schlechter"
4760	POSITION %1,12:? "Steuerpolitik f^r ein Jahr Ihres		  ^]Amtes enthoben."
4770	ENTHOB(SP)=%1:PUNKTE(SP)=PUNKTE(SP)-TITEL(SP)*10
4780	REPEAT :UNTIL STRIG(%0)=%0
4790 ENDPROC
4800 ------------------------------
4810 PROC TOD
4820	POKE 710,8:POKE 712,%2:POKE 709,14:CLS
4830	POSITION %2,%3:? "Eine Schlechte Nachricht."
4840	POSITION %2,5:? "Sie sind Gestorben!"
4850	? :?
4860	? "							 "
4870	? "							 "
4880	? "									  "
4890	? "									  "
4900	? "							 "
4910	? "							 "
4920	? "							 "
4930	? "							 "
4940	? "							 "
4950	POSITION %2,18:? "Doch gl^cklicherweise haben Sie recht-"
4960	POSITION %2,19:? "zeitig einen Erben hinterlassen.":POKE 752,%0:TRAP 4960
4970	POSITION %2,21:INPUT "Wie hei't Ihr Erbe?^]..........^\^^^^^^^^^^^^^^^^^^^^",TEXT$
4980	IF LEN(TEXT$)>10 THEN 4970
4990	POKE 752,%1:?
5000	NAMEN$(SP*20+%1,SP*20+10)="			 "
5010	NAMEN$(SP*20+%1,SP*20+10)=TEXT$
5020	CLOSE #%1:OPEN #%1,8,%0,"D:NAMEN.DAT"
5030	BPUT #%1,ADR(NAMEN$),160
5040	CLOSE #%1
5050	CLOSE #%1:OPEN #%1,8,%0,"D8:NAMEN.DAT"
5060	BPUT #%1,ADR(NAMEN$),160
5070	BPUT #%1,$06F0,6
5080	CLOSE #%1
5090	TOD(SP)=RAND(10)+35:TITEL(SP)=TITEL(SP)-%3:IF TITEL(SP)<%0 THEN TITEL(SP)=%0
5100	PUNKTE(SP)=INT(TITEL(SP)*9+(TITEL(SP)+%1)/%2*4.5)+RAND(30)
5110	REPEAT :UNTIL STRIG(%0)=%0
5120 ENDPROC
5130 ------------------------------
5140 PROC FBALK:RICHTUNG=%1:X=200:C=1:DICKE=8
5150	FOR I=%1 TO ZAHL
5160	  PLOT X,Y
5170	  DRAWTO X,Y+DICKE
5180	  X=X+RICHTUNG
5190	  IF X>=XENDE OR X=200
5200		 RICHTUNG=SGN(RICHTUNG)*-%1
5210		 DICKE=DICKE-%2
5220		 Y=Y+%1
5230		 C=C+%1
5240		 COLOR C
5250	  ENDIF
5260	  IF DICKE=-%2 THEN EXIT
5270	NEXT I:COLOR %1
5280 ENDPROC
5290 ------------------------------

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:54

Validate