Tutorial: Text-Based DOS Game, Code Breakdown

Alright, so lets take a look at our code. I’ll break it down into sections so we can discuss individual areas of code and game mechanics.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
color F0
echo.    
echo.    
echo                   ,     \    /      ,        
echo                  / \    )\__/(     / \      
echo                 /   \  (_\  /_)   /   \      
echo            ____/_____\__\@  @/___/_____\____
echo           ^|             ^|\../^|              ^|
echo           ^|              \VV/               ^|
echo           ^|       Guardians of Dale         ^|
echo           ^|_________________________________^|
echo            ^|    /\ /      \\       \ /\    ^|
echo            ^|  /   V        ))       V   \  ^|
echo            ^|/     `       //        '     \^|  (Art: asciiart.eu)
echo            `              V                '
echo.
echo Mayor: "Welcome, Guardian. May I have your name?"
echo      (Enter your name and press Enter)
echo.
set /p playername=

So “@echo off” turns off all the ugly CMD formatting such as file directories.

color F0” makes the background white and the text black. The first character is the background, in this case, “F”. The second character is the text color, in this case, “0”. Very similar to the HTML color codes for black and white, “#000000” and “#FFFFFF” respectively.

Here’s a handy chart to choose colors from SS64.com

Next we have a bunch of “echo” lines that essentially just display text. We use this to create our game’s logo (a dragon courtesy of asciiart.eu), our title, and a quick welcome from our town’s Mayor. However, we need to remember that “|” characters will end our script. So we need to escape them using a carrot “^“. I used the “Find and Replace” tool in Notepad to replace all instances of “|” with “^|” and it displayed perfectly.

Finally, we have “set /p playername=“. This one is important! This is how we get player input and start saving variables. We use “set” to set the variable, “/p” to reference it as a user-prompt, and “playername=” to reference our new variable, “playername”. Once the user types their name and presses enter, the variable is set, and the game moves on to the next piece of code.


1
2
3
4
5
6
7
8
9
10
11
12
cls
set /a gp=0
set /a health=100
set /a mana=10
set /a ratskilled=0
set head=None
set body=None
set weapon=Fist
set /a weapondmg=5
set /a daleliar="0"
set /a quest1complete=0
SET /A RAND=%RANDOM%%%100+1

Next, we have “cls”, which clears the game window of any dialog or text. I also use this spot to keep track of and set defaults for all of our game’s variables.

Here is a breakdown of what they do.

  • gp: Gold Pieces
  • health: Player Health
  • mana: Player Mana
  • ratskilled: Quest Progress Tracker, “How many rats have been killed inside the Rations Shop?”
  • head: Inventory, Head Piece
  • body: Inventory, Armor
  • weapon: Inventory, Weapon (Default set to “Fist”)
  • weapondmg: Weapon Attack Damage
  • daleliar: Quest Progress, “Did you lie to the mayor?”
  • quest1complete: Quest Progress, “Have you completed the first quest?”
  • RAND: Chooses a random number between 1 and 100. The “100” can be changed to any number. The “+1” ensures it never chooses “0”. So to choose a number between 1 and 15, you would use “%RANDOM%%%15+1”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:HOME
echo Mayor: "Hello, %playername%! I'm so glad you're here! Our town has been attacked almost weekly!"
echo.
echo 1. "What has been attacking you?"
echo 2. "No problem! I'll take care of whatever you're up against."
echo 3. "I have no reason to help you... what's in it for me?"

set /p willhelp1=

if '%willhelp1%'=='1' goto QUESTION1
if '%willhelp1%'=='2' goto LETSGO1
if '%willhelp1%'=='3' goto DENY1
if '%willhelp1%'=='4' goto SW

goto HOME

Now we have the “:HOME” title. This will allow us to use the “goto” function to go directly to this section.

We follow this up with some words from our Mayor, which includes variables such as “%playername%” to make the wording more personal. We also give the player various options.

The “set /p willhelp=” is where the user gets to enter the option o their choice.

Options 1-3 go to the next sections, which options 4 is an easter-egg I created for May the 4th, which we’ll get into shortly.

Finally, “goto HOME” will return us back to the question in case anyone manages to answer something NOT listed.


