Files
basic-computer-games/00_Alternate_Languages/12_Bombs_Away/MiniScript/bombsaway.ms
JoeStrout 63af1a1066 Added MiniScript implementation of Bombardment and Bombs Away.
Also fixed a minor issue with Blackjack.
2023-07-20 15:15:02 -07:00

113 lines
3.2 KiB
Plaintext

getNum = function(prompt, maxVal=5)
while true
num = floor(input(prompt + "? ").val)
if num > 0 and num <= maxVal then return num
print "Try again..."
end while
end function
showReturn = function
print "You made it through tremendous flak!!"
end function
showShotDown = function
print "* * * * boom * * * *"
print "You have been shot down....."
print "Dearly beloved, we are gathered here today to pay our"
print "last tribute..."
end function
showSuccess = function
print "Direct hit!!!! " + floor(100*rnd) + " killed."
print "Mission successful."
end function
// Function to calculate the mission result for all nations except Japan.
doNonJapanResult = function
print
d = input("How many missions have you flown? ").val
while d >= 160
print "Missions, not miles..."
print "150 missions is high even for old-timers."
d = input("Now then, how many missions have you flown? ").val
end while
print
if d >= 100 then print "That's pushing the odds!"
if d < 25 then print "Fresh out of training, eh?"
print
if d >= 160 * rnd then
showSuccess
else
print "Missed target by " + floor(2+30*rnd) + " miles!"
print "Now you're really in for it !!"; print
r = getNum("Does the enemy have guns(1), missiles(2), or both(3)")
print
if r != 2 then
s = input("What's the percent hit rate of enemy gunners (10 to 50)? ").val
if s<10 then
print "You lie, but you'll pay..."
showShotDown
return
end if
end if
print
print
if r > 1 then t = 35 else t = 0
if s + t > 100 * rnd then
showShotDown
else
showReturn
end if
end if
end function
s = 0 // hit rate of enemy gunners
r = 0 // whether enemy has guns(1), missiles(2), or both(3)
// Main Loop
while true
print "You are a pilot in a World War II bomber."
a = getNum("What side -- Italy(1), Allies(2), Japan(3), Germany(4)", 4)
if a == 1 then // Italy
b = getNum("Your target -- Albania(1), Greece(2), North Africa(3)")
print
print ["Should be easy -- you're flying a nazi-made plane.",
"Be careful!!!", "You're going for the oil, eh?"][b-1]
doNonJapanResult
else if a == 2 then // Allies
g = getNum("Aircraft -- Liberator(1), B-29(2), B-17(3), Lancaster(4)", 4)
print ["You've got 2 tons of bombs flying for Ploesti.",
"You're dumping the A-bomb on Hiroshima.",
"You're chasing the Aismark in the North Sea.",
"You're busting a German heavy water plant in the Ruhr."][g-1]
doNonJapanResult
else if a == 3 then // Japan (different logic than all others)
print "You're flying a kamikaze mission over the USS Lexington."
isFirst = input("Your first kamikaze mission(y or n)? ").lower
if isFirst and isFirst[0] == "n" then
s = 0
showReturn
else
print
if rnd > 0.65 then showSuccess else showShotDown
end if
else // Germany
m = getNum("A nazi, eh? Oh well. Are you going for Russia(1)," +
char(13) + "England(2), or France(3)")
print ["You're nearing Stalingrad.",
"Nearing London. Be careful, they've got radar.",
"Nearing Versailles. Duck soup. They're nearly defenseless."][m-1]
doNonJapanResult
end if
print; print; print; another = input("Another mission (y or n)? ").lower
if not another or another[0] != "y" then
print "Chicken !!!" ; print ; break
end if
end while