-+-+-+-+-+-+-+-+ START OF PART 11 -+-+-+-+-+-+-+-+ X for i=1 to noship X if t(i)::ship=14 and t(i)::spos=t(t(i)::others(1))::spos & X and (t(t(i)::others(1))::player=0 or (t(t(i)::others(1))::player=1 & X and t(i)::others(1)=pr::shipnum)) then gosub 3680 X end if X next i X i=i1 X return X`20 X3680 ! ----------------- missile hit ------------------- X get #3%, key #0% eq name$(pr::planet), wait 60 X t(i)::ship=-1\t(i)::sintent=-1 X update #3%\free #3% X if t(t(i)::others(1))::ship=-1 then X a$= "Target lost - missile self-destructing." X call display(23,a$) X return X end if X if t(i)::others(1)=pr::shipnum then X ! you have taken a missile hit X a$= "MISSILE HIT! The Xionite explosion sends your ship into a spin! V" X call display(23,a$) X else X a$="You see a blinding flash, as a missile strikes the "+ & X edit$(s(t(t(i)::others(1))::ship)::sname,128%)+"." X call display(23,a$) X end if X damage=int(50*rnd)+50 X tar=t(i)::others(1) X if tar=pr::shipnum then X pr::energy=pr::energy-damage X gosub 1700\gosub damage_report X m$="%%mh" X gosub 5000 X if pr::energy<0 then goto 8000 end if X end if X ! laser hit routine jumps to here X3690 get #3%, key #0% eq name$(pr::planet), wait 60 X t(tar)::senergy=t(tar)::senergy-damage X if t(tar)::ship=10 then X t(tar)::ship=-1 X update #3%\free #3% X return X end if X if t(tar)::senergy=<0 and t(tar)::player=0 and t(tar)::ship<>-1 then X a$="The "+edit$(s(t(tar)::ship)::sname,128%)+& X " becomes a huge fireball, instantly vaporizing." X call display(23,a$) X pr::score=pr::score+s(t(tar)::ship)::menergy X if t(tar)::ship<>14 then pr::kills=pr::kills+1 end if X t(tar)::ship=-1\t(tar)::sintent=-1\update #3%\free #3% X return X end if X if t(tar)::player=0 and s(t(tar)::ship)::menergy<>0 then`20 X if t(tar)::senergy/s(t(tar)::ship)::menergy<.27 and rnd>.2 and & X`09 t(tar)::sintent<>9 and t(tar)::ship<>14 then X a$="Escape capsule launch detected from "+ & X edit$(s(t(tar)::ship)::sname,128%)+"." X call display(23,a$) X t(tar)::sintent=9 X end if X end if X update #3%\free #3% X return X`20 X3700 ! ------------------- energy bomb --------------------- X if pr::equip(9)=0 then`20 X`09call display(33,"Wishful thinking! You don't have one.") X`09action_combat=action_combat-1 X`09return X end if X a$="The consequences of this action could be unimmaginable:" X call display(23,a$) X a$="PROCEED? (Y/N) "\call display(1,a$) X if a$<>"y" and a$<>"Y" then`20 X`09a$="Abort sequence initiated - disarm countdown in process." X call display(23,a$) X`09return X end if X a$="Energy shield created - Antimatter expansion initiated" X call display(23,a$) X pr::equip(9)=0 X get #3%, key #0% eq name$(pr::planet), wait 60 X for i=1 to noship X if t(i)::ship=-1 then iterate end if X if i=pr::shipnum then iterate end if X if t(i)::ship=20 then X t(i)::sintent=20 X if abs(t(i)::spos-pr::rpos)4 and pt::zone<>3 then pr::legal=5 end if X if rnd<.12 then X a$="You sense something is wrong - the matter/anti-matter chain" & X`09 +" reaction is running wild!! - It's totally out of control!" X call display(23,a$) X a$= edit$(pt::pname,128%)+" Vaporized!!!! You just wiped a "& X`09 +"world off the map." X call display(23,a$) X a$="Energy expansion stabilizing - Oh no! Energy recession is"& X`09 +" out of control!!!" X call display(23,a$) X call display(23,"") X a$="BBBBBBBBOOOOOOOOOMMMMMMMMMMMMMMMM!!!!!!!" X call display(23,a$) X goto 8000 X else X call display(23,"") X a$="Antimatter field receeding - It worked!!!!" X call display(23,a$) X end if X return X`20 X X3800 ! ***** escape capsule ***** X if pr::equip(7)<>1 then`20 X`09a$="You'll have to go down with your ship! - "& X`09+"You don't have an escape capsule!!!" X call display(23,a$) X action_move=action_move-1 X`09return X end if X a$= "Are you sure you want to abandon ship (You'll lose all except" & X +" your gold and" X call display(23,a$) X a$="money, and your replacement ship will have no optional equipment):" X call display(23,a$) X a$="ABANDON? (Y/N)"\call display(1,a$) X if a$="n" or a$="N" then X`09action_move=action_move-1 X`09return X end if X get #3%, key #0% eq name$(pr::planet), wait 60 X t(pr::shipnum)::sintent=9\t(pr::shipnum)::player=0\update #3%\free #3% X call display(23,"") X a$="Escape sequence initiated." X call display(23,"") X a$="You are thrown clear of your ship and hurtle towards the planet" X call display(23,a$) X m$="%%ab" X gosub 5000 ! check if any players in range X pr::escapes=pr::escapes+int(pr::time_owned/10) X call display(4,)`09`09`09! erase trading window X call display(12,)\scanner_on=0 X a$="Soon you enter the atmosphere, your recovery shutes open,"& X`09+" and you float down" X call display(24,a$) X a$= "and land near the spaceport" X call display(24,a$) X if pt::zone=4 then`20 X`09a$="You are captured by Thargoids and literally " & X`09+"ripped apart on the spot." X call display(24,a$) X quit=2\goto 8000 X end if X if pt::zone<>1 then`20 X`09a$="You spend a month on "+edit$(pt::pname,128%)+ & X`09" while you claim insurance on your ship." X call display(24,a$) X`09goto 3830 X end if X a$="When you try to claim insurance on your ship, the friendly local"& X`09+" representative" X call display(24,a$) X a$="of the Galactic Insurance Co. smiles and points to clause C.4 of"& X`09+" your policy" X call display(24,a$) X a$="which reads 'Coverage Limitations and Exclusions. We will not pay"& X`09+" for direct or" X call display(24,a$) X a$="indirect loss in these cases A) War B) Nuclear Hazard C) Sabotage V" X call display(24,a$) X if pr::credits>200000 then`20 X`09a$="You'll have to pay for a new ship yourself."`20 X call display(24,a$) X`09goto get_new X else`20 X`09a$= "You retire." X call display(24,a$) X`09quit=1 X`09goto 8000 X end if X3830 a$="The insurance policy will cover replacement cost of your ship. Not Ve" X call display(24,a$) X a$="that equipment is NOT covered." X call display(24,a$) X pr::credits=pr::credits+s(pr::shiptype)::cost X gosub 1700`09`09! update status Xget_new: X a$="You can now choose your next ship." X call display(24,a$) X call display(17,) X for i=1 to 9\pr::cargo(i)=0\next i`09`09!clear all cargo except gold X pr::totcargo=pr::cargo(10) X pr::energy=0 X pr::rpos=0 X pr::on_ground = 1 X pr::lsj = 0\pr::cloak = 0 X pr::legal=1 X pr::shiptype = 0 X gosub 6000 X find #2%, key #0% eq pr::username, wait 60\update #2%\free #2% X mine=0 X return X X3900 ! -------------------- board abandoned ship -------------------- X mine=0 X ! check if you are right above a ship, if yes ==> board X get #3%, key #0% eq name$(pr::planet), wait 60 X X for i=1 to noship X if t(i)::ship<>-1 and abs(t(i)::spos-pr::rpos)=0 and (t(i)::sintent=9 V & X`09 `09or t(i)::sintent < -1) then X`09 ! big ships allow more than 1 person to board X a$="You board the badly damaged "+edit$(s(t(i)::ship)::sname,128% V)+ & X`09 " and check out the cargo hold." X call display(23,a$) X X`09 if t(i)::sintent > 0 then X`09 select t(i)::ship X`09 case 20 X`09`09 t(i)::sintent = -10 X`09 case 17 X`09 t(i)::sintent = -5 X`09 case 21 X`09`09 t(i)::sintent = -3 X`09 case 13,15,16 X`09`09 t(i)::sintent = -2 X`09 case else X`09`09 t(i)::sintent = -1 X pr::score=pr::score+s(t(i)::ship)::menergy X pr::kills=pr::kills+1 X`09`09 t(i)::ship = -1 X`09`09 t(i)::senergy=-1 X`09 end select X else X`09 ! if more than one person on board, up count by one X`09 if t(i)::sintent < -1 then X`09`09t(i)::sintent = t(i)::sintent + 1 X pr::score=pr::score+s(t(i)::ship)::menergy X pr::kills=pr::kills+1 X if t(i)::sintent = -1 then X`09`09 t(i)::ship = -1 X`09`09 t(i)::senergy=-1 X`09`09end if X`09 end if X end if X goto 3910 X end if X next i X free #3% X ! check if a starbase in docking range X for i=1 to noship X if t(i)::ship=20 and abs(t(i)::spos-pr::rpos)<2 then goto 3970 end if X next i X call display(33,"There is no abandoned ship right above you.") X action_move=action_move-1 X return X X3910 update #3%\free #3% X if rnd>.8 then`20 X a$="You find that the cargo hold has been totally"& X`09+" consumed by intense fire." X call display(23,a$) X goto 3940 X end if X if t(i)::player=1 then X`09c=t(i)::cargo(1)`09! cargo item X b=t(i)::cargo(2)`09! amount carried X`09goto 3930 X else X a=t(i)::ship X`09select a X`09 case 1 X`09 b=int(10*rnd+10) X`09 if rnd>.5 then c=10 else c=5 end if X`09 case 2,8,6 X`09 b=int(50*rnd+50) X`09 c=int(9*rnd+1) X`09 case 4,5,7 X`09 b=int(20*rnd+1) X`09 c=int(9*rnd+1) X`09 case 3 X`09 b=int(200*rnd+100) X`09 c=int(9*rnd+1) X`09 case 9 X`09 b=int(50*rnd+5) X`09 if rnd>.5 then`20 X`09 c=8 X`09 else X if rnd>.5 then c=2 X else c=9 X`09 end if X`09 end if X`09 case 11,15 X`09 b=16 X`09 c=-1 X`09 case 12 X`09 b=14 X`09 c=-1`09 `20 X`09 case 13 X`09 b=15 X`09 c=-1 X`09 case 16 X`09 b=19 X`09 c=-1 X`09 case 17 X`09 if rnd>.96 then X`09 b=17`09 X`09 c=-1 X`09 else`20 X`09 if rnd<.70 then X`09 b=int(450*rnd+320) X`09 c=10 X`09 else X`09 b=20 X`09 c=-1 X`09 end if X`09 end if X`09 case 18 X`09 b=int(50*rnd+1) X`09 c=10 X`09 case 19`09! boa`20 X`09 if rnd>.95 then X`09 b=21 X`09 c=-1 X else X`09 b=int(400*rnd+5) X`09 c=int(4*rnd+1) X`09 end if X`09 case 20`09! starbase X`09 if rnd> .5 then X`09 b=int(100*rnd+300) X`09 c=10 X`09 else X`09 b=21 X`09 c=-1 X`09 end if X`09 case 21 X`09 if rnd>.50 then X`09 b=22 X`09 c=-1 X`09 else X`09 b=int(400*rnd+100) X`09 c=int(3*rnd+4) X`09 end if X case else X `09 b=int(100*rnd+1) X`09 c=int(10*rnd+1) X end select X end if X3930 if c=-1 then goto found_equipment end if X a$="You find "+str$(b)+" "+edit$(c(c)::unit,128%)+"s of "+ & X `09 edit$(c(c)::trade,128%)+"." X call display(23,a$) X a$="n" X if (pr::totcargo+b)>pr::maxcargo then X a$="You won't be able to take it all." X call display(23,a$) X a$= "FLUSH CARGO HOLD? (Y/N)" X call display(1,a$) X end if X if a$<>"y" and a$<>"Y" then goto 3935 end if X a$="Cargo hold flushed. All cargo except your gold has been discarde Vd." X call display(23,a$) X for k=1 to 9\pr::cargo(k)=0\next k X pr::totcargo=pr::cargo(10) X3935 a$="How much do you want to take?" X call display(23,a$) X a$="QUANTITY> "\call display(1,a$)`20 X a=abs(val(a$)) X if (pr::totcargo+a)>pr::maxcargo then`20 X`09 a$="You only have room for "+str$(pr::maxcargo-pr::totcargo)+" tonnes." X call display(23,a$) X`09 goto 3935 X end if X3938 if a>b then`20 X `09 call display(33,"There isn't that much here!") X goto 3935`20 X end if X pr::cargo(c)=pr::cargo(c)+a\pr::totcargo=pr::totcargo+a X a$="You load "+str$(a)+" "+edit$(c(c)::unit,128%)+"s of "+ & X`09 edit$(c(c)::trade,128%)+" into your hold." X call display(23,a$) X3940 if mine=0 then X`09 if t(i)::ship = -1 then X a$="You return to your ship. As you uncouple with the wrecked"+ V & X " ship, the strain" X call display(23,a$) X a$="causes the wreck to break up and disintegrate." X call display(23,a$) X`09 else X`09 a$="While uncoupling, you note that the damaged ship has " + & X`09 "another docking port." X`09 call display(23,a$) X else X ! operation was mining X mine=0 X end if X return X X3970 ! board starbase X if t(i)::sintent<>0 then X a$= "STARBASE DOCKING REQUEST DENIED." X call display(23,a$) X return X end if X a$="STARBASE DOCKING PROGRAM ACTIVATED - Docking maneouver completed." X call display(23,a$) X clean=(pr::legal-1)`5E4*1000 X clean=clean+int(clean*rnd) X if clean<>0 and pr::credits>clean then X a$= "For "+str$(clean)+" credits, you can be clean again..." X call display(23,a$) X a$="PAY IT? (Y/N)"\call display (1,a$) X if a$="n" then goto 3975 end if X pr::credits=pr::credits-clean\pr::legal=1\clean=0 X end if X if clean<>0 then X a$= "A junior official throws you off the base, mumbling about how" X call display(23,a$) +-+-+-+-+-+-+-+- END OF PART 11 +-+-+-+-+-+-+-+-