-+-+-+-+-+-+-+-+ START OF PART 12 -+-+-+-+-+-+-+-+ X a$= "he would have you arrested if it wasn't for all the paperwork." X call display(23,a$) X goto 3975 X end if X if pr::credits<1000 then X a$= "Your credit rating isn't good - thrown out." X call display(23,a$) X goto 3975 X end if X a$="Energy recharged and Missiles replenished. Service Fee: CR 1000" X call display(23,a$) X pr::energy=pr::maxenergy X get #3%, key #0% eq name$(pr::planet), wait 60 X t(pr::shipnum)::senergy=pr::maxenergy X update #3%\free #3% X pr::equip(13)=pr::maxmissile X pr::credits=pr::credits-1000 X3975 a$="DEPARTURE SEQUENCE INITIATED - Successful release from starbase." X call display(23,a$) X return X `20 Xfound_equipment: X ! ----------------- Found a piece of equipment ----------------- X a$= "You find a working "+edit$(e(b)::ename,128%)+"." X call display(23,a$) X a$="Do you want to install it? (Y/N)"\call display(1,a$) X if a$="n" then goto 3940 end if X if b=14 then ! excimer=14 / x-ray=17 X if s(pr::shiptype)::mlaser<4 then a$="Sorry, your "+ & X`09 edit$(s(pr::shiptype)::sname,128%)+ & X`09 " just doesn't have a strong enough mount." X call display(23,a$) X return X else X pr::equip(1)=0\pr::equip(3)=0\pr::equip(5)=0\pr::equip(17)=0 X end if X end if X if b=17 then X if s(pr::shiptype)::mlaser<5 then a$="Sorry, your "+ & X`09 edit$(s(pr::shiptype)::sname,128%)+ & X`09 " just doesn't have a strong enough mount." X call display(23,a$) X return X else X pr::equip(1)=0\pr::equip(3)=0\pr::equip(5)=0\pr::equip(14)=0 X end if X end if X if b=13 then pr::scanrange=5 end if X pr::equip(b)=1 X a$= "You install the "+edit$(e(b)::ename,128%)+" in your ship." X call display(23,a$) X goto 3940 X X4000 ! -------------------- Police Trap ----------------------------- X if pt::law>6 and rnd>.8 and pr::moves>10 then gosub 4030 end if X if pr::legal=4 and rnd<.95 then return end if X if pr::legal=5 and rnd<.85 then return end if X a=int(10*rnd+8) X for i=noship+1 to noship+a X t(i)::ship=1 X t(i)::senergy=s(1)::menergy X`09t(i)::smissile=s(1)::mmissile X t(i)::spos=int(rnd*5+2) X t(i)::sintent=0 X t(i)::username="GP"+str$(i) X next i X noship=noship+a X return X`20 X4030 ! ---------------- Galactic Commando ships -------------------- X b=int(20*rnd+5) X if rnd>.3 then`20 X a=1`20 X else`20 X if rnd>.5 then`20 X a=2`20 X else`20 X a=3`20 X end if X end if X for i=1 to a X noship=noship+1 X t(noship)::ship=18 X t(noship)::senergy=s(18)::menergy X t(noship)::smissile=s(18)::mmissile X t(noship)::spos=b+int(5*rnd-2) X t(noship)::sintent=0 X t(noship)::username="GC"+str$(noship) X next i X return X X sand_blaster: X ! ---------------------- Sand blaster ------------------------ X if pr::equip(24)<>1 then X a$= "Not Mounted" X call display(23,a$) X`09action_combat=action_combat-1 X return X end if X a$= "Sand Discharge initiated: Millions of tiny particles envelop"& X`09+" your ship." X call display(23,a$) X 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=22 X t(l1)::senergy=s(22)::menergy X t(l1)::spos=pr::rpos X t(l1)::sintent=0 X t(l1)::username=" - " X update #3%\free #3% X return X Xdamage_report: X ! -------------------- damage report ----------------------- X a=pr::energy/pr::maxenergy X dmg$="ENERGY FAILING" X if a>.2 then dmg$="ENERGY LOW." end if X if a>.4 then dmg$="Major energy loss." end if X if a>.7 then dmg$="Minor energy loss." end if X if a=1 then dmg$="Ship undamaged." end if X call display(14,dmg$) X return X X galactic_fleet: X ! -------------------- Galactic Fleet ---------------------- X if pt::zone=4 or (pt::zone=2 and rnd>.2) then return end if X if rnd>.3 then return end if X fleetsize=int(pr::moves/10*rnd+1)\fleetpos=int(10*rnd+5) X if fleetsize>30 then fleetsize=30 end if X for i=11 to 10+fleetsize X noship=noship+1 X if i<14 then t(noship)::ship=i else t(noship)::ship=int(3*rnd+11) X end if X t(noship)::spos=int(3*rnd-1)+fleetpos X shipno=noship\gosub 3100 X t(noship)::senergy=s(t(noship)::ship)::menergy X t(noship)::smissile=s(t(noship)::ship)::mmissile X t(noship)::username="GF"+str$(noship) X next i X return X`20 X4300 ! ------------------ multi-fire missile rack ------------------- X simult=3`09`09! default firing is 3 missiles X if pr::equip(13)<3 then simult=pr::equip(13) end if X a$="You can fire up to "+str$(simult)+" missiles - Press return when do Vne." X call display(23,a$) X for k=1 to simult X gosub 3614 X if action_combat=0 and k<>1 then`20 X action_combat= 1 X return`20 X end if X next k X return X`20 X4400 ! -------------------- Equipment Destroyed --------------------- X a=int(ntequip*rnd+1) X if pr::equip(a)=1 then X a$= edit$(e(a)::ename,128%)+" DESTROYED!" X call display(23,a$) X pr::equip(a)=0 X select a X`09case 8 X`09 pr::maxcargo=s(pr::shiptype)::mcargo X if pr::totcargo>pr::maxcargo then`20 X`09 pr::totcargo=0 X`09 for j=1 to 10 X`09 pr::cargo(j)=int(pr::cargo(j)/3) X pr::totcargo=pr::totcargo+pr::cargo(j) X next j X a$="Some of your cargo has been lost into space." X call display(23,a$) X`09 return X end if X`09case 11 X pr::maxenergy=s(pr::shiptype)::menergy X if pr::energy>pr::maxenergy then`20 X pr::energy=pr::maxenergy X a$="Some of your energy has been lost." X call display(23,a$) X end if X`09case 12 X pr::maxmissile=s(pr::shiptype)::mmissile X if pr::equip(13)>pr::maxmissile then`20 X pr::equip(13)=pr::maxmissile X a$="Some of your missiles were destroyed." X call display(23,a$) X end if X`09case 16 X`09 pr::scanrange=2 X end select X end if X return X`20 X4500 ! ---------------------- war zone ------------------------------ X fighters=int(pr::moves/8*rnd+4)+int(5*rnd)\fightpos=int(5*rnd+5) X if fighters>40 then fighters=40 end if X for i=1 to fighters X noship=noship+1 X t(noship)::spos=int(3*rnd-1)+fightpos X shipno=noship\gosub 3100 X if rnd>.5 then t(noship)::ship=4 else t(noship)::ship=7 X end if X t(noship)::senergy=s(t(noship)::ship)::menergy X t(noship)::smissile=s(t(noship)::ship)::mmissile X t(noship)::username="S"+str$(noship)+str$(int(10*rnd)) X next i X return X`20 X4800 ! -------------------- Zone messages -------------------------- X if pr::legal<=2 then X select pt::zone X`09 case 1 X`09 m$="WARNING! You are in a War Zone - Proceed at your own risk." X`09 sender$="GPHQ"\u$=pr::username\gosub send_message X `09 case 3 X`09 m$="ATTENTION: This world is unclassified - proceed with caution." X`09 sender$="GPHQ"\u$=pr::username\gosub send_message X`09 case 4 X m$="ALERT! Your trading permit is not recognized here - LEAVE AT" V & X`09`09+" ONCE." X sender$="GPHQ"\u$=pr::username\gosub send_message X end select X end if X return X X4900 ! ----------------- messages for thargoids ------------------ X if pr::legal<=2 then X pr::thargoid=int(pr::moves/10) X sender$="GPHQ"\u$=pr::username\m$="" X select pr::moves X`09 case 10 X m$="WARNING: Increased Thargoid presence reported in your area." X`09 case 20 X m$="ALERT: Thargoid raids believed probable in your area." X`09 case 30 X m$="EMERGENCY WARNING! Thargoid invasion of this world expected." X`09 case 40 X m$="CONDITION RED! Thargoid invasion zone. Seek shelter." X`09 case 50 X m$="FINAL MESSAGE! Local Thargoid presence has forced temporary" V& X +"@surrender of Gal Pol forces - The situation is out of control V." X `09end select X if m$<>"" then gosub send_message end if X end if X return X`20 X5000 ! -----------Send to nearby player ships m$ ------------------- X when error in X for i=1 to noship X if t(i)::player=1 and abs(t(i)::spos-pr::rpos) pr::username then X select ev(i)::event X case "ab" X a$= ev(i)::source+" has abandonned ship." X`09 call display(23,a$) X case "eb" X a$= "ENERGY BOMB LAUNCH DETECTED FROM "+ev(i)::source+"." X`09 call display(23,a$) X if pr::equip(18)=1 then X a$= "ENERGY BOMB SHIELD UP - ANTI-MATTER SAFELY DISPERSED." X`09 call display(23,a$) X else X a$= "EVERY ATOM IN YOUR BODY IS CONVERTED TO PURE ENERGY..." X`09 call display(23,a$) X goto 8000 X end if X case "mi" X if ev(i)::dest=pr::username then X a$= "INCOMING MISSILE detected from "+ev(i)::source+"." X`09 call display(23,a$) X else X a$= ev(i)::source+" fired a missile at "+ev(i)::dest+"." X`09 call display(23,a$) X end if X case "la" X if ev(i)::dest=pr::username then X a$= "LASER ATTACK! Attacking ship: "+ev(i)::source+"." X`09 call display(23,a$) X damage=ev(i)::p1 X gosub 3369 X else X a$=ev(i)::source+" fired it's laser at "+ev(i)::dest+"." X`09 call display(23,a$) X end if X case "mo" X call display(23,"--- GALACTIC BANK TRANSACTION NOTICE ----") X a$= str$(ev(i)::p1)+" credits received from "+ev(i)::source+"." X`09 call display(23,a$) X pr::credits=pr::credits+ev(i)::p1 X case "mh" X a$=ev(i)::source+" shakes from the blast of a missile hit." X`09 call display(23,a$) X end select X end if X next i X numevents=0 X return X`20 X X6000 ! ----------------------- select ship ----------------------- X if revived$="OK" then`20 X call display(23,"The ship dealer is closed by government order.") X return X end if X call display(21,)`09! clear text window X call display(4,)`09! clear trade window X if pr::ban=TRUE then X call display(23,"A security guard throws you out of the building.") X return X end if X if pr::shiptype = 23 and s(23)::soldhere=0 and rnd > .5 then X call display(23, "You'll have to sell that piece of !*?* Yugo elsewhe Vre.") X pr::ban=TRUE X return X end if X tradein% = 0 X if pr::shiptype<>0 then X ! assess value of old ship X a$="We access the total value of the options on your ship as shown." X call display(23,a$) X oldevalue% = 0 X for i=7 to ntequip X if pr::equip(i) = 1 then`20 X oldevalue% = oldevalue% + int(e(i)::usedeprice*factor*pr::equip(i V)) X`09 a$=str$(pr::equip(i))+" "+edit$(e(i)::ename,128%)+": "+ & X`09 `09str$(int(e(i)::usedeprice*factor)) X call display(24,a$) X end if X next i X a$= "Total equipment value = "+str$(oldevalue%) X call display(24,a$) X call display(24,"") X tradein% = s(pr::shiptype)::cost - int((pr::time_owned * & X`09(1- s(pr::shiptype)::resale/100) / 50%)*s(pr::shiptype)::cost) & X`09- s(pr::shiptype)::cost/500 X if tradein% < 5000 then tradein% = 5000 end if X a$ = "Value of a used "+edit$(s(pr::shiptype)::sname,128%)+ " = " + & X`09`09`09`09 `09str$(tradein%) X call display(24,a$) X call display(17,)`09`09! wait for key X call display(4,) X call display(21,) X end if X a$="The above ships are for sale at the spaceport on "+ & X`09edit$(pt::pname,128%)+"." X call display(23,a$) X a$="Ship"+space$(34)+"Cost Energy Cargo Laser Missiles" X call display(24,a$) +-+-+-+-+-+-+-+- END OF PART 12 +-+-+-+-+-+-+-+-