1
2
3
4
:SW

Telnet Towel.blinkenlights.nl
goto SW

Choosing #4 will take you to a secret Star Wars themed easter-egg that plays an ASCII text version of the movie. This uses an old telnet trick to connect and stream the text from the server.


1
2
3
4
5
6
7
8
9
10
11
12
13
:QUESTION1
cls
echo Mayor: "I guess that's pretty important... we've been visited fortnightly by a large green dragon. Can you help?"
echo.
echo 1. "Let's do this!"
echo 2. "Forget it!"

set /p willhelp1=

if '%willhelp1%'=='1' goto LETSGO1
if '%willhelp1%'=='2' goto DENY1

goto QUESTION1

Answering “QUESTION1” will clear the screen and give some new options. We learn that a dragon has been attacking the town. We can now choose to help (LETSGO1) or turn down helping (DENY1).


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:DENY1
cls
echo Mayor: "Of course, we wouldn't expect you to assist us without proper compensation. Prove to us you've killed the dragon and we'll reward you handsomely.
echo Here's a few gold coins to get you started."
echo.
set /a gp = gp + 50
echo You receive 50gp. You now have %gp%gp total.
echo.
echo 1. "Fair enough... Let's do this!"

set /p willhelp1=

if '%willhelp1%'=='1' goto LETSGO1

goto DENY1

If you choose to deny the mayors request, the mayor will actually offer you an extra reward. A few gold coins to get us started, and our first big use of variables!

“set /a gp = gp + 50” will set our Gold Pieces to whatever our current amount of Gold Pieces is, plus 50. We then echo feedback to the player with “You now have “%gp%gp” which translates to 50gp.


1
2
3
4
5
6
7
8
9
10
11
12
13
:LETSGO1
cls
echo Mayor: "THANK YOU! I knew I could count on you. We think he's just beyond the hills. You may want to head into town to get equipment first."
echo.
echo 1. Go into town.
echo 2. Head to the dragon.

set /p direction2=

if '%direction2%'=='1' goto TOWN_DALE
if '%direction2%'=='2' goto HILLS

goto LETSGO1

Finally, when you agree to go assist the town, you can either head to the town (TOWN_DALE) or head to the hills (HILLS).


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
:TOWN_DALE
cls
echo            ___________________
echo           ^|                  ^|         Equipment
echo           ^|     Welcome      ^|         _______
echo           ^|     to DALE      ^|        
echo           ^|                  ^|         Head: %head%
echo           ^|__________________^|         Body: %body%
echo                    ^|   ^|               Weapon: %weapon%
echo                    ^|   ^|
echo                    ^|   ^|
echo                    ^|   ^|
echo \      ./  /      \^|___^|/.     /   \          / /
echo __________________________________________________________
echo.
echo          You have %gp%gp, %health% HP, and %mana% mana.
echo __________________________________________________________
echo.
echo You enter a bustling town full of shops, entertainment, and housing.
echo.
echo 1. Go to the shops.
echo 2. Listen to the town bard.
echo 3. Speak to the townspeople.
echo 4. Leave town.
echo 5. [Save Game]
echo 6. [Load Game]
echo.
set /p daleoptions=
echo.
if '%daleoptions%'=='1' goto SHOP
if '%daleoptions%'=='2' goto CONCERT
if '%daleoptions%'=='3' goto TOWNSPEOPLE
if '%daleoptions%'=='4' goto HILLS
if '%daleoptions%'=='5' goto SAVE
if '%daleoptions%'=='6' goto LOAD

goto TOWN_DALE

So we’ve made it to town! Along with the ascii art town sign, we also have the makings of an Inventory and User Interface. We can see our Equipment, gold, health, and mana referenced through variables.

