That being said... please don't attempt to learn fb from this thing as it was coded in a single afternoon and, is not very good.
Code: Select all
'' Text Based Combat Engine (STS) Alpha v1.5.0
'' Variable Declaration Block
DIM SHARED AS INTEGER e_hp, p_hp, nukeammo, turn, etimer, curr
DIM SHARED attack AS STRING
nukeammo = 15 '' Starting Missile Ammo
p_hp = 25 '' Player's Health
curr = 0
SUB shop_station_scen '' Merchant Station Scenario
DIM shopchoice AS STRING
CLS
PRINT
'' UI Block
PRINT "Your Ship:"
PRINT "$:" & curr
PRINT "Hull Integrity:" & p_hp
PRINT "Missiles:" & nukeammo
PRINT
PRINT "1.Missile Refill (+5 Missiles) $25"
PRINT "2.Missile Stockpile (+15 Missiles) $50"
PRINT "3.Hull Repair (+5 HP) $30"
PRINT "4.Additional Plating (+15 HP) $55"
PRINT "Q.Quit"
INPUT "Buy Something"; shopchoice
SELECT CASE shopchoice
CASE "Q","q","Quit","QUIT","quit"
CLS
PRINT "Quitting."
SLEEP 300
CLS
PRINT "Quitting.."
SLEEP 300
CLS
PRINT "Quitting..."
SLEEP 150
CLS
CASE "1"
IF curr < 25 THEN
PRINT "Not Enough Credits."
END IF
IF curr >= 25 THEN
PRINT "Thank you."
curr = curr - 25
nukeammo = nukeammo + 5
END IF
SLEEP 400
CASE "2"
IF curr < 50 THEN
PRINT "Not Enough Credits."
END IF
IF curr >= 50 THEN
PRINT "Thank you."
curr = curr - 50
nukeammo = nukeammo + 15
END IF
SLEEP 400
CASE "3"
IF curr < 30 THEN
PRINT "Not Enough Credits."
END IF
IF curr >= 30 THEN
PRINT "Thank you."
curr = curr - 30
p_hp = p_hp + 5
END IF
SLEEP 400
CASE "4"
IF curr < 55 THEN
PRINT "Not Enough Credits."
END IF
IF curr >= 55 THEN
PRINT "Thank you."
curr = curr - 55
p_hp = p_hp + 15
END IF
SLEEP 400
CASE ELSE
PRINT "Sorry we don't carry that."
SLEEP 400
END SELECT
CLS
END SUB
SUB station_batl_scen '' Space Station Battle Scenario
e_hp = 30 '' Enemy has 30HP
PRINT "You encountered an enemy Space Station!" '' Alert Message
DO
'' Game Over Block
IF p_hp <= 0 THEN
CLS
PRINT "GAME OVER"
SLEEP 1200
STOP
END IF
'' UI Block
PRINT "HP:" & p_hp
PRINT "ENEMY HP:" & e_hp
PRINT "MISSILES:" & nukeammo
turn = turn + 1
PRINT "TURN NUMBER:" & turn
PRINT
PRINT "VALID WEAPON COMMANDS:"
PRINT "L:Basic Laser"
PRINT "M:Missile Launcher"
PRINT
INPUT "Attack with which weapon"; attack
'' Actions Block
SELECT CASE attack
CASE "Laser","LASER","laser","L","l"
e_hp = e_hp - 1
etimer = etimer + 1
CASE "Missile","MISSILE","missile","M","m"
e_hp = e_hp - 5
etimer = etimer + 2
nukeammo = nukeammo - 1
CASE ELSE
PRINT "!Invalid Weapon Code!"
SLEEP 400
END SELECT
'' Enemy Turn Block
IF etimer >= 2 THEN
PRINT "Enemy Space Station attacks with Laser Battery!"
p_hp = p_hp - 3
etimer = etimer - 2
SLEEP 500
END IF
'' Battle Won Block
CLS
LOOP UNTIL e_hp <= 0
PRINT "ENEMY NEUTRALIZED"
PRINT "Station Debris Salvaged to Re-enforce Hull Plating (HP +7)"
PRINT "Station Drops $45"
p_hp = p_hp + 7
curr = curr + 45
SLEEP 1200
END SUB
SUB fighter_batl_scen '' 'Kestrel' battle scenario
e_hp=15 '' Enemy has 15 HP
PRINT "You encountered an enemy 'Kestrel' Fighter Ship" '' Alert Message
DO
'' Game Over Block
IF p_hp <= 0 THEN
CLS
PRINT "GAME OVER"
SLEEP 1200
STOP
END IF
'' UI Block
PRINT "HP:" & p_hp
PRINT "ENEMY HP:" & e_hp
PRINT "MISSILES:" & nukeammo
turn = turn + 1
PRINT "TURN NUMBER:" & turn
PRINT
PRINT "VALID WEAPON COMMANDS:"
PRINT "L:Basic Laser"
PRINT "M:Missile Launcher"
PRINT
INPUT "Attack with which weapon"; attack
'' Actions Block
SELECT CASE attack
CASE "Laser","LASER","laser","L","l"
e_hp = e_hp - 1
etimer = etimer + 1
CASE "Missile","MISSILE","missile","M","m"
e_hp = e_hp - 5
etimer = etimer + 2
nukeammo = nukeammo - 1
CASE ELSE
PRINT "!Invalid Weapon Code!"
SLEEP 400
END SELECT
'' Enemy Turn Block
IF etimer = 1 THEN
PRINT "'Kestrel' attacks with Chain Laser!"
p_hp = p_hp - 2
etimer = etimer - 1
SLEEP 500
END IF
IF etimer = 2 THEN
PRINT "'Kestrel' fires Rocket!"
p_hp = p_hp - 3
etimer = etimer - 2
SLEEP 500
END IF
'' Battle Won Block
CLS
LOOP UNTIL e_hp <= 0
PRINT "ENEMY NEUTRALIZED"
PRINT "'Kestrel' drops $24"
curr = curr + 24
SLEEP 1200
END SUB
SUB bomber_batl_scen '' 'Krom'orant' Bomber battle scenario
e_hp = 35 '' Enemy has 35HP
PRINT "You encountered an Enemy 'Krom'orant' Bomber" '' Alert Message
DO
'' Game Over Block
IF p_hp <= 0 THEN
CLS
PRINT "GAME OVER"
SLEEP 1200
STOP
END IF
'' UI Block
PRINT "HP:" & p_hp
PRINT "ENEMY HP:" & e_hp
PRINT "MISSILES:" & nukeammo
turn = turn + 1
PRINT "TURN NUMBER:" & turn
PRINT
PRINT "VALID WEAPON COMMANDS:"
PRINT "L:Basic Laser"
PRINT "M:Missile Launcher"
PRINT
INPUT "Attack with which weapon"; attack
'' Actions Block
SELECT CASE attack
CASE "Laser","LASER","laser","L","l"
e_hp = e_hp - 1
etimer = etimer + 1
CASE "Missile","MISSILE","missile","M","m"
e_hp = e_hp - 5
etimer = etimer + 2
nukeammo = nukeammo - 1
CASE ELSE
PRINT "!Invalid Weapon Code!"
SLEEP 400
END SELECT
'' Enemy Turn Block
PRINT "'Krom'orant' launches Subspace Bomb!"
p_hp = p_hp - 2
SLEEP 500
IF etimer >= 6 THEN
PRINT "'Krom'orant' repairs damage!"
e_hp = e_hp + 1
etimer = etimer - 6
SLEEP 500
END IF
'' Battle Won Block
CLS
LOOP UNTIL e_hp <= 0
PRINT "ENEMY NEUTRALIZED"
PRINT "Krom'orant Drops 15 Missiles & $40"
nukeammo = nukeammo + 15
curr = curr + 40
SLEEP 1200
END SUB
SUB thermaldart_batl_scen
e_hp = 5
PRINT "!ALERT! Kamikaze-Class ship detected: 'Thermal Dart'"
DO
'' Game Over Block
IF p_hp <= 0 THEN
CLS
PRINT "GAME OVER"
SLEEP 1200
STOP
END IF
'' UI Block
PRINT "HP:" & p_hp
PRINT "ENEMY HP:" & e_hp
PRINT "MISSLES:" & nukeammo
turn = turn + 1
PRINT "TURN NUMBER:" & turn
PRINT
PRINT "VALID WEAPON COMMANDS:"
PRINT "L:Basic Laser"
PRINT "M:Missile Launcher"
PRINT
INPUT "Attack with which weapon"; attack
'' Actions Block
SELECT CASE attack
CASE "Laser","LASER","laser","L","l"
e_hp = e_hp - 1
etimer = etimer + 1
CASE "Missile","MISSILE","missile","M","m"
e_hp = e_hp - 5
etimer = etimer + 2
nukeammo = nukeammo - 1
CASE ELSE
PRINT "!Invalid Weapon Code!"
SLEEP 400
END SELECT
'' Enemy Turn Block
IF etimer < 6 THEN
PRINT "!IMPACT IMMENENT!"
SLEEP 500
END IF
IF etimer >= 6 THEN
PRINT "'Thermal Dart' has impacted!"
p_hp = P_hp - 15
e_hp = e_hp - 5
SLEEP 500
END IF
'' Battle Won Block
CLS
LOOP UNTIL e_hp <= 0
PRINT "ENEMY NEUTRALIZED"
SLEEP 1200
END SUB
SUB ship_batl_scen ''Ship Battle Scenario
e_hp=25
PRINT "You encountered an enemy Star Ship" '' Alert Message
DO
'' Game Over Block
IF p_hp <= 0 THEN
CLS
PRINT "GAME OVER"
SLEEP 1200
STOP
END IF
'' UI Block
PRINT "HP:" & p_hp
PRINT "ENEMY HP:" & e_hp
PRINT "MISSLES:" & nukeammo
turn = turn + 1
PRINT "TURN NUMBER:" & turn
PRINT
PRINT "VALID WEAPON COMMANDS:"
PRINT "L:Basic Laser"
PRINT "M:Missile Launcher"
PRINT
INPUT "Attack with which weapon"; attack
'' Actions Block
SELECT CASE attack
CASE "Laser","LASER","laser","L","l"
e_hp = e_hp - 1
etimer = etimer + 1
CASE "Missile","MISSILE","missile","M","m"
e_hp = e_hp - 5
etimer = etimer + 2
nukeammo = nukeammo - 1
CASE ELSE
PRINT "!Invalid Weapon Code!"
SLEEP 400
END SELECT
'' Enemy Turn Block
IF etimer = 2 THEN
PRINT "Enemy Ship fires Basic Laser"
p_hp = p_hp - 1
SLEEP 500
END IF
IF etimer >= 4 THEN
PRINT "Enemy Ship fires Missile"
p_hp = p_hp - 5
etimer = etimer - 4
SLEEP 500
END IF
'' Battle Won Block
CLS
LOOP UNTIL e_hp <= 0
PRINT "ENEMY NEUTRALIZED"
PRINT "Enemy Ship Dropped Some Spare Plating (+4 HP)"
PRINT "And $22"
p_hp = p_hp + 4
curr = curr + 22
SLEEP 1200
END SUB
'' Sector Choice Block
DIM sect_choice AS STRING
DO
PRINT "{INVENTORY}"
PRINT "HULL INTEGRITY:" & p_hp
PRINT "MISSILES:" & nukeammo
PRINT "CREDITS:" & curr
PRINT
PRINT "{HELM_CONSOLE}"
PRINT "Please Choose A Sector..."
PRINT "Available sectors:"
PRINT "0.Home Sector: Known Repair Shop Location..."
PRINT "1.Sector 1: Possible Station Detected..."
PRINT "2.Sector 2: Possible Ship Detected...(Kestrel)"
PRINT "3.Sector 3: Possible Ship Detected...(Thermal Dart)"
PRINT "4.Sector 4: Possible Ship Detected...(Krom'orant Bomber)"
PRINT "5.Sector 5: Possible Ship Detected...(Enemy Star Ship)"
PRINT "Q:Quit..."
PRINT
INPUT "Jump to which sector"; sect_choice
SELECT CASE sect_choice
CASE "Uncle Pennybags"
IF curr < 999 THEN
PRINT "Debug/Cheat code activated..."
curr = curr + 999
SLEEP 400
CLS
END IF
CASE "Q","q","Quit","QUIT","quit"
CLS
PRINT "Quitting."
SLEEP 300
CLS
PRINT "Quitting.."
SLEEP 300
CLS
PRINT "Quitting..."
SLEEP 150
STOP
CASE "0"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
shop_station_scen
CASE "1"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
station_batl_scen
CASE "2"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
fighter_batl_scen
CASE "3"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
thermaldart_batl_scen
CASE "4"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
bomber_batl_scen
CASE "5"
CLS
PRINT "JUMPING."
SLEEP 300
CLS
PRINT "JUMPING.."
SLEEP 300
CLS
PRINT "JUMPING..."
SLEEP 300
CLS
ship_batl_scen
CASE ELSE
PRINT "!Sector ID Invalid!"
SLEEP 600
CLS
END SELECT
LOOP