Created
May 23, 2014 17:31
-
-
Save digital-shokunin/695c55278262d23180b5 to your computer and use it in GitHub Desktop.
Original Welcome to Roxboro written for Turbo Pascal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PROGRAM RoxboroRumble (Input, Output); | |
(* This program is a RPG about Roxboro. It's basic plot is this *) | |
(* You are a teenager that moved into Roxboro from a presumably *) | |
(* more exciting town. It isn't long before boredom sets in... *) | |
(* about 5 seconds considering it's Roxboro. You soon realize *) | |
(* there is nothing to do in Roxboro and the only thing to do *) | |
(* Roxboro is get out of Roxboro. This is where the game begins *) | |
(* the user must over come many challenges and defeat the *) | |
(* bosses that guard the ways out of Roxboro. The user gains *) | |
(* experience along the way by killing crack/pot heads, preps, *) | |
(* skaters, rednecks, and small children, stuff like that. The *) | |
(* game is based upon the old text based games where you were *) | |
(* someone in medieval times using magic and weapons to advance *) | |
(* It's the same way except your in Roxboro and culture hasn't *) | |
(* evolved that much from medieval times so it should be about *) | |
(* the same thing. Arrays are used to represent each location *) | |
(* each array holds the records containing information on each *) | |
(* location *) | |
(* PROGRAMERS: *) | |
(* David Mitchell Programming/Story *) | |
(* Glen Newsome Programming/Story *) | |
(* Craig Zglinski Programming/Graphics/Story *) | |
(* Thanks to those real life characters who were cool enough to *) | |
(* allow us to put them in there to add to the flavor of the *) | |
(* game. *) | |
USES CRT, GRAPH; | |
Label 2, 3; | |
TYPE | |
Opponent = RECORD | |
Description : String[255]; | |
Difficulty : Integer; | |
Damage : Integer; | |
Name : String[35]; | |
Defeat : String[255]; | |
Action : String [70]; | |
Run : String [255]; | |
Win : String[255]; | |
Offense : String[255]; | |
END; | |
ObjProfile = RECORD | |
Name : String[10]; | |
WeaponDamage : Integer; | |
END; | |
LocProf = RECORD | |
Name : String[30]; | |
Description : String[255]; | |
Des2 : String[255]; | |
Objects : ObjProfile; | |
Enemy : Opponent; | |
END; | |
LocGrid = ARRAY[1..5, 1..5] OF LocProf; | |
Player = RECORD | |
Experience : Integer; | |
Inventory : ARRAY [1..15] OF ObjProfile; | |
Money : Integer; | |
Health : Integer; | |
END; | |
VAR | |
Boss, Health, Damage, Exp, Strength, Row, | |
Column, BossCount, Mustangs, NumInventory, Area : Integer; | |
Grid : LocGrid; | |
Guy : Player; | |
Response : Char; | |
PROCEDURE SetArray(VAR Loc : LocGrid; VAR Play : Player); | |
BEGIN | |
CLRSCR; | |
Play.experience := 30; | |
Play.Health := 25; | |
Play.Inventory[1].WeaponDamage := 0; | |
Loc[1, 1].Name := 'Home'; | |
Loc[1,1].Description := 'You are in your new home. You just unpacked.'; | |
Loc[1,1].Des2 := 'You decide to find out what there is to do in this town. (Hint: Walmart, nothing, and Walmart).'; | |
Loc[1,1].Enemy.Description := ' Nobody but your family is around.'; | |
Loc[1,1].Enemy.Name := ''; | |
Loc[1,2].Name := 'Food Lion'; | |
Loc[1,2].Description := 'You see a bunch of people doing nothing but driving through the parking lot over and over again.'; | |
Loc[1,2].Des2 := ' You think to yourself "These people must have no lives".'; | |
Loc[1,2].Enemy.Description := ' David Nunley is here bagging groceries and flirting with the cashiers'; | |
Loc[1,2].Enemy.Name := 'David Nunley'; | |
Loc[1,2].Enemy.Difficulty := 15; | |
Loc[1,2].Enemy.Damage := 3; | |
Loc[1,2].Enemy.Defeat:= 'HEY MAN get a comb'; | |
Loc[1,2].Enemy.Action := 'pimp slaps'; | |
Loc[1,2].Enemy.Run := 'Come back here b yotch!!'; | |
Loc[1,2].Enemy.Win := 'Who do you think your messing with punk!!'; | |
Loc[1,2].Enemy.Offense := 'Call David a freak'; | |
Loc[1,3].Name := 'AutoZone'; | |
Loc[1,3].Description := 'This is one of the too many auto parts stores.'; | |
Loc[1,3].Des2 := ' '; | |
Loc[1,3].Enemy.Description := ' Some redneck is here getting parts for his truck'; | |
Loc[1,3].Enemy.Name := 'Some Redneck'; | |
Loc[1,3].Enemy.Difficulty := 30; | |
Loc[1,3].Enemy.Damage := 10; | |
Loc[1,3].Enemy.Defeat := 'Actually I think Earnhardt is cool I just don`t like the number 3.'; | |
Loc[1,3].Enemy.Action := 'spits one of his teeth at you'; | |
Loc[1,3].Enemy.Run := 'Run you little Ford-lover.'; | |
Loc[1,3].Enemy.Win := 'Yeah you lousy sun beach. Number 3 forever.'; | |
Loc[1,3].Enemy.Offense := 'Dis the number 3'; | |
Loc[1,4].Name := 'Semora'; | |
Loc[1,4].Description := 'You get bored with Roxboro so you decide to go to one of the communities.'; | |
Loc[1,4].Des2 := 'You soon find out that it`s just as boring here.'; | |
Loc[1,4].Enemy.Description := ' There is a nice girl here named Dana.'; | |
Loc[1,4].Enemy.Name := 'Dana'; | |
Loc[1,4].Enemy.Difficulty := 50; | |
Loc[1,4].Enemy.Damage := 20; | |
Loc[1,4].Enemy.Defeat := 'You kill Dana but you feel guilty you sorry bastard.'; | |
Loc[1,4].Enemy.Action := 'slaps you for being annoying'; | |
Loc[1,4].Enemy.Run := 'I hate people who pester me. (You shouldn`t mess with Dana she`s a tough girl.)'; | |
Loc[1,4].Enemy.Win := 'I`m sorry I didn`t mean to do that.'; | |
Loc[1,4].Enemy.Offense := 'Annoy Dana'; | |
Loc[1,5].Name := 'Allensville'; | |
Loc[1,5].Description := 'Allensville is just as boring as Roxboro. All it is are a few houses and a store.'; | |
Loc[1,5].Des2 := ' You don`t know why they bothered naming the place. You figure Allen must have sucked.'; | |
Loc[1,5].Enemy.Description := ' Jeffrey is here working on his Camaro.'; | |
Loc[1,5].Enemy.Name := 'Jeffrey'; | |
Loc[1,5].Enemy.Difficulty := 50; | |
Loc[1,5].Enemy.Damage := 20; | |
Loc[1,5].Enemy.Defeat := 'Ford-Lover!!!'; | |
Loc[1,5].Enemy.Action:= 'breaks one of your arms'; | |
Loc[1,5].Enemy.Run := 'YEAH, WHAT THEN FOOL!!!'; | |
Loc[1,5].Enemy.Win := 'Let me go get my "CHEVY" Camaro and run over you with it.'; | |
Loc[1,5].Enemy.Offense := 'Call Jeffrey a FORD-LOVER'; | |
Loc[2,1].Name := 'Card Shop'; | |
Loc[2,1].Description := 'You see a bunch of people hanging out here and figure at least they aren`t cruising around'; | |
Loc[2,1].Des2 := 'like those other morons and burning gas. You decide to hang around a while.'; | |
Loc[2,1].Enemy.Description := 'Felix is standing around talking to other people.'; | |
Loc[2,1].Enemy.Name := 'Felix'; | |
Loc[2,1].Enemy.Difficulty := 40; | |
Loc[2,1].Enemy.Damage := 15; | |
Loc[2,1].Enemy.Defeat := 'Stop talking BS and get a life'; | |
Loc[2,1].Enemy.Action := 'hits you'; | |
Loc[2,1].Enemy.Run := 'Where you going b yotch. Come back and fight.'; | |
Loc[2,1].Enemy.Win := 'You little punk I`m tired of little kids like you.'; | |
Loc[2,1].Enemy.Offense := 'Tell Felix to shut up'; | |
Loc[2,2].Name := 'Hospital'; | |
Loc[2,2].Description := 'You recieve medical treatment and gain some health.'; | |
Loc[2,2].Des2:= ' '; | |
Loc[2,2].Enemy.Name := ''; | |
Loc[2,3].Name := 'Dreamer`s'; | |
Loc[2,3].Description := 'Alot of loud sucky music and drunk people dancing.'; | |
Loc[2,3].Des2 := 'It seems to be some sort of sorry excuse for a club.'; | |
Loc[2,3].Enemy.Description := 'A drunk is dancing around stupidly.'; | |
Loc[2,3].Enemy.Name := 'Some Drunk Guy'; | |
Loc[2,3].Enemy.Difficulty := 40; | |
Loc[2,3].Enemy.Damage := 15; | |
Loc[2,3].Enemy.Defeat := 'Sober up and learn to dance'; | |
Loc[2,3].Enemy.Action := 'pukes on you'; | |
Loc[2,3].Enemy.Run := 'Hes jiziba apidod soadpofa ddsa'; | |
Loc[2,3].Enemy.Win := 'Tif fo anofa drwink'; | |
Loc[2,3].Enemy.Offense := 'Laugh at the drunk guy'; | |
Loc[2,4].Name := 'Kirby Theater'; | |
Loc[2,4].Description := 'It`s an actual theater where they show plays like Shakespeare and stuff.'; | |
Loc[2,4].Des2 := 'You think to yourself "Why don`t these hicks change this place to a movie theater.'; | |
Loc[2,4].Enemy.Description := 'Michael is here setting up lights.'; | |
Loc[2,4].Enemy.Name := 'Michael'; | |
Loc[2,4].Enemy.Difficulty := 35; | |
Loc[2,4].Enemy.Damage := 15; | |
Loc[2,4].Enemy.Defeat := 'I`ll shove those lights where the sun don`t shine.'; | |
Loc[2,4].Enemy.Action := 'blinds you with his light in unspeakable ways'; | |
Loc[2,4].Enemy.Run := 'I knew you couldn`t stand up for yourself.'; | |
Loc[2,4].Enemy.Win := 'Yo momma'; | |
Loc[2,4].Enemy.Offense := 'Call Micheal a slut-faced whore'; | |
Loc[2,5].Name := 'Hyco Lake'; | |
Loc[2,5].Description := 'A bunch of rich people live here cause it`s their sorry'; | |
Loc[2,5].Des2:= 'excuse for a beach resort.'; | |
Loc[2,5].Enemy.Description := 'A prep on his jetski is riding around like he`s the bomb'; | |
Loc[2,5].Enemy.Name := 'Jet skier'; | |
Loc[2,5].Enemy.Difficulty := 40; | |
Loc[2,5].Enemy.Damage := 25; | |
Loc[2,5].Enemy.Defeat := 'Who is better now b yotch.'; | |
Loc[2,5].Enemy.Action := 'splashes you'; | |
Loc[2,5].Enemy.Run := 'No one is better than me and my jet ski.'; | |
Loc[2,5].Enemy.Win := 'Damn I got my hair messed up.'; | |
Loc[2,5].Enemy.Offense := 'Drop a rock on his head from the bridge'; | |
Loc[3,1].Name := 'Spot + Steal'; | |
Loc[3,1].Description := 'John the store clerk sells you a shotgun.'; | |
Loc[3,1].Des2 := 'While your there John invites you to praise jah and gain health.'; | |
Loc[3,1].Enemy.Name := ''; | |
Loc[3,2].Name := 'WALMART'; | |
Loc[3,2].Description := 'This place is considered the shrine of Roxboro. It`s basically'; | |
Loc[3,2].Des2 := ' Roxboro`s excuse for a shopping mall.'; | |
Loc[3,2].Enemy.Description := 'Mike is here pimping on his hoes.'; | |
Loc[3,2].Enemy.Name := 'Mike'; | |
Loc[3,2].Enemy.Difficulty := 90; | |
Loc[3,2].Enemy.Damage := 30; | |
Loc[3,2].Enemy.Defeat := 'Damn I almost had it that guy is dangerous.'; | |
Loc[3,2].Enemy.Action := 'cuts you with his knife'; | |
Loc[3,2].Enemy.Run := 'Don`t mess with my hoes, FOOL.'; | |
Loc[3,2].Enemy.Offense := 'Pimp on Mike`s hoes'; | |
Loc[3,2].Enemy.Win := 'Don`t mess with my hoes, B YOTCH'; | |
Loc[3,3].Name := 'Bojangles'; | |
Loc[3,3].Description := 'It`s a resturant where you by chicken what more could you want.'; | |
Loc[3,3].Des2 := 'The service is slow and the fries make you want to suck a lake dry their so salty.'; | |
Loc[3,3].Enemy.Description := 'A mutated chicken is running around.'; | |
Loc[3,3].Enemy.Name := 'The Mutated Chicken'; | |
Loc[3,3].Enemy.Difficulty := 45; | |
Loc[3,3].Enemy.Damage := 10; | |
Loc[3,3].Enemy.Defeat := 'Hey wait a minute your Nicole!'; | |
Loc[3,3].Enemy.Action:= 'pecks you'; | |
Loc[3,3].Enemy.Run := 'Bawk Bawk Bawk Bawk Bawk'; | |
Loc[3,3].Enemy.Offense := 'Attack the chicken'; | |
Loc[3,3].Enemy.Win := 'Bawk, Bawk, Bawk, Cluck, Cluck, Cluck'; | |
Loc[3,4].Name := 'Court House'; | |
Loc[3,4].Description:= 'It`s a court house. DUHHH!!!!'; | |
Loc[3,4].Des2 := ' '; | |
Loc[3,4].Enemy.Description := 'There is skater skating around. You think I remember 5 years ago I used to skate.'; | |
Loc[3,4].Enemy.Name := 'Skater'; | |
Loc[3,4].Enemy.Difficulty := 60; | |
Loc[3,4].Enemy.Damage := 30; | |
Loc[3,4].Enemy.Defeat := 'Stupid little greasy freshman find something better todo with your life.'; | |
Loc[3,4].Enemy.Action := 'slaps you with his skateboard'; | |
Loc[3,4].Enemy.Run := 'Ha Ha you suck'; | |
Loc[3,4].Enemy.Offense := 'Yell I hate freshmen'; | |
Loc[3,4].Enemy.Win := 'I`m gonna go fall on my butt now.'; | |
Loc[3,5].Name := 'Sumerset'; | |
Loc[3,5].Description := 'Contains Food Lion and a video store. WOOOOOO!!!'; | |
Loc[3,5].Des2 := 'You have entered the realm of Programmer X'; | |
Loc[3,5].Enemy.Name := ''; | |
Loc[4,1].Name := 'Police Station'; | |
Loc[4,1].Description := 'There is a strong odor of bacon. Then you realize it`s because '; | |
Loc[4,1].Des2 := 'your at the police station. '; | |
Loc[4,1].Enemy.Description := 'A Cop is standing in front of the station looking at you like you are trouble.'; | |
Loc[4,1].Enemy.Difficulty := 70; | |
Loc[4,1].Enemy.Damage := 40; | |
Loc[4,1].Enemy.Name := 'A Pig'; | |
Loc[4,1].Enemy.Defeat := 'Mmmmmmm pork chops.'; | |
Loc[4,1].Enemy.Action := 'shoots you'; | |
Loc[4,1].Enemy.Run := 'Hey freeze or something'; | |
Loc[4,1].Enemy.Offense := 'Moon the Cop'; | |
Loc[4,1].Enemy.Win := 'Your under arrest you people ain`t nothing but trash. '; | |
Loc[4,2].Name := 'Huck Sansbury'; | |
Loc[4,2].Description := 'You have never seen so many preps and Mustangs in your life. '; | |
Loc[4,2].Des2 := 'Again you think to yourself "Don`t these people have lives, they just stand around in a parking lot." '; | |
Loc[4,2].Enemy.Description := 'Their are hundreds of preps moving around the place like cattle. '; | |
Loc[4,2].Enemy.Name := 'Mob of Preps'; | |
Loc[4,2].Enemy.Difficulty := 80; | |
Loc[4,2].Enemy.Damage := 35; | |
Loc[4,2].Enemy.Defeat := 'What a bunch of no life wusses.'; | |
Loc[4,2].Enemy.Action := 'slap you with the money their parents gave them'; | |
Loc[4,2].Enemy.Run := 'Yeah that`s what we thought.'; | |
Loc[4,2].Enemy.Offense := 'Yell "MUSTANGS SUCK!!!!"'; | |
Loc[4,2].Enemy.Win := 'Oh fooey I got dirty.'; | |
Loc[4,3].Name := 'Winn Dixie'; | |
Loc[4,3].Description := 'This is where one of the programmer`s work you better look out'; | |
Loc[4,3].Des2 := ''; | |
Loc[4,3].Enemy.Name := ''; | |
Loc[4,4].Name := 'Part Shop'; | |
Loc[4,4].Description := 'Another auto parts store. Need we say more. '; | |
Loc[4,4].Des2 :=''; | |
Loc[4,4].Enemy.Description := 'A Mustang pulls out and almost hits you. '; | |
Loc[4,4].Enemy.Name := 'Piece `o` S**t Mustang'; | |
Loc[4,4].Enemy.Difficulty := 80; | |
Loc[4,4].Enemy.Damage := 40; | |
Loc[4,4].Enemy.Defeat := 'Well at least that`s one less Mustang to count. '; | |
Loc[4,4].Enemy.Action := 'runs over you'; | |
Loc[4,4].Enemy.Run := 'VROOOOM PUT-PUT COUGH'; | |
Loc[4,4].Enemy.Offense := 'Get revenge on the Mustang'; | |
Loc[4,4].Enemy.Win := 'VROOOOOOOOOM PUT-PUT-PUT COUGH'; | |
Loc[4,5].Name := 'Homestead'; | |
Loc[4,5].Description := 'Best place to eat in this county.'; | |
Loc[4,5].Des2 := '(Shameless promotional plug by PROGRAMMER X'; | |
Loc[4,5].Enemy.Name := 'Bus Boy'; | |
Loc[4,5].Enemy.Description := 'Bus Boy is busing tables. DUHHH'; | |
Loc[4,5].Enemy.Difficulty := 70; | |
Loc[4,5].Enemy.Damage := 30; | |
Loc[4,5].Enemy.Defeat := 'Your service sucks.'; | |
Loc[4,5].Enemy.Action := 'throws you in the pond'; | |
Loc[4,5].Enemy.Run := 'Come back here so I can break some dishes above your head.'; | |
Loc[4,5].Enemy.Offense := 'YELL "Come clean this table now!!!"'; | |
Loc[4,5].Enemy.Win := 'I hope you drown in that pond!'; | |
Loc[5,1].Name := 'Depot Street'; | |
Loc[5,1].Description := 'Your surrounded by crack heads pimps and whores. '; | |
Loc[5,1].Des2 := 'This is where all the rejects from Durham come. '; | |
Loc[5,1].Enemy.Description := 'A crack head comes up and asks for some money.'; | |
Loc[5,1].Enemy.Name := 'Crack Head'; | |
Loc[5,1].Enemy.Difficulty := 75; | |
Loc[5,1].Enemy.Damage := 40; | |
Loc[5,1].Enemy.Defeat := ' Stupid crack head get yourself on a 12 step program.'; | |
Loc[5,1].Enemy.Action := 'tries to stab you with a crack needle'; | |
Loc[5,1].Enemy.Run := 'Hey man just a dollar is all I need.'; | |
Loc[5,1].Enemy.Offense := 'Take away his crack pipe'; | |
Loc[5,1].Enemy.Win := 'Yeah now I can get my dollar.'; | |
Loc[5,2].Name := 'Depot Street'; | |
Loc[5,2].Description := 'This area is controlled by the feared Craig Da Pimp. '; | |
Loc[5,2].Des2 := 'Watch where you go or you`ll run into him. '; | |
Loc[5,2].Enemy.Description := 'Sarah one of Craig`s women is working third shift.'; | |
Loc[5,2].Enemy.Name := 'Sarah'; | |
Loc[5,2].Enemy.Difficulty := 120; | |
Loc[5,2].Enemy.Damage := 55; | |
Loc[5,2].Enemy.Defeat := 'Damn and I had 20 bucks and a video camera.'; | |
Loc[5,2].Enemy.Action := 'karate chop`s you'; | |
Loc[5,2].Enemy.Run := 'Next time you better have the money!!'; | |
Loc[5,2].Enemy.Offense := 'Try to score with Sarah without paying'; | |
Loc[5,2].Enemy.Win := 'Next time you better pay up!!'; | |
Loc[5,3].Name := 'Depot Street(Craig`s Layer)'; | |
Loc[5,3].Description := 'This is Craig Da Pimp`s base of operation.'; | |
Loc[5,3].Des2 := 'But you don`t have to worry about him anymore.'; | |
Loc[5,3].Enemy.Name := ''; | |
Loc[5,4].Name := 'Citgo'; | |
Loc[5,4].Description := 'Cindy works this street. You better have a lot of money if oyu want some.'; | |
Loc[5,4].Des2 := ''; | |
Loc[5,4].Enemy.Description := 'Cindy is standing around looking good for all the guys.'; | |
Loc[5,4].Enemy.Name := 'Cindy the Mistress'; | |
Loc[5,4].Enemy.Difficulty := 115; | |
Loc[5,4].Enemy.Damage := 70; | |
Loc[5,4].Enemy.Defeat := 'She needed a career change anyway!'; | |
Loc[5,4].Enemy.Action := 'bites you'; | |
Loc[5,4].Enemy.Run := 'I`m gonna sick Craig on you next time.'; | |
Loc[5,4].Enemy.Offense := 'Try to hit on Cindy without money'; | |
Loc[5,4].Enemy.Win := 'Don`t mess with me again.'; | |
Loc[5,5].Name := 'Car Quest'; | |
Loc[5,5].Description := 'Yet another parts store. They need to build few more.'; | |
Loc[5,5].Des2 := 'You can never have enough parts stores.'; | |
Loc[5,5].Enemy.Description := 'There is another redneck working on his FORD truck.'; | |
Loc[5,5].Enemy.Name := 'Redneck'; | |
Loc[5,5].Enemy.Difficulty := 90; | |
Loc[5,5].Enemy.Damage := 40; | |
Loc[5,5].Enemy.Defeat := 'Chevy, Ford whats the big deal B YOTCH.'; | |
Loc[5,5].Enemy.Action := 'spits chewing tobacco in your eye'; | |
Loc[5,5].Enemy.Run := 'Come back here you some beach!'; | |
Loc[5,5].Enemy.Offense := 'Call the redneck a Chevy-Lover'; | |
Loc[5,5].Enemy.Win := 'YEE HAW Ford forever!!'; | |
END; | |
PROCEDURE Title; | |
(* The title screen procedure *) | |
VAR | |
Adapter, | |
Mode, | |
Count : Integer; | |
Blank : String; | |
Begin | |
Adapter := CGA; | |
Mode := CGAC3; | |
Initgraph(Adapter, Mode, 'A:\EFHELL'); | |
Setbkcolor(black); | |
Setcolor(3); | |
Outtextxy(35, 20, 'Escape From....'); | |
moveto(15, 45); | |
linerel(0, 100); (* The next several lines control the drawing *) | |
linerel(20, 0); (* of the word HELL and filling it in. *) | |
linerel(0, -40); | |
linerel(30, 0); | |
linerel(0, 40); | |
linerel(20, 0); | |
linerel(0, -100); | |
linerel(-20, 0); | |
linerel(0, 40); | |
linerel(-30, 0); | |
linerel(0, -40); | |
linerel(-20, 0); | |
floodfill(16, 46, 3); | |
moveto(105, 45); | |
linerel(0, 100); | |
linerel(53, 0); | |
linerel(0, -20); | |
linerel(-33, 0); | |
linerel(0, -20); | |
linerel(27, 0); | |
linerel(0, -20); | |
linerel(-27, 0); | |
linerel(0, -20); | |
linerel(33, 0); | |
linerel(0, -20); | |
linerel(-53, 0); | |
floodfill(116, 46, 3); | |
moveto(175, 45); | |
linerel(0, 100); | |
linerel(40, 0); | |
linerel(0, -20); | |
linerel(-20, 0); | |
linerel(0, -80); | |
linerel(-20, 0); | |
floodfill(186, 46, 3); | |
moveto(225, 45); | |
linerel(0, 100); | |
linerel(40, 0); | |
linerel(0, -20); | |
linerel(-20, 0); | |
linerel(0, -80); | |
linerel(-20, 0); | |
floodfill(226, 46, 3); (* End of drawing section *) | |
outtextxy(35, 160, 'Programmers:'); | |
outtextxy(40, 172, 'David Mitchell, Glen Newsome,'); | |
outtextxy(47, 181, 'and Craig Zglinski'); | |
Delay(10000); | |
CloseGraph; | |
End; | |
PROCEDURE MoveRight (VAR PositionColumn, PosGrid : Integer); | |
BEGIN | |
IF PositionColumn < 5 | |
THEN PositionColumn := PositionColumn + 1 | |
ELSE | |
BEGIN | |
Writeln('You can`t go that far'); | |
DELAY(100); | |
END; | |
END; | |
PROCEDURE MoveLeft (VAR PositionColumn, PosGrid : Integer); | |
BEGIN | |
IF PositionColumn > 1 | |
THEN | |
PositionColumn := PositionColumn - 1 | |
ELSE | |
BEGIN | |
Writeln('You have hit the city limits but there isn`t much out there you decide to go somewhere else.'); | |
DELAY(20000); | |
END; | |
END; | |
PROCEDURE MoveUp (VAR PosSector, PosRow : Integer); | |
BEGIN | |
IF PosRow > 1 | |
THEN PosRow := PosRow - 1 | |
ELSE | |
BEGIN | |
Writeln('That`s far enough you don`t want to get lost.'); | |
DELAY(20000); | |
END; | |
END; | |
PROCEDURE MoveDown (VAR PosSector, PosRow : Integer); | |
BEGIN | |
IF PosRow < 5 | |
THEN PosRow := PosRow + 1 | |
ELSE | |
BEGIN | |
Writeln('You have gone a little far south, better go back.'); | |
DELAY(20000); | |
END; | |
END; | |
PROCEDURE Boss1 (VAR Experience, Health, Damage, Boss : Integer); | |
Var | |
Attack, Enmhealth, enmattack,runway : integer; | |
response : char; | |
Name, Action1, taunt, taunt2 : String[60]; | |
Label 4; | |
Begin | |
clrscr; | |
randomize; | |
Name := 'Pimpdaddy Craig Z'; | |
Action1 := 'pimp slaps you unrelentingly'; | |
taunt2 :='"Go sell drugs...its safer!"'; | |
taunt :=('"Thats what you get for messing with my merchandise!"'); | |
writeln(Name, ' approaches, you do you attack? (y/n)?'); | |
readln (response); | |
enmhealth := 220; | |
While ((response = 'y') or (response = 'Y')) and ((enmhealth > 0) and (health > 0)) do | |
Begin | |
IF (NOT ((response = 'n') OR (response = 'N'))) | |
THEN | |
BEGIN | |
writeln('Your Health: ',health,' Enemy Health : ',enmhealth); | |
Attack := random (10) +4; | |
enmhealth := enmhealth - (attack + (Experience DIV 5) + Damage); | |
writeln('You hit ', Name, ' for ', (attack + (Experience DIV 5) + Damage),' damage'); | |
IF enmhealth > 0 THEN | |
BEGIN | |
Enmattack := random (10) +5; | |
IF (enmattack <= 3) THEN | |
Writeln(Name, ' ', action1, ' for ',enmattack,' damage'); | |
IF (Enmattack >= 4) AND (Enmattack <= 6) THEN | |
Writeln(name, 's unrelenting pimp slapping kinda hurts you for ',enmattack, ' damage.'); | |
IF (enmattack >= 7) AND (Enmattack <= 9) THEN | |
BEGIN | |
Writeln(name, 's unrelenting pimp slapping HURTS LIKE HECK! It does ', enmattack); | |
Writeln('damage!'); | |
END; | |
IF Enmattack >= 10 THEN | |
BEGIN | |
Writeln(name, 's unrelenting pimp slapping does UNSPEAKABLE things to you!'); | |
Writeln('You are out ', enmattack, ' health!'); | |
END; | |
health := health - enmattack; | |
goto 4; | |
4: | |
BEGIN | |
IF (enmhealth > 0) and (health > 0) then | |
writeln('attack again?? (y/n)? '); | |
IF (Enmhealth > 0) and (health > 0) | |
THEN readln(response) | |
ELSE response := 'm'; | |
END; | |
END; | |
IF Enmhealth <=0 THEN | |
BEGIN | |
writeln('You killed ', Name, '.'); | |
writeln('Thats what ', name, ' gets for challening you! Good job!!'); | |
writeln(Taunt2,' you scream at ',name); | |
Boss := Boss + 1; | |
END; | |
IF health <= 0 | |
THEN | |
begin | |
writeln('You were killed by ', Name ); | |
writeln(taunt,' ',name); | |
writeln('screams at you!'); | |
end; | |
END; | |
END; | |
IF (Response = 'n') or (response = 'N') | |
THEN | |
begin | |
runway := random(4) + 1; | |
health := health - runway; | |
Writeln('Like a little girlie man you TRY to run away'); | |
writeln('However, ', name, ' yells at you, "Wanna Leave?!? I pimp slap you some'); | |
writeln('more!" And you take ', runway, ' damage'); | |
goto 4; | |
end; | |
end; | |
PROCEDURE Boss2 (VAR Experience, Health, Damage, Boss : Integer); | |
Label 1; | |
VAR | |
attack, runway, Enmhealth, temp, enmattack : integer; | |
response : char; | |
Name : String[15]; | |
Action1 : String[30]; | |
taunt2 : String[255]; | |
taunt : String[255]; | |
taunt3 : String[255]; | |
Begin | |
clrscr; | |
randomize; | |
Name := 'Programmer X'; | |
Action1 := 'clubs you with a charred midget'; | |
taunt2 :='YES I AM UNSTOPABLE!!!'; | |
taunt :=('"That is what you get for daring to challenge me FOOL!!!!"'); | |
writeln(Name, ' approaches, you do you attack? (y/n)?'); | |
readln (response); | |
enmhealth := 200; | |
While ((response = 'y') or (response = 'Y')) and ((enmhealth > 0) and (health > 0)) do | |
Begin | |
IF (NOT ((response = 'n') OR (response = 'N'))) | |
THEN | |
BEGIN | |
writeln('Your Health: ',health,' Enemy Health : ',enmhealth); | |
Attack := random (12) + 4; | |
enmhealth := enmhealth - (attack + (Experience DIV 5) + Damage); | |
writeln('You hit ', Name, ' for ',attack,' damage'); | |
IF enmhealth > 0 THEN | |
BEGIN | |
Enmattack := random (10) +4; | |
IF (enmattack <= 3) THEN | |
Writeln(Name, ' ', action1, ' for ',enmattack,' damage'); | |
IF (Enmattack >= 4) AND (Enmattack <= 6) THEN | |
Writeln(name,' clubs you with a charred midget which hurts a little for ',enmattack, ' damage.'); | |
IF (enmattack >= 7) AND (Enmattack <= 9) THEN | |
BEGIN | |
Writeln(name, ' clubs you with a charred midget and it HURTS LIKE HECK! It does ', enmattack); | |
Writeln('damage!'); | |
END; | |
IF Enmattack >= 10 THEN | |
BEGIN | |
Writeln(name, ' clubs you with a charred midget an it does VERY BAD THINGS to you!'); | |
Writeln('You are out ', enmattack, ' health!'); | |
END; | |
health := health - enmattack; | |
goto 1; | |
1: | |
BEGIN | |
IF (enmhealth > 0) and (health > 0) then | |
writeln('Your Health: ',health,' Enemy Health : ',enmhealth); | |
writeln('Do you dare attack again?? (y/n)? '); | |
IF (Enmhealth > 0) and (health > 0) | |
THEN readln(response) | |
ELSE response := 'm'; | |
END; | |
END; | |
IF Enmhealth <=0 THEN | |
BEGIN | |
writeln('You have killed ', Name, '.'); | |
writeln('Thats what ', name, ' gets for challening you! Good job!!'); | |
writeln(Taunt2,' you scream at ',name); | |
Boss := Boss + 1; | |
Experience := Experience + 20; | |
END; | |
IF health <= 0 | |
THEN | |
begin | |
writeln('You were killed by ', Name ); | |
writeln(taunt,' ',name); | |
writeln('screams at you!'); | |
end; | |
END; | |
END; | |
IF (Response = 'n') or (response = 'N') | |
THEN | |
begin | |
runway := random(4) + 1; | |
health := health - runway; | |
Writeln('Like a little girlie man you TRY to run away'); | |
writeln('However, ', name, ' yells at you, "There is no escaping me!!"'); | |
writeln('and he clubs you with a frozen midget and you take ', runway, ' damage'); | |
goto 1; | |
end; | |
end; | |
PROCEDURE Fight (VAR Location : LocGrid; VAR PosSector, PosRow, PosColumn, Experience, Health, Damage : Integer); | |
Var | |
attack, runway, Enmhealth, temp, enmattack : integer; | |
response : char; | |
Name : String[35]; | |
Action : String[70]; | |
taunt2 : String[255]; | |
taunt : String[255]; | |
taunt3 : String[255]; | |
Begin | |
randomize; | |
Name := Location[PosRow, PosColumn].Enemy.Name; | |
EnmHealth := Location[PosRow, PosColumn].Enemy.Difficulty; | |
Enmattack := Location[PosRow, PosColumn].Enemy.Damage; | |
Action := Location[PosRow, PosColumn].Enemy.Action; | |
taunt2 := Location[PosRow, PosColumn].Enemy.Run; | |
taunt := Location[PosRow, PosColumn].Enemy.Defeat; | |
Taunt3 := Location[PosRow, PosColumn].Enemy.Win; | |
Temp := EnmHealth; | |
writeln(Name, ' approaches you do you attack? (y/n)?'); | |
readln (response); | |
While ((response = 'y') or (response = 'Y')) and ((enmhealth > 0) and (health > 0)) do | |
Begin | |
IF (NOT ((response = 'n') OR (response = 'N'))) | |
THEN | |
BEGIN | |
writeln('Your Health: ',health,' Enemy Health : ',enmhealth); | |
Attack := random (6) +4; | |
enmhealth := enmhealth - (attack + (Experience DIV 5) + Damage); | |
writeln('You hit ', Name, ' for ',attack + (Experience DIV 5) + Damage,' damage'); | |
IF enmhealth > 0 | |
THEN | |
BEGIN | |
Enmattack := random (5) +4; | |
writeln(Name, ' ', action, ' for ',enmattack,' damage'); | |
health := health - enmattack; | |
END | |
ELSE | |
BEGIN | |
writeln('You killed ', Name, '.'); | |
writeln('Thats what ', name, ' gets for challening you! Good job!!'); | |
writeln(Taunt,' you scream at ',name); | |
Health := Health + 10; | |
Writeln('Your health: ', Health); | |
Location[PosRow, PosColumn].Enemy.Name := ''; | |
Temp := Temp - 5; | |
Experience := Experience + Random(Temp); | |
END; | |
IF health <= 0 | |
THEN | |
begin | |
writeln('You were killed by ', Name ); | |
writeln(taunt3,' ',name,' screams at you'); | |
end; | |
IF (enmhealth > 0) and (health > 0) then | |
writeln('Attack again?? (y/n)? '); | |
IF (Enmhealth > 0) and (health > 0) | |
THEN readln(response) | |
ELSE response := 'm'; | |
END; | |
END; | |
IF (Response = 'n') or (response = 'N') | |
THEN | |
begin | |
runway := random(3) + 1; | |
health := health - runway; | |
Writeln('Like a little girlie man turn around and run away'); | |
writeln('In your haste to get away you take ', runway, ' damage'); | |
writeln(name,' yells at you "',taunt2,'"'); | |
END; | |
Delay(20000); | |
END; | |
BEGIN (* RoxboroRumble *) | |
Randomize; | |
Area := 1; | |
Row := 1; | |
Column := 1; | |
Boss := 0; | |
Response := ' '; | |
SetArray(Grid, Guy); | |
Exp := 30; | |
Damage := Guy.Inventory[1].WeaponDamage; | |
Health := 25; | |
Title; | |
WHILE NOT((Response = 'x') OR (Response = 'X')) DO | |
BEGIN | |
Damage := Guy.Inventory[1].WeaponDamage; | |
Writeln('Location: ', Grid[Row,Column].Name); | |
Mustangs := Random(500); | |
Write('You see ', Mustangs, ' Ford Mustangs,'); | |
IF Mustangs > 99 | |
THEN Writeln(' you think to yourself that Roxboro has way too many Mustangs.') | |
ELSE Writeln(' you are really getting sick of seeing that car.'); | |
Writeln('---------------------------------------------------------------------'); | |
Write(Grid[Row,Column].Description); | |
Write(Grid[Row,Column].Des2); | |
IF NOT(Grid[Row,Column].Enemy.Name = '') THEN Write(Grid[Row,Column].Enemy.Description); | |
Writeln; | |
Writeln('---------------------------------------------------------------------'); | |
Writeln('Your Experience: ', Exp, ' Your Health: ', Health); | |
IF (Row = 3) AND (Column = 5) THEN Boss2(Exp, Health, Damage, BossCount); | |
IF (Row = 5) AND (Column = 3) THEN Boss1(Exp, Health, Damage, BossCount); | |
IF (Row = 2) AND (Column = 2) THEN Health := Health + 5; | |
IF (Row = 3) AND (Column = 1) | |
THEN | |
BEGIN | |
Health := Health + 3; | |
Damage := 5; | |
END; | |
IF BossCount = 2 THEN Goto 3; | |
IF Health <= 0 THEN Goto 2; | |
Writeln('YOUR LIMITED OPTIONS (There ain`t much to do in Roxboro):'); | |
Writeln('8 - Move North'); | |
Writeln('4 - Move West'); | |
Writeln('6 - Move East'); | |
Writeln('2 - Move South'); | |
IF NOT(Grid[Row, Column].Enemy.Name = '') | |
THEN Writeln('5 - ',Grid[Row, Column].Enemy.Offense); | |
Writeln ('X - Quit Game'); | |
Readln(Response); | |
CASE Response OF | |
'8' : MoveUp(Area, Row); | |
'4' : MoveLeft(Column, Area); | |
'6' : MoveRight(Column, Area); | |
'2' : MoveDown(Area, Row); | |
'5' : IF NOT(Grid[Row, Column].Enemy.Name = '') THEN Fight(Grid, Area, Row, Column, Exp, Health, Damage); | |
END; | |
IF Health <= 0 THEN Goto 2; | |
CLRSCR; | |
END; | |
2 : IF NOT((Response = 'X') OR (Response = 'x')) THEN Writeln('Game Over You Suck!!!!'); | |
3 : IF NOT((Health <= 0) OR ((Response = 'X') OR (Response = 'x'))) THEN Writeln('You win!!! You are da man!!!'); | |
IF (Response = 'X') OR (Response = 'x') THEN Writeln('You suck for quitting such a cool game.'); | |
Delay(20000); | |
END. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment