-+-+-+-+-+-+-+-+ START OF PART 10 -+-+-+-+-+-+-+-+ X hit=((3-d)+s(t(i)::ship)::slaser)/2+((3-d)+s(t(i)::ship)::slaser)*rnd/2 X damage=0\hit=hit-pr::dodge X if hit>2.4 then X damage=int(10*s(t(i)::ship)::slaser*rnd+s(t(i)::ship)::slaser*3) X end if X3369 for ii=1 to noship X if t(ii)::spos=pr::rpos and t(ii)::ship=22 then X damage=damage*(.66) X end if X next ii X if damage=0 then X a$="The laser beam skims past your ship, missing by a narrow margin" X else X if damage<10 then X a$="You feel your ship shudder as it takes relatively minor damage V." X end if X end if X if damage<20 and damage>9 then X a$="MAJOR LASER BURN! Your ship shakes wildly prior to stabilizing." X end if X if damage>19 then X a$="DIRECT HIT! You black out momentarily as your ship spins madly." X end if X call display(23,a$) X if damage>25 and rnd>.9 then X gosub 4400`20 X pr::energy = pr::energy - int(0.7 * damange) X else X pr::energy=pr::energy - damage X end if X gosub 1700 ! display status X gosub damage_report ! damage report X if pr::energy<0 then goto 8000 end if X return X`20 X3380 ! -------------------- Police Boarding -------------------- X t(i)::sintent=0\t(i)::spos=pr::rpos X a$="The Viper docks and two galpol toughs board your ship." X call display(23,a$) X if pr::cargo(2)<>0 then`20 X a$="They confiscate all your slaves and lecture you on the evils of " X call display(23,a$) X a$="selling sentient beings." X call display(23,a$) X end if X if pr::cargo(7)<>0 then X`09 a$="An electronic 'sniffer' tracks down your cargo of narcotics " & X`09`09+"which the two" X call display(23,a$) X`09 a$= "galpol agents proceed to destroy." X call display(23,a$) X end if X if pr::cargo(2)=0 and pr::cargo(7)=0 then X`09a$="Well, we haven't caught you red handed but we know of your " & X`09`09+"illicit dealing." X call display(23,a$) X`09a$="You'll be fined accordingly." X call display(23,a$) X end if X a=0 X if pr::debt>0 and pr::due0) then X a$="You are fined - "+str$(a)+" credits." X else X a$="No fine this time. Next time we won't be so nice to you, SCUM." X end if X call display(23,a$) X pr::totcargo=pr::totcargo-pr::cargo(2)-pr::cargo(7) X pr::cargo(2)=0\pr::cargo(7)=0 X pr::credits=pr::credits-a X if pr::legal=2 then pr::legal=1 end if X gosub 1700 X return X`20 X3390 ! --------------------- police warning ----------------------- X m$="Surrender your cargo immediately and consider yourself under arrest V." X m$=m$+"@Please accept or refuse boarding. Reply IMMEDIATELY or risk " V & X`09+"attack" X sender$=t(i)::username\u$=pr::username\save=i\gosub send_message\i=save X if t(i)::sintent=12 then X if rnd>.5 then`20 X t(i)::sintent=2 X`09 if rnd>.8 then X pr::legal=3`20 X`09 end if X end if X end if X if t(i)::sintent=1 then t(i)::sintent=12 end if X return X`20 X3420 ! ------------------------- run away --------------------------- X if t(i)::spos>pr::rpos then`20 X`09t(i)::spos=t(i)::spos+1`20 X else`20 X`09t(i)::spos=t(i)::spos-1 X end if X if abs(t(i)::spos-pr::rpos)<3 then gosub attack_player end if X return X X3440 ! ---------------------- enemy missile fire --------------------- X if t(i)::smissile > 0 then t(i)::smissile = t(i)::smissile -1 end if`20 X a$="INCOMING MISSILE detected from "+edit$(s(t(i)::ship)::sname,128%)+ V & X " ("+t(i)::username+") Range: "+str$(d*2000)+"km" X call display(23,a$) X condition$="RED"\call display(16,condition$) X ! firer of missile now goes back to regular attack X if t(i)::player=0 then t(i)::sintent=2 end if X l1 = next_ship X if (l1 > noship) then noship=noship+1 end if X t(l1)::ship=14 X t(l1)::spos=t(i)::spos X t(l1)::senergy=s(t(l1)::ship)::menergy X t(l1)::sintent=11 X t(l1)::others(1)=pr::shipnum X t(l1)::others(2)=i X t(l1)::player=0 X t(l1)::username=left$(t(i)::username,3)+"M" X t(l1)::special=0 X return X`20 X3480 ! ------------------- Update Missiles -------------------------- X if ecm_status%=1 and rnd>.4 then X a$= "ECM frequency lock on achieved - Missile DESTROYED." X call display(23,a$) X t(i)::ship=-1 X t(i)::sintent=-1 X end if X if abs(t(i)::spos-t(t(i)::others(1))::spos)<1 then X t(i)::spos=t(t(i)::others(1))::spos X end if X if t(i)::spos>t(t(i)::others(1))::spos then X t(i)::spos=t(i)::spos-1 X else X if t(i)::sposnoship or b<>int(b) then goto 3540 end if X if (exist(b)=0 and b<>0) or (t(b)::player=2) then`20 X`09call display(33,"That object is not in laser range.") X`09goto 3540`20 X end if X if t(b)::ship=22 then X call display(33,"Can't target a sand cloud.") X goto 3540 X end if X if t(b)::ship>10 and t(b)::ship<14 and t(b)::player=0 then`20 X`09pr::legal=5 X end if X if (t(b)::ship=2 or t(b)::ship=3) and rnd>.7 and t(b)::player=0 then X get #3%, key #0 eq name$(pr::planet), wait 60 X t(b)::sintent=6 X t(b)::others(2)=t(b)::others(1) X t(b)::others(1)=pr::shipnum X update #3%\free #3% X end if X3545 b$=edit$(s(t(b)::ship)::sname,128%) X if pr::legal=5 then goto 3547 end if X if t(b)::ship=1 then X pr::legal = 4 X t(pr::shipnum)::others(2)=t(pr::shipnum)::others(1) X t(pr::shipnum)::others(1)=b X t(pr::shipnum)::sintent=2 X end if X 3546 if (t(b)::ship<>10 and t(b)::ship<>14 and (t(b)::sintent<>2 and & X `09 t(b)::sintent<>3 and t(b)::sintent<>18 and & X t(b)::sintent<>6 and t(b)::sintent<>9 and t(b)::sintent<-1))& X`09`09 and t(b)::player=0 then X pr::legal=4-(t(b)::ship>10) X t(pr::shipnum)::others(2)=t(pr::shipnum)::others(1) X t(pr::shipnum)::others(1)=b X t(pr::shipnum)::sintent=2 X end if X3547 d=abs(t(b)::spos-pr::rpos) X pr::energy=pr::energy-a X get #3%, key #0% eq name$(pr::planet), wait 60 X t(pr::shipnum)::senergy=t(pr::shipnum)::senergy-a X update #3%\free #3% X if pr::energy<0 then X a$= "Your laser drained your last energy units, shutting off LIFE " & X`09+"SUPPORT..." X call display(23,a$) X goto 8000 X end if X3548 if t(b)::ship<>10 and t(b)::sintent<>9 and t(b)::sintent<>6 and & X`09t(b)::player=0 then X get #3%, key #0% eq name$(pr::planet), wait 60 X t(b)::others(2)=t(b)::others(1) X t(b)::others(1)=pr::shipnum\t(b)::sintent=2\update #3%\free #3% X end if X3549 if (a=1 and pr::equip(10)=1 and t(b)::ship=10 and action_cmd$(move_coun Vt) & X`09`09="r") then X a$="You fire the mining laser at the asteroid." X call display(23,a$) X`09mine=1 X`09goto 3554 X end if X select a X`09case 1 X a$="You send a stream of energy pulses at the "+b$+"." X `09case 2 X a$="You fire a continuous high energy beam at the "+b$+"." X `09case 3 X a$="You blast the "+b$+" with a precision focused energy beam." X`09case 4 X a$="You loose an ultra-coherent beam of UV radiation at the "+b$+" V." X case 5 X a$="Stimulated emission ultra high Q X-rays blast the "+b$+"." X end select X call display(23,a$) X if t(b)::spos <=0 and pt::trade<>9 and pt::trade<>10 then X a$= "Your laser beam disperses harmlessly in the atmosphere." X call display(23,a$) X mine=0 X return X end if X3554 hit=((3.3-d)+a)/2+((3.3-d)*rnd/2) X if hit>2.2 then X`09if a>3 then a=a+1 end if X damage=int((15*a)*rnd+a*6-(a>3)*15) else damage=0 X end if X for ii=1 to noship X if t(ii)::spos=pr::rpos and t(ii)::ship=22 then X damage = int(damage*.66) X end if X next ii X if t(b)::player=1 then X m$="%%la"+t(b)::username+str$(damage)+"." X u$=t(b)::username X gosub 5000 X end if X3555 if damage=0 then X a$="Your laser narrowly misses the "+b$+"." X call display(23,a$) X`09mine=0 X`09return X end if X3556 tar=b ! use missile hit routine X3558 if mine=1 then X get #3%, key #0% eq name$(pr::planet), wait 60 X t(b)::ship=-1 X t(b)::senergy=-1 X update #3%\free #3% X b=int(15*rnd+5)\c=4 X if rnd>.98 then c=10 end if X if c=4 then`20 X`09 a$="The asteroid is reduced to "+str$(b)+" tons of minerals." X call display(23,a$) X else`20 X`09 a$= "You find "+str$(b)+" kilos of GOLD!"`20 X call display(23,a$) X`09end if X gosub 3935 X return X end if X3559 if t(b)::ship=10 then X a$="Your laser hits the asteroid and destroys it totally." X call display(23,a$) X get #3%, key #0% eq name$(pr::planet), wait 60 X t(b)::ship=-1 X t(b)::senergy=-1 X update #3%\free #3% X return X end if X3560 a$="You see a red flash on "+b$+"'s hull indicating you hit." X call display(23,a$) X3562 gosub 3690 X3594 return X`20 X3600 ! -------------------- Fire Missiles ------------------------ X3601 if pr::equip(13)=0 then`20 X`09call display(33,"You're out of missiles!") X`09action_combat=action_combat-1 X`09return X end if X3602 a$="Targeting computer engaged - Please select missile target" X call display(23,a$) X3603 for i=1 to maxships\exist=0\next i X3604 for i=1 to noship X if t(i)::ship=-1 or t(i)::username=pr::username then X iterate X end if X if abs(t(i)::spos-pr::rpos)noship or a<>int(a) then`20 X call display(33,"Invalid target - re-enter") X goto 3614`20 X end if X if exist(a)=0 or t(a)::player=2 then X call display(33,"Out of Range") X`09goto 3614 X end if X if t(a)::ship=22 then X a$= "Target Lock in Failure - Can't enable tracking system." X call display(23,a$) X goto 3614 X end if X3616 if (t(a)::ship=2 or t(a)::ship=3) and rnd>.7 and t(a)::player=0 then X`09! change response to new attacking player X get #3%, key #0% eq name$(pr::planet), wait 60 X t(a)::sintent=6\t(a)::others(2)=t(a)::others(1) X t(a)::others(1)=pr::shipnum\update #3%\free #3% X end if X3617 if pr::legal<4 then X if (t(a)::ship<>10 and t(a)::ship<>14 and (t(a)::sintent=0 or & X t(a)::sintent=1 or t(a)::sintent=15 or t(a)::sintent=7 or & X`09 t(a)::sintent=12 or t(a)::sintent=18 or & X t(a)::sintent=5 or t(a)::sintent=4)) and t(a)::player=0 then X pr::legal=4-(t(a)::ship>10) X end if X end if X pr::equip(13)=pr::equip(13)-1\if t(a)::ship>10 and t(a)::ship<14 & X and t(a)::player=0 then pr::legal=5 end if X if t(a)::sintent<>9 and t(a)::ship<>10 and t(a)::sintent<>6 and & X`09 t(a)::player=0 then X get #3%, key #0% eq name$(pr::planet), wait 60 X t(a)::sintent=2\t(a)::others(2)=t(a)::others(1) X t(a)::others(1)=pr::shipnum\update #3%\free #3% X end if X a$="Targetcom programmed - Xionite warhead armed 5 4 3 2 1 Ignition!" X call display(23,a$) X a$="The sleek Demon Mark II missile begins tracking the "+ & X`09 edit$(s(t(a)::ship)::sname,128%) X call display(23,a$) X if t(a)::player=1 then X m$="%%mi"+t(a)::username+str$(noship)+"." X asave=a X gosub 5000 X a=asave X end if X3630 get #3%, key #0% eq name$(pr::planet), wait 60 X l1 = next_ship X if (l1 > noship) then noship=noship+1 end if X t(l1)::ship=14\t(l1)::spos=pr::rpos\t(l1)::senergy=5 X t(l1)::sintent=11\t(l1)::others(1)=a X t(l1)::others(2)=pr::shipnum\t(l1)::player=0 X t(l1)::username=left$(pr::username,3)+"M" X update #3%\free #3% X`20 X3650 ! --------------- check for missile hit ------------- X i1=i +-+-+-+-+-+-+-+- END OF PART 10 +-+-+-+-+-+-+-+-