home *** CD-ROM | disk | FTP | other *** search
/ Game On 1990 April / Game_On_90-04_1990_-_de_Side_B.d64 / main (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  13KB  |  484 lines

  1. 0 if a=0 then a=1:load"flagfight1",8,1
  2. 1 if a=1 then a=2:gosub51000
  3. 2 if a=2 then a=3:load"flagfight2",8,1
  4. 3 if a=3 then a=4:load"flagfight3",8,1
  5. 4 if a=4 then a=5:load"scene"+chr$(c+64),8,1
  6. 5 if a=5 then a=6:load"flagfight4",8,1
  7. 6 if a=6 then a=7:load"flagfight5",8,1
  8. 7 if a=7 then a=8:load"flagfight6",8,1
  9. 9 poke53280,0:poke53281,0:gosub5000
  10. 10 poke53272,18
  11. 20 print"[147][152]":poke650,128
  12. 30 sys49664  : rem *** bildschirm kopie
  13. 45 gosub50000
  14. 47 :sys ad
  15. 50 f2=1:x=0:sp=0:me=128:ifx1<>1thengosub7000
  16. 55 gosub1000
  17. 60 f2=7:x=0:sp=1:me=192:gosub7000:gosub1000
  18. 100 f2=1:x=0:sp=0:me=128:gosub7500:gosub10000
  19. 110 f2=7:x=0:sp=1:me=192:gosub7500:gosub10000
  20. 120 x1=1:sp=0:gosub7000:fori=1to30:mp(i,0,1)=mp(i,0,0):mp(i,1,1)=mp(i,1,0):nexti
  21. 130 fori=1to30:an(i,0)=0:an(i,1)=0:nexti
  22. 140 fori=1to30:ef(i,0)=ef(i,0)+5:ef(i,1)=ef(i,1)+5
  23. 150 if ef(i,0)>99then ef(i,0)=99
  24. 160 if ef(i,1)>99then ef(i,1)=99
  25. 165 if ga(1,0) =0 then poke53272,21:gosub60000
  26. 166 if ga(1,1) =0 then poke53272,21:gosub60100
  27. 170 nexti
  28. 500 goto50
  29. 990 end
  30. 991 :***   move phase     ****
  31. 992 :
  32. 1000 f1=3:gosub3000:if x=1then return
  33. 1010 pe=peek(53244)*40+peek(53245)+1024
  34. 1020 bu=peek(pe):ifbu>me and bu<me+30 then 1030
  35. 1025 goto1000
  36. 1030 if x = 0 then gosub 4000
  37. 1040 gosub 2000
  38. 1045 poke214,24:poke211,0:sys58732
  39. 1047 print"                                       ";
  40. 1050 if x=0 then 1000
  41. 1055 return
  42. 2000 :
  43. 2010 :rem ***   move subroutine    ***
  44. 2020 if x=1 then return
  45. 2030 getke$:ifke$=""then2030
  46. 2040 zw=pe
  47. 2060 ifke$="m"then poke53246,1:gosub2180:rem runter
  48. 2070 ifke$="i"then poke53246,2:gosub2190:rem hoch
  49. 2080 ifke$="j"then poke53246,4:gosub2200:rem links
  50. 2090 ifke$="k"then poke53246,3:gosub2210:rem rechts
  51. 2100 ifke$="u"then poke53246,5:gosub2220:rem lhoch
  52. 2110 ifke$="o"then poke53246,6:gosub2230:rem rhoch
  53. 2120 ifke$="n"then poke53246,8:gosub2240:rem lrunt
  54. 2130 ifke$=","then poke53246,7:gosub2250:rem rrunt
  55. 2135 ifke$="v"then ef(ei,sp)=ef(ei,sp)-10:gosub 2255
  56. 2137 ifke$="e"then gosub6010:rem info
  57. 2140 ifke$=chr$(13) then poke53248+39,3:return
  58. 2150 :
  59. 2160 goto2030
  60. 2170 :
  61. 2180 gosub2270:pe=pe+40:gosub2290:pokepe,bu:gosub2420:return
  62. 2190 gosub2270:pe=pe-40:gosub2290:pokepe,bu:gosub2420:return
  63. 2200 gosub2270:pe=pe-1:gosub2290:pokepe,bu:gosub2420:return
  64. 2210 gosub2270:pe=pe+1:gosub2290:pokepe,bu:gosub2420:return
  65. 2220 gosub2270:pe=pe-41:gosub2290:pokepe,bu:gosub2420:return
  66. 2230 gosub2270:pe=pe-39:gosub2290:pokepe,bu:gosub2420:return
  67. 2240 gosub2270:pe=pe+39:gosub2290:pokepe,bu:gosub2420:return
  68. 2250 gosub2270:pe=pe+41:gosub2290:pokepe,bu:gosub2420:return
  69. 2251 :
  70. 2255 if ve(ei,sp) = 1 then return
  71. 2256 mp(ei,sp,1)=mp(ei,sp,1)-3
  72. 2257 if mp(ei,sp,1)<0 then mp(ei,sp,1)=mp(ei,sp,1)+3:return
  73. 2258 ve(ei,sp)=1:gosub4000:return
  74. 2260 :
  75. 2270 ba=peek(pe+29696):bf=peek(pe+30720):pokepe,ba:pokepe+54272,bf:return
  76. 2280 :
  77. 2290 if pe>1983 or pe<1024 or peek(pe)>127orpeek(pe)=0 then pe=zw:goto2400
  78. 2300 :
  79. 2310 :rem *** hier movepoints abfrage
  80. 2315 :
  81. 2320 ab=1
  82. 2330 if peek(pe)=65 then ab=2
  83. 2340 if peek(pe)=66 then ab=3
  84. 2350 if peek(pe)>66 and peek(pe)<73then ab=4
  85. 2360 if peek(pe)=74 then ab=3
  86. 2365 if peek(pe)=73 then ab=5
  87. 2370 if peek(pe)>74andpeek(pe)<84 then ab=6
  88. 2380 mp(ei,sp,1)=mp(ei,sp,1)-ab:ef(ei,sp)=ef(ei,sp)-1
  89. 2390 if mp(ei,sp,1)<0thenmp(ei,sp,1)=mp(ei,sp,1)+ab:pe=zw:ef(ei,sp)=ef(ei,sp)+1
  90. 2395 ve(ei,sp)=0:gosub 4000
  91. 2400 return
  92. 2410 :
  93. 2420 pokepe+54272,f2:if pe<>zw thensysad
  94. 2430 return
  95. 3000 :
  96. 3010 :rem *** sprmove subroutine    ***
  97. 3015 :
  98. 3020 poke53248+21,1:poke53248+39,f1
  99. 3030 getke$:ifke$=""then3030
  100. 3040 :
  101. 3060 ifke$="m"then poke53246,1:sysad
  102. 3070 ifke$="i"then poke53246,2:sysad
  103. 3080 ifke$="k"then poke53246,3:sysad
  104. 3090 ifke$="j"then poke53246,4:sysad
  105. 3100 ifke$="u"then poke53246,5:sysad
  106. 3110 ifke$="o"then poke53246,6:sysad
  107. 3120 ifke$=","then poke53246,7:sysad
  108. 3130 ifke$="n"then poke53246,8:sysad
  109. 3135 ifke$="h"then poke53246,9:sysad
  110. 3140 ifke$=chr$(13) thenpoke53248+39,6:return
  111. 3145 ifke$="x"then x=1:return
  112. 3150 :
  113. 3160 goto3030
  114. 3170 :
  115. 3990 :
  116. 3991 : ***   einheit ermitteln  ***
  117. 3992 :
  118. 4000 poke214,24:poke211,0:sys58732:ei=bu-me
  119. 4010 print" einheit nr. :";ei;"bewegungspunkte :";mp(ei,sp,1);
  120. 4020 if mp(ei,sp,1) < 10 then print"[157] ";
  121. 4030 return
  122. 5000 dim mp(30,1,1),an(30,1)
  123. 5010 dimga(30,1),af(30,1),vf(30,1),st(30,1),ve(30,1),ra(30,1),ef(30,1)
  124. 5015 fori=0to30:ga(i,0)=0:ga(i,1)=0:nexti
  125. 5020 gosub20000
  126. 5030 ad=49152:poke53246,9:sysad:x=0:zw=0:
  127. 5040 fori=1to30:ef(i,0)=99:ef(i,1)=99:nexti
  128. 5050 return
  129. 6000 :
  130. 6001 rem***   informationenaufruf  ***
  131. 6002 :
  132. 6010 poke53248+21,0:sys50176 :rem bildschirm sichern
  133. 6015 o=13:x$="":gosub6500:if ei>9 then o=12
  134. 6020 print"[152]";
  135. 6030 print"[176]#############################[174]"
  136. 6035 fori=0to7:print"                            ":nexti
  137. 6040 print"";x$;"%einheit nr.: ";ei;spc(o);"%"
  138. 6050 printx$;"%gattung    : ";ga$;"%"
  139. 6055 o=13:if mp(ei,sp,1) > 9 then o=12
  140. 6060 printx$;"%bewegungsp.: ";mp(ei,sp,1);spc(o);"%"
  141. 6065 o=13:if vf(ei,sp) > 9 then o=12
  142. 6070 printx$;"%verteid.fa.: ";vf(ei,sp);spc(o);"%"
  143. 6075 o=13:if af(ei,sp) > 9 then o=12
  144. 6080 printx$;"%angriffsfa.: ";af(ei,sp);spc(o);"%"
  145. 6085 o=13:if ra(ei,sp) > 9 then o=12
  146. 6090 printx$;"%aktionsrad.: ";ra(ei,sp);spc(o);"%"
  147. 6095 o=13:if st(ei,sp) > 9 then o=12
  148. 6096 if st(ei,sp) > 99then o=11
  149. 6100 printx$;"%staerke    : ";st(ei,sp);spc(o);"%"
  150. 6105 o=13:if ef(ei,sp) > 9 then o=12
  151. 6106 printx$;"%moral      : ";ef(ei,sp);spc(o);"%"
  152. 6120 if ve(ei,sp)=1then printx$;"% -verschanzt                 %"
  153. 6130 printx$;"[173]#############################[189]"
  154. 6140 getke$:ifke$=""then6140
  155. 6150 poke53248+21,1:sys49920:return
  156. 6500 if ga(ei,sp)=1 then ga$="bogensch&tzen"
  157. 6510 if ga(ei,sp)=2 then ga$="armbrustsch&tzen"
  158. 6520 if ga(ei,sp)=3 then ga$="kreuzritter"
  159. 6530 if ga(ei,sp)=4 then ga$="ritter"
  160. 6540 if ga(ei,sp)=5 then ga$="steinschleuder"
  161. 6550 if ga(ei,sp)=6 then ga$="bauern"
  162. 6560 if ga(ei,sp)=7 then ga$="s'ldner"
  163. 6570 if ga(ei,sp)=8 then ga$="morgensterne"
  164. 6580 if ga(ei,sp)=9 then ga$="kriegselefanten"
  165. 6590 if ga(ei,sp)=10 then ga$="fahnentr^ger"
  166. 6600 return
  167. 7000 sys50176:x$="":print"[152]";x$
  168. 7010 printx$;"[176]####################[174]
  169. 7020 [153]x$;"%   bewegungsphase   %
  170. 7030 printx$;"%     spieler";sp+1;"     %
  171. 7040 [153]x$;"/####################exp
  172. 7050 fori=0to1425:nexti
  173. 7060 sys49920:return
  174. 7500 sys50176:x$="":print"[152]";x$
  175. 7510 printx$;"[176]####################[174]
  176. 7520 [153]x$;"%   angriffsphase    %
  177. 7530 printx$;"%     spieler";sp+1;"     %
  178. 7540 [153]x$;"/####################exp
  179. 7550 fori=0to1425:nexti
  180. 7560 sys49920:return
  181. 9010 :
  182. 9020 :****      kampf radiusabfrage
  183. 9030 :
  184. 9040 :
  185. 10000 f1=3:gosub3000:poke53248+39,6:if x=1 then return
  186. 10002 rd=0
  187. 10010 pe=peek(53244)*40+peek(53245)+1024
  188. 10020 bu=peek(pe):ifbu>me and bu<me+30then 10030
  189. 10025 goto 10000
  190. 10030 gosub 4000
  191. 10035 ke$="":gosub10040
  192. 10037 goto10000
  193. 10040 get ke$:ifke$=""then 10040
  194. 10060 if ke$="a" then 10100:rem angriff
  195. 10070 if ke$="e" then gosub 6010:rem info
  196. 10075 if ke$=chr$(13)then 10090
  197. 10080 goto 10040
  198. 10090 poke214,24:poke211,0:sys58732
  199. 10091 print"                                       ";:return
  200. 10100 if an(ei,sp)=1or ef(ei,sp)<40 then return
  201. 10200 f1=8:gosub3000
  202. 10210 p2=peek(53244)*40+peek(53245)+1024
  203. 10220 b2=peek(p2):ifb2<127 then return
  204. 10230 if pe > p2 then gosub 10500
  205. 10240 if pe < p2 then gosub 10600
  206. 10250 if rd=1 then an(ei,sp)=1:gosub30000
  207. 10260 if rd=0 then rd=0
  208. 10270 gosub10090:return
  209. 10500 fori=1tora(ei,sp)
  210. 10510 p3=pe-(40*i)+ra(ei,sp)+1:p4=p3-(2*ra(ei,sp))-2
  211. 10520 if p3 > p2 and p4 < p2 then rd=1:h=i:i=ra(ei,sp)
  212. 10530 nexti
  213. 10540 gosub 10560
  214. 10550 return
  215. 10560 if pe+ra(ei,sp)+1> p2 and pe-ra(ei,sp)-1 < p2 then rd=1
  216. 10570 return
  217. 10600 fori=1tora(ei,sp)
  218. 10610 p3=pe+(40*i)-ra(ei,sp)-1:p4=p3+(2*ra(ei,sp))+2
  219. 10620 if p3 < p2 and p4 > p2 then rd=1:i=ra(ei,sp)
  220. 10630 nexti
  221. 10640 gosub 10560
  222. 10650 return
  223. 20000 ei=1:sp=0:ge=150:ar=3080
  224. 20005 if ei = 30 then gosub20660:goto20060
  225. 20010 gosub 20090
  226. 20020 gosub 20160
  227. 20030 sys28672,9,1,10
  228. 20040 a=peek(53247)+1
  229. 20050 on a gosub 20300,20340,20380,20420,20460,20500,20540,20580,20620,20660
  230. 20060 if sp=0thengoto20005
  231. 20070 if sp=1thengoto20005
  232. 20080 g=10:r=1:m=5:ag=1:v=10:sp=0:ei=1:s=25:gosub20980
  233. 20085 g=10:r=1:m=5:ag=1:v=10:sp=1:ei=1:s=25:gosub20980
  234. 20090 print"[147][155]"
  235. 20100 print"[176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]
  236. 20110 [153]"peek spieler : ";sp[170]1;"    peek"
  237. 20120 [153]"/lenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenexp
  238. 20130 print"mobilisierungspunkte :";ge
  239. 20140 print"bitte waehlen sie einheit nr.";ei+1;"aus."
  240. 20150 return
  241. 20160 print"[152]"
  242. 20170 print"[176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]
  243. 20180 [153]"peek bogenschuetzen    peek
  244. 20190 print"[194] armbrustschuetzen [194]
  245. 20200 [153]"peek kreuzritter       peek
  246. 20210 print"[194] ritter            [194]
  247. 20220 [153]"peek steinschleuder    peek
  248. 20230 print"[194] bauern            [194]
  249. 20240 [153]"peek soeldner          peek
  250. 20250 print"[194] morgensterne      [194]
  251. 20260 [153]"peek kriegselefanten   peek
  252. 20270 print"[194] ende              [194]
  253. 20280 [153]"/lenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenlenexp
  254. 20295 print"[159](c) by andreas schwedhelm, michael klamt":return
  255. 20300 r=3:s=60:g=1:m=7:ag=1:v=1:pr=6
  256. 20310 gosub20670
  257. 20320 on a gosub 20950,20760
  258. 20330 return
  259. 20340 r=2:s=35:g=2:m=8:ag=1:v=1:pr=7
  260. 20350 gosub20670
  261. 20360 on a gosub 20950,20760
  262. 20370 return
  263. 20380 r=1:s=50:g=3:m=12:ag=5:v=6:pr=12
  264. 20390 gosub20670
  265. 20400 on a gosub 20950,20760
  266. 20410 return
  267. 20420 r=1:s=75:g=4:m=14:ag=3:v=4:pr=10
  268. 20430 gosub20670
  269. 20440 on a gosub 20950,20760
  270. 20450 return
  271. 20460 r=5:s=10:g=5:m=6:ag=0:v=1:pr=2
  272. 20470 gosub20670
  273. 20480 on a gosub 20950,20760
  274. 20490 return
  275. 20500 r=1:s=225:g=6:m=7:ag=1:v=1:pr=7
  276. 20510 gosub20670
  277. 20520 on a gosub 20950,20760
  278. 20530 return
  279. 20540 r=1:s=100:g=7:m=8:ag=2:v=2:pr=8
  280. 20550 gosub20670
  281. 20560 on a gosub 20950,20760
  282. 20570 return
  283. 20580 r=1:s=65:g=8:m=8:ag=3:v=1:pr=4
  284. 20590 gosub20670
  285. 20600 on a gosub 20950,20760
  286. 20610 return
  287. 20620 r=1:s=5:g=9:m=5:ag=15:v=20:pr=8
  288. 20630 gosub20670
  289. 20640 on a gosub 20950,20760
  290. 20650 return
  291. 20660 ar=3592:sp=sp+1:ge=150:ei=1:return
  292. 20670 print"[152]"
  293. 20680 print"[176][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
  294. 20690 print"[194] kaufen      [194]"
  295. 20700 print"[194] information [194]"
  296. 20710 print"[194] zurueck     [194]"
  297. 20720 print"[173][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
  298. 20730 sys28672,2,14,13
  299. 20740 a=peek(53247)+1
  300. 20750 return
  301. 20760 print"[152]"
  302. 20770 print"[176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
  303. 20780 print"[194] bewegungsp.:    [194]"
  304. 20790 print"[194] staerke    :    [194]"
  305. 20800 print"[194] angriffsfa.:    [194]"
  306. 20810 print"[194] verteid.fa.:    [194]"
  307. 20820 print"[194] radius     :    [194]"
  308. 20830 print"[194] preis      :    [194]"
  309. 20840 print"[173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
  310. 20850 print""
  311. 20860 x$=""
  312. 20870 printx$;m
  313. 20880 printx$;s
  314. 20890 printx$;ag
  315. 20900 printx$;v
  316. 20910 printx$;r
  317. 20920 printx$;pr
  318. 20930 getke$:ifke$=""then20930
  319. 20940 return
  320. 20950 ge=ge-pr
  321. 20960 if ge<1 then ge=ge+pr:return
  322. 20970 fori=0to7:pokeei*8+ar+i,peek(3320+g*8+i):nexti:ei=ei+1
  323. 20980 mp(ei,sp,0)=m:mp(ei,sp,1)=m
  324. 20990 vf(ei,sp)=v:af(ei,sp)=ag
  325. 21000 st(ei,sp)=s:ra(ei,sp)=r
  326. 21010 ga(ei,sp)=g
  327. 21020 return
  328. 30000 if sp=0 then i=1:mu=192
  329. 30010 if sp=1 then i=0:mu=128
  330. 30020 e1=peek(p2)-mu:hi=29696
  331. 30030 if ef(e1,i)<25then pokep2,peek(p2+29696):poke54272+p2,peek(p2+30720)
  332. 30035 of=1
  333. 30040 if peek(pe+hi)=65 then of=.9
  334. 30050 if peek(pe+hi)=66 then of=.8
  335. 30060 if peek(pe+hi)>66 and peek(pe+hi)<73then of=.5
  336. 30070 if peek(pe+hi)=74 then of=1.2
  337. 30080 if peek(pe+hi)=73 then of=1.5
  338. 30090 if peek(pe+hi)>74andpeek(pe+hi)<84 then of=.25:rem *******
  339. 30095 de=1
  340. 30100 if peek(p2+hi)=65 then de=1.1
  341. 30110 if peek(p2+hi)=66 then de=1.3
  342. 30120 if peek(p2+hi)>66 and peek(p2+hi)<73then de=0.5
  343. 30130 if peek(p2+hi)=74 then de=1.2
  344. 30140 if peek(p2+hi)=73 then de=1.5
  345. 30150 if peek(p2+hi)>74andpeek(p2+hi)<84 then de=0.25
  346. 30151 if ve(e1,i)=1then de=de+0.2
  347. 30152 if ga(ei,sp)=1then dd = 3:goto 40000
  348. 30153 if ga(ei,sp)=2then dd = 5:goto 40000
  349. 30154 if ga(ei,sp)=5then dd = 20 :goto 40000
  350. 30155 ag=of*st(ei,sp)*af(ei,sp)*(ef(ei,sp)/100)
  351. 30160 df=af(e1,i)*st(e1,i)*de*(ef(e1,i)/100)
  352. 30170 od=st(ei,sp)/st(e1,i)
  353. 30180 if od < .14 then b=2:r=3
  354. 30190 if od > .13 and od < .26 then b=2:r=2.5
  355. 30200 if od > .25 and od < 5 then b=2:r=2
  356. 30210 if od > 4 and od < 7 then b=2.5:r=2
  357. 30220 if od > 6 then b=3:r=2
  358. 30222 rm = 1
  359. 30224 if ef(e1,i)<75 then rm = 100/ef(e1,i)/1.1
  360. 30226 bm=1
  361. 30228 if ef(e1,sp)<85 then bm= 100/ef(ei,sp)
  362. 30230 v1=df/vf(ei,sp)/b*bm/1.5:v1=int(v1)
  363. 30231 if de < 1 then de=1
  364. 30232 v2=ag/vf(e1,i)/r*rm/1.5/de:v2=int(v2)
  365. 30233 d=st(ei,sp):e=st(e1,i)
  366. 30235 st(ei,sp)=st(ei,sp)-v1:st(e1,i)=st(e1,i)-v2
  367. 30240 if st(e1,i)<1 then gosub 30850
  368. 30245 if st(ei,sp)<1 then gosub 30800
  369. 30250 x1=v1/st(ei,sp):x2=v2/st(e1,i):x1=x1*10:x1=int(x1):x2=x2*10:x2=int(x2)
  370. 30252 ef(ei,sp)=ef(ei,sp)-5-x1
  371. 30255 ef(e1,i)=ef(e1,i)-2-x2
  372. 30260 if ef(e1,i)<21 then gosub 30850
  373. 30270 if v1 > d then v1 = d
  374. 30275 if v2 > e then v2=e
  375. 30295 gosub30300
  376. 30297 return
  377. 30300 poke53248+21,0:sys50176 :rem bildschirm sichern
  378. 30310 o=13:x$="":if ei>9 then o=12
  379. 30320 print"[152]";
  380. 30330 print"[176]#############################[174]"
  381. 30340 forz=0to3:print"                           ":nextz
  382. 30350 print"";x$;"% angreifer                   %"
  383. 30370 o=13:if st(ei,sp) > 9 then o=12
  384. 30375 if st(ei,sp) >99 then o=11
  385. 30380 printx$;"%st^rke     : ";st(ei,sp);spc(o);"%"
  386. 30390 o=13
  387. 30391 if v1 > 9 then o=12
  388. 30392 if v1 > 99then o=11
  389. 30393 printx$;"%verluste   : ";v1;spc(o);"%"
  390. 30394 o=13:if ef(ei,sp) > 9 then o=12
  391. 30400 printx$;"%morale     : ";ef(ei,sp);spc(o);"%"
  392. 30410 printx$;"[173]#############################[189]"
  393. 30420 getke$:ifke$=""then30420
  394. 30510 o=13:if i>9 then o=12
  395. 30520 print"[152]";
  396. 30530 print"[176]#############################[174]"
  397. 30540 forz=0to3:print"                            ":nextz
  398. 30550 print"";x$;"% verteidiger                 %"
  399. 30570 o=13:if st(e1,i) > 9 then o=12
  400. 30575 if st(e1,i) > 99then o=11
  401. 30580 printx$;"%st^rke     : ";st(e1,i);spc(o);"%"
  402. 30590 o=13
  403. 30591 if v2 > 9 then o=12
  404. 30592 if v2 > 99then o=11
  405. 30593 printx$;"%verluste   : ";v2;spc(o);"%"
  406. 30594 o=13:if ef(e1,i) > 9 then o=12
  407. 30600 printx$;"%morale     : ";ef(e1,i);spc(o);"%"
  408. 30620 getke$:ifke$=""then30620
  409. 30630 poke53248+21,1:sys49920:return
  410. 30800 pokepe,peek(pe+29696):poke54272+pe,peek(pe+30720):ef(ei,sp)=0
  411. 30810 ga(ei,sp)=0:return
  412. 30850 pokep2,peek(p2+29696):poke54272+p2,peek(p2+30720):ef(e1,i)=0
  413. 30860 ga(e1,i)=0:return
  414. 40000 if de <= 0 then de = 1
  415. 40005 d=st(e1,i)
  416. 40010 fe=st(ei,sp)*(ef(ei,sp)/100)/de
  417. 40015 if h <= 0 then h=1
  418. 40020 fe=(3/h)*fe
  419. 40030 au=mp(e1,i,1)/8
  420. 40040 if au < 1 then au =1
  421. 40050 su = vf(e1,i)/dd
  422. 40060 if su > 10 then su =10
  423. 40070 if au < .2 then su =.3
  424. 40080 if st(e1,i)<30 then dn = .9
  425. 40090 if st(e1,i)>29 and st(e1,i)<60 then dn =1
  426. 40100 if st(e1,i)>59 then dn=1.1
  427. 40110 v1=0:v2=fe/au/su*dn/8:v2=int (v2)
  428. 40115 st(e1,i)=st(e1,i)-v2
  429. 40120 ef(ei,sp)=ef(ei,sp)-5:ef(e1,i)=ef(e1,i)-5
  430. 40130 if v2 > d then v2=d
  431. 40140 if st(e1,i)< 1 then gosub 30850
  432. 40150 if ef(e1,i)< 21 then gosub 30850
  433. 40160 gosub 30300
  434. 40170 return
  435. 50000 fori=1to15
  436. 50010 if ga(i,0)=0theni=16:goto50030
  437. 50020 poke1225+i*40,i+128:poke55296+201+i*40,1
  438. 50030 nexti
  439. 50040 fori=1to15
  440. 50050 if ga(i+15,0)=0theni=16:goto50070
  441. 50060 poke1226+i*40,i+128+15:poke55296+202+i*40,1
  442. 50070 nexti
  443. 50100 fori=1to15
  444. 50110 if ga(i,1)=0theni=16:goto50130
  445. 50120 poke1262+i*40,i+192:poke55296+i*40+238,7
  446. 50130 nexti
  447. 50140 fori=1to15
  448. 50150 if ga(i+15,1)=0theni=16:goto50170
  449. 50160 poke1263+i*40,i+192+15:poke55296+i*40+239,7
  450. 50170 nexti
  451. 50180 return
  452. 51000 poke53280,0:poke53281,0:print"[147][151]"
  453. 51010 print"[176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]
  454. 51020 [153]"peek   scenario ?    peek
  455. 51030 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]
  456. 51040 [153]"peek   scenario 1    peek
  457. 51050 print"[194]   scenario 2    [194]
  458. 51052 [153]"peek   scenario 3    peek
  459. 51053 print"[194]   scenario 4    [194]
  460. 51054 [153]"peek   scenario 5    peek
  461. 51060 print"[173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]
  462. 51070 [153]"print#cursor up/down
  463. 51080 print"und return fuer
  464. 51090 [153]"auswahl.
  465. 51100 print"[155] written by andreas schwedhelm"
  466. 51110 print"                 and michael klamt '89"
  467. 51150 sys28672,4,1,8:c=peek(53247)+1
  468. 51160 return
  469. 60000 sp=2:goto60200
  470. 60100 sp=1:goto60200
  471. 60200 print"[152][147]
  472. 60220 [153]"
  473. 60221 print"             sieg !!!
  474. 60222 [153]"           -----------
  475. 60223 print"
  476. 60224 [153]"   spieler";sp;"hat nach einer langen
  477. 60225 print"   schlacht gewonnen.
  478. 60226 [153]"           gratulation ...
  479. 60300 geta$:ifa$=""then 60300
  480. 60310 print"wollen sie nocheinmal spielen (j/n)?"
  481. 60320 geta$:ifa$=""then60320
  482. 60330 if a$="j"then run
  483. 60340 sys 64378
  484.