From here we can choose to go to the “SHOP”, “Town Bard”, “Townspeople”, “Leave Town”, and our fancy features, “Load Game” and “Save Game”.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
:SAVE
echo Writing attributes to file...
echo.
@echo @ECHO OFF> %playername%.bat
echo Saving gold...
@echo set /a gp=%gp% >> %playername%.bat
echo Saving player name...
@echo set playername=%playername% >> %playername%.bat
echo Saving mana...
@echo set /a mana=%mana% >> %playername%.bat
echo Saving quest progress...
@echo set /a ratskilled=%ratskilled% >> %playername%.bat
@echo set /a daleliar=%daleliar% >> %playername%.bat
@echo set /a quest1complete=%quest1complete% >> %playername%.bat
echo Saving Inventory...
@echo set head=%head% >> %playername%.bat
@echo set body=%body% >> %playername%.bat
@echo set weapon=%weapon% >> %playername%.bat
@echo set /a weapondmg=%weapondmg% >> %playername%.bat
echo.
echo Complete.
echo.
echo Game Saved.
echo.
pause
goto TOWN_DALE

So this section is our save function. “@echo @ECHO OFF > %playername%.bat” creates batch file using the player’s name. This allows us to support multiple save game files. We then use “@echo set /a gp=%gp% >> %playername%.bat” for each attribute. This one for example saves the players GP. Here’s what the resulting save game file looks like after.


1
2
3
4
5
6
7
8
9
10
11
@ECHO OFF
set /a gp=500
set playername=Mike
set /a mana=10
set /a ratskilled=3
set /a daleliar=0
set /a quest1complete=0
set head=None
set body=None
set weapon=Fist
set /a weapondmg=5

You’ll notice it saves “set /a” as text within the file, this is because when we load or call the file, it needs to run them all to set the attributes.


1
2
3
4
5
6
:LOAD
cls
call %playername%.bat
echo Game loaded!
pause
goto TOWN_DALE

Loading is much easier. We simply use “call %playername%.bat” to open up the player’s save file (if it exists) and runs all of the code. After running the code, it goes back into town to display your new stats. “pause” also stops the code and waits for the user to hit space or enter to continue.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:TOWNSPEOPLE
cls
echo You walk into the town center and look around. You see various townspeople milling about.
echo.
echo 1. Talk to the Mayor.
echo 2. Talk to Yaneli.
echo 3. Talk to Rustov.
echo 4. Go back.

set /p townspeopleoptions=
echo.
if '%townspeopleoptions%'=='1' goto MAYORDALE
if '%townspeopleoptions%'=='2' goto YANELI
if '%townspeopleoptions%'=='3' goto TOWNSPEOPLE
if '%townspeopleoptions%'=='4' goto TOWN_DALE

goto TOWNSPEOPLE

This is simply another dialog box where the player can choose who to talk to.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
:MAYORDALE

cls
IF "%daleliar%"=="0" (
echo Mayor: "Hello again, %playername%, how can I help you? Any news about our dragon problem?"
) ELSE (
echo Mayor: "Oh, it's you... what do you want?"
)
echo.
echo 1. "Just stocking up on equipment before I go."
echo 2. "Yeah, uhh, all taken care of!"
echo 3. Go Back
IF "%daleliar%"=="0" (
echo 4. "I could use an advance on that reward, I may need some equipment before I go." )

set /p mayoroptions1=

if '%mayoroptions1%'=='1' goto MAYORDALE1
if '%mayoroptions1%'=='2' goto MAYORDALE2
if '%mayoroptions1%'=='3' goto TOWNSPEOPLE
if '%mayoroptions1%'=='4' goto MAYORDALE4

goto MAYORDALE

So now we get into IF and ELSE statements. Here, we check to see if the Mayor of Dale thinks you’re a liar using “IF “%daleliar%”==”0” (” If you’ve triggered this variable, he’ll be a bit course with you and say “Oh, it’s you…” while also disabling the fourth option which allows you to ask for a reward. This variable is also triggered when you request an advance from the Mayor at the beginning of the game.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
:MAYORDALE1
cls
echo Mayor: "Ok, well come see me once you have. We're all counting on you."
echo.
pause

goto MAYORDALE

:MAYORDALE2
cls
set /a daleliar="1"
echo Mayor: "We don't take kindly to liars around here, %playername%. This is a serious issue."
echo.
pause

goto MAYORDALE

:MAYORDALE4
cls
echo Mayor: "Alright, I had assumed you already had your own equipment, but I suppose I could give you an advance on your reward."
echo.
set /a daleliar="1"
set /a gp = gp + 25
echo You recieve 25gp. You now have %gp%gp.
pause

goto MAYORDALE

The options are fairly standard at this point, but we give the player some extra GP if you choose option 4. This also sets “daleliar” to 1 to avoid allowing the player to revisit this option.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
:YANELI
cls
IF %ratskilled% GTR 2 (
echo Thank you so much! Come visit me at the Rations shop for your reward.
echo.
pause
goto TOWN_DALE
) ELSE (
echo Yaneli: "Hey, hey you! %playername%, right? I could use a bit of help at my shop, would you be willing to help?"
echo.
echo 1. Sure, what's the problem?
echo 2. No thanks, I don't have time for odd jobs.
echo.
)
set /p yaneli1=

if '%yaneli1%'=='1' goto YANELIQUEST
if '%yaneli1%'=='2' goto TOWNSPEOPLE

goto YANELI

Yaneli is our first quest-line. If you’ve completed the quest (kill 3 or more rats in the shop) she’ll ask you to head to the shop for your reward. Otherwise, she asks if you’d like to help her with the quest.


1
2
3
4
5
6
7
8
9
:YANELIQUEST

cls
echo Yaneli: "Oh, good! I own the Rations Shop in town. We've got a bit of a rat problem, and I'd much prefer nobody found out. There's an entrance to the basement inside. Please head down and kill at least 3 before returning."
echo.
echo 1. You can count on me!
echo.
pause
goto TOWNSPEOPLE

Accepting the quest tells the user what to do and sends you back to town.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:SHOP
cls
echo You walk into the town square and see various shops along the main road.
echo.
echo 1. Go to Blacksmith
echo 2. Go to the Rations Shop
echo 3. Go to "Potters Potions"
echo 4. Go back to town.
echo.

set /p shopchoice=

if '%shopchoice%'=='1' goto blacksmith
if '%shopchoice%'=='2' goto rations
if '%shopchoice%'=='3' goto potters
if '%shopchoice%'=='4' goto TOWN_DALE

goto SHOP

This one is pretty simple. It allows the user to make a choice between various shops in the town.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
:BLACKSMITH
cls

echo You enter the Blacksmith shop. You see various crude steel swords and armor pieces. A rugged-looking elder dwarf approaches.
echo.
echo Tribyjorn: "The names Tribyjorn, what might ye be looking for?"
echo.
echo 1. Show me your wares.
echo 2. Just browsing.
echo.
set /p blacksmithchoice=

if '%blacksmithchoice%'=='1' goto BLACKSMITHINVENTORY
if '%blacksmithchoice%'=='2' goto TOWN_DALE

goto BLACKSMITH

Similarly, the Blacksmith shop allows you to either purchase goods, or leave.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
:BLACKSMITHINVENTORY
cls
echo You currently have %gp%gp.
echo.
echo Tribyjorn: "Ah, you come looking for weapons? A helm, perhaps?"
echo.
echo 1. Short Sword - 50gp
echo 2. Iron Helmet - 100gp
echo 3. Studded Leather Armor - 150gp
echo 4. "Nothing for now, thanks."

set /p blacksmithpurchase=

if '%blacksmithpurchase%'=='1' goto BUYSWORD
if '%blacksmithpurchase%'=='2' goto BUYHELM
if '%blacksmithpurchase%'=='3' goto BUYARMOR
if '%blacksmithpurchase%'=='4' goto TOWN_DALE

goto BLACKSMITHINVENTORY

Here we finally give the user some choices for weapons and armor. We show how much gold the user currently has and offer up options for purchase.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
:BUYSWORD
cls
IF %gp% GEQ 50 (
set /a gp = gp - 50
set weapon=Short Sword
set /a weapondmg=20
echo Tribyjorn: "It's dangerous to go alone... take this."
echo.
echo You recieve a Short Sword.
pause
) ELSE (
echo Tribyjorn: "Sorry, you don't have enough for that..."
echo.
pause
)
goto BLACKSMITH

Here we use IF statements to check if we have enough gold to purchase this sword. When dealing with number attributes, we use “CompareOp”, or comparison operators, as listed below.

  • EQU Equal to
  • NEQ Not equal to
  • LSS Less than
  • LEQ Less than or equal to
  • GTR Greater than
  • GEQ Greater than or equal to

So in this case, we check if the player’s current gold is GEQ, greater than or equal to, 50. If it is, it subtracts 50gp from the player and sets the proper weapon and weapondmg modifiers. It also gives a fun Zelda reference. If the player doesn’t have enough gold, everything stays the same and the user is told they don’t have enough for that.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
:BUYHELM
cls
IF %gp% GEQ 100 (
set /a gp = gp - 100
set head=Iron Helmet
echo Tribyjorn: "A fine choice. Please come again."
echo.
echo You recieve an Iron Helmet.
pause
) ELSE (
echo Tribyjorn: "Sorry, you don't have enough for that..."
echo.
pause
)
goto BLACKSMITH

:BUYARMOR
cls
IF %gp% GEQ 150 (
set /a gp = gp - 150
set body=Studded Leather Armor
echo Tribyjorn: "A fine choice. Please come again."
echo.
echo You recieve a Studded Leather Armor.
pause
) ELSE (
echo Tribyjorn: "Sorry, you don't have enough for that..."
echo.
pause
)
goto BLACKSMITH

The helmet and armor are very similar to the sword. They check if the user has enough gold, and allow or disallow the sale as necessary.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
:RATIONS
cls
echo Yaneli: "Oh, hello again %playername%. Come to assist with our... little problem?"
echo.
echo You've currently killed %ratskilled% rodents.
echo.
echo 1. "It's clobberin' time!" [head to basement]
echo 2. "Actually, not just yet."
IF %ratskilled% GTR 2 (

echo 3. "Already done!"

)
echo.
set /p rationschoice=

if '%rationschoice%'=='1' goto RATIONSBASEMENT
if '%rationschoice%'=='2' goto SHOP
if '%rationschoice%'=='3' goto QUEST1REWARD

goto RATIONS

Here we can choose to go down to the basement to kill rats for our quest reward. The code checks how many rats the player has killed. If it’s greater (GTR) than 2, you can choose to go to your quest reward.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
:QUEST1REWARD
IF %quest1complete% EQU 0 (  
cls
echo Yaneli: "Thank you so much! Here's your reward.:
set /a gp = gp + 50
set /a quest1complete="1"
echo You receive 50gp! You now have %gp%gp.
pause
goto RATIONS
) ELSE (
cls
echo "You've already completed this quest..."
pause
pause
)
pause
goto RATIONS

Here the code checks if the quest has been completed, and if so, rewards the player with 50gp and sets the “quest1complete” variable to “1”. Otherwise it will tell the user they have already completed the quest.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
:RATIONSBASEMENT
cls
echo You enter a basement. You can see a bit of damage from the infestation.
echo.
pause
cls
echo You encountered a SMALL RAT!
echo.
color C0
@echo off
ping localhost -n 2 >NUL
color 04
@echo off
ping localhost -n 2 >NUL
color C0
@echo off
ping localhost -n 2 >NUL
color 04
@echo off
ping localhost -n 2 >NUL
color F0
pause
set /a rathp=50
goto RAT

Here’s where things get interesting again! Here is the start to an enemy encounter with animations. After encountering the rat, we turn off @ECHO and use the “PING” command to pause the game shortly. We use the color command to change from a black to red background and back again. Finally, after flashing between each and pausing, the rat’s HP is set to 50, and you are taken to the “RAT” title.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
:RAT
cls
IF %rathp% LEQ 1 (
cls
goto WIN
) else (
color 04
echo.
echo You currently have %health% HP.
echo.
echo               ^(\_/^)
echo       .-""-.-.-' a\        Small Rat
echo      /  \      _.--'       HP: %rathp%
echo     ^(\  /_---\\_\_
echo      `'-.
echo       ,__^)        ^(Art by "jgs"^)
echo.
echo.
echo 1. Attack with %weapon%.
echo 2. Run Away
echo.
)
set /p battlerat=

if '%battlerat%'=='1' goto ATTACKRAT
if '%battlerat%'=='2' goto RATIONS

goto RAT

So now we’re at the enemy rat screen. First we check if the rat’s HP is less than 1, and if so, declare that the user has won and take them to the “WIN” screen. Otherwise, continue the encounter.

You’re able to see the rat’s graphic, the rat’s current HP, and your current HP. You can choose to attack, or run away.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:ATTACKRAT
echo off
SET /A DMG=%RANDOM%%%%weapondmg%+1
echo off
set /a rathp=%rathp% - DMG
echo You attack with your %weapon% doing %DMG% damage.
echo.
color C0
@echo off
ping localhost -n 2 >NUL
color 04
@echo off
ping localhost -n 2 >NUL
echo.
goto RATSTURN

When you attack the rat, it chooses a random number between 1 and your current max “weapondmg”. Then is subtracts the weapon damage from the rat’s current HP. This is echoed to the player visually. Another color flash animation is played and you’re taken to the rat’s turn.


1
2
3
4
5
6
7
8
9
10
11
12
13
:RATSTURN
SET /A DMG=%RANDOM%%%5+1
set /a health=%health% - DMG
echo The Small Rat bites you, doing %DMG% damage.
echo.
color C0
@echo off
ping localhost -n 2 >NUL
color 04
@echo off
ping localhost -n 2 >NUL
pause
goto RAT

Similar to the player turn, a random number is calculated between 1 and 5 (the rat’s max damage, can be changed) and applies that damage to the player’s health. This is then echoed to the player and we’re taken back to the encounter screen. If the rat finally is out of HP, we’re taken to the WIN screen.


1
2
3
4
5
6
7
8
9
10
:WIN
gpwin=%RANDOM%%%5+1
echo You slayed the rat.
set /a ratskilled = ratskilled + 1
set /a gp = %gp% + %gpwin%
echo You found $gpwin% gp.
echo.
pause

goto RATIONS

Once the player wins, you’ll earn a random amount of GP between 1 and 5gp, add 1 to your “ratskilled” counter, and head back to the rations shop.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:CONCERT
cls
echo You walk towards the bard. He plays a bright, fun medley of music.
pause
cls
IF %gp% GTR 0 (
set /a gp = gp - 1
echo You tip the bard 1gp.
start /min music.bat
) else (
echo You currently don't have enough gold pieces to leave a tip, but the bard plays on...
start /min music.bat
)
pause
goto TOWN_DALE

You enter “CONCERT” when you choose to listen to the town bard. This allows the player to start music in the background of their game for ambiance. If the player has gold, he tips the bard, otherwise he does not. Either way, the bard will play on. We use “start /min music.bat” to run the music batch script minimized, which can be closed separately from the game.


1
2
3
4
5
6
:HILLS
cls

start https://www.youtube.com/watch?v=dQw4w9WgXcQ
pause
goto TOWN_DALE

Going to the hills too early (as in before we’ve created that part of the game) will start the player’s default web browser and load up Rick Astley‘s famous tune.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
:POTTERS
cls
echo                                             ((     ))
echo            ___________________________       ((    ))
echo           ^|              Potter's Pot\       ((   ))
echo           ^|         _____            ^|__     ((   ))
echo           ^|        ^|     \              \_  ((  ))
echo           ^|        ^|      \               \((  ))
echo           ^|        ^|       \___            \  ))
echo           ^|        ^|__________^|            ^|))
echo           ^|                                ^|
echo           ^|                                ^|     (Art by MikeTheTech)
echo \      ./ ^|                                ^|
echo _\______/_^|____\/_____________________\____^|.________
echo.
echo "Potter's Potions" looks to have been destroyed by the dragon.
echo.
echo You can repair this building with the proper resources.
echo.
echo You'll need 2,000gp, 20 Lumber, and 30 Limestone to repair this building.
echo.
echo You currently have %gp%gp, 0 Lumber, and 0 Limestone...
echo.
pause
goto TOWN_DALE

Finally, we take a look at Potter’s Potions. Destroyed by the dragon, the user must venture out to earn gold, lumber, and limestone to repair the building before they’re allowed to use it. This idea was inspired by the mobile game, Elder Scrolls: Blades.

2019-05-21T18:25:57+00:00

About the Author:

Leave A Comment