So, I'm programming a text based adventure game for hw, and it's driving me crazy. I'm trying to use a conditional test to check if the player has a key before they walk through a locked door. However, I can't get the damned thing to work properly.
This is what I've got so far:
@ECHO OFF
REM-LABEL INDICATING THE BEGINNING OF THE DOCUMENT.
:BEGIN
SET IRONKEY = FALSE
SET BONEKEY = FALSE
SET FIREROD = FALSE
SET HAMMER = FALSE
SET CRYSTALSHIELD = FALSE
SET LONGSWORD = FALSE
SET STORMBRINGER = FALSE
REM - THE PLAYER DOES NOT START THE GAME WITH THESE ITEMS.
:START
CLS
:CELL
REM - BEGINNING CELL ROOM. PC SPAWN POINT.
ECHO YOU AWAKEN IN A DARK CHAMBER. THE SMELL OF BLOOD AND URINE ASSAULTS YOUR
ECHO NOSTRILS AS YOU SHAKILY CLIMB TO YOUR FEET. THE ONLY LIGHT SOURCE IS COMING
ECHO FROM A NEARBY ROOM TO THE NORTH. THE CELL DOOR IS PARTIALLY OPEN.
ECHO NOW IS YOUR CHANCE TO ESCAPE!
:MOVECELL
ECHO MOVE? CHOOSE A DIRECTION (N=NORTH, S=SOUTH, E=EAST, W=WEST)
SET /P INPUT=COMMAND?
IF %INPUT%==N GOTO TORTURE
IF %INPUT%==S GOTO NODOORCELL
IF %INPUT%==E GOTO NODOORCELL
IF %INPUT%==w GOTO NODOORCELL
:NODOORCELL
ECHO THERE IS NO DOOR HERE!
GOTO MOVECELL
:TORTURE
CLS
REM - TORTURE CHAMBER
ECHO YOU SEE A LARGE TABLE WITH A BODY STRAPPED TO IT. HIS STOMACH HAS BEEN
ECHO CARVED OPEN, AND BLOOD STAINS THE COLD STONE FLOOR IN A POOL UNDERNEATH
ECHO THE CORPSE. VARIOUS INSTRUMENTS OF TORTURE ARE ORGANIZED AND STOWED UPON THE
ECHO WALL. A CLOSED IRON MAIDEN RESTS IN THE CORNER. YOU CAN SEE TWO DOORS; ONE
ECHO TO THE NORTH, MADE OF SIMPLE WOOD, AND ANOTHER TO THE EAST, MADE OF STURDY
ECHO IRON.
ECHO MOVE OR ACT? (M=MOVE, A=ACT)
SET /P INPUT=COMMAND?
IF %INPUT%==M GOTO MOVETORTURE
IF %INPUT%==A GOTO ACTTORTURE
:MOVETORTURE
ECHO CHOOSE A DIRECTION (N=NORTH, S=SOUTH, E=EAST, W=WEST)
SET /P INPUT=COMMAND?
IF %INPUT%==N GOTO LAB
IF %INPUT%==S GOTO TORTCELL
IF %INPUT%==E && (%IRONKEY%==TRUE) GOTO ARMORY
ELSE GOTO LOCKED ARMORY
IF %INPUT%==W GOTO NODOORTORT
:LAB
ECHO THIS IS THE LAB. COMING SOON!
GOTO END
:TORTCELL
ECHO YOU'VE RETURNED TO YOUR CELL. THIS WON'T HELP YOU ESCAPE!
GOTO MOVECELL
:LOCKEDARMORY
ECHO THE DOOR IS LOCKED!
GOTO MOVETORTURE
:NODOORTORT
ECHO THERE IS NO DOOR HERE!
GOTO MOVETORTURE
So, basically, I am trying to check if the player has the IRONKEY before they go through to the ARMORY. What am I screwing up? I thought this would work...
IF %INPUT%==E && (%IRONKEY%==TRUE) GOTO ARMORY
...but it keeps giving me "&& was unexpected at this time" and it closes out.
Please, toss me some advice if you've got it, I've got other work to do besides just this.
This is what I've got so far:
@ECHO OFF
REM-LABEL INDICATING THE BEGINNING OF THE DOCUMENT.
:BEGIN
SET IRONKEY = FALSE
SET BONEKEY = FALSE
SET FIREROD = FALSE
SET HAMMER = FALSE
SET CRYSTALSHIELD = FALSE
SET LONGSWORD = FALSE
SET STORMBRINGER = FALSE
REM - THE PLAYER DOES NOT START THE GAME WITH THESE ITEMS.
:START
CLS
:CELL
REM - BEGINNING CELL ROOM. PC SPAWN POINT.
ECHO YOU AWAKEN IN A DARK CHAMBER. THE SMELL OF BLOOD AND URINE ASSAULTS YOUR
ECHO NOSTRILS AS YOU SHAKILY CLIMB TO YOUR FEET. THE ONLY LIGHT SOURCE IS COMING
ECHO FROM A NEARBY ROOM TO THE NORTH. THE CELL DOOR IS PARTIALLY OPEN.
ECHO NOW IS YOUR CHANCE TO ESCAPE!
:MOVECELL
ECHO MOVE? CHOOSE A DIRECTION (N=NORTH, S=SOUTH, E=EAST, W=WEST)
SET /P INPUT=COMMAND?
IF %INPUT%==N GOTO TORTURE
IF %INPUT%==S GOTO NODOORCELL
IF %INPUT%==E GOTO NODOORCELL
IF %INPUT%==w GOTO NODOORCELL
:NODOORCELL
ECHO THERE IS NO DOOR HERE!
GOTO MOVECELL
:TORTURE
CLS
REM - TORTURE CHAMBER
ECHO YOU SEE A LARGE TABLE WITH A BODY STRAPPED TO IT. HIS STOMACH HAS BEEN
ECHO CARVED OPEN, AND BLOOD STAINS THE COLD STONE FLOOR IN A POOL UNDERNEATH
ECHO THE CORPSE. VARIOUS INSTRUMENTS OF TORTURE ARE ORGANIZED AND STOWED UPON THE
ECHO WALL. A CLOSED IRON MAIDEN RESTS IN THE CORNER. YOU CAN SEE TWO DOORS; ONE
ECHO TO THE NORTH, MADE OF SIMPLE WOOD, AND ANOTHER TO THE EAST, MADE OF STURDY
ECHO IRON.
ECHO MOVE OR ACT? (M=MOVE, A=ACT)
SET /P INPUT=COMMAND?
IF %INPUT%==M GOTO MOVETORTURE
IF %INPUT%==A GOTO ACTTORTURE
:MOVETORTURE
ECHO CHOOSE A DIRECTION (N=NORTH, S=SOUTH, E=EAST, W=WEST)
SET /P INPUT=COMMAND?
IF %INPUT%==N GOTO LAB
IF %INPUT%==S GOTO TORTCELL
IF %INPUT%==E && (%IRONKEY%==TRUE) GOTO ARMORY
ELSE GOTO LOCKED ARMORY
IF %INPUT%==W GOTO NODOORTORT
:LAB
ECHO THIS IS THE LAB. COMING SOON!
GOTO END
:TORTCELL
ECHO YOU'VE RETURNED TO YOUR CELL. THIS WON'T HELP YOU ESCAPE!
GOTO MOVECELL
:LOCKEDARMORY
ECHO THE DOOR IS LOCKED!
GOTO MOVETORTURE
:NODOORTORT
ECHO THERE IS NO DOOR HERE!
GOTO MOVETORTURE
So, basically, I am trying to check if the player has the IRONKEY before they go through to the ARMORY. What am I screwing up? I thought this would work...
IF %INPUT%==E && (%IRONKEY%==TRUE) GOTO ARMORY
...but it keeps giving me "&& was unexpected at this time" and it closes out.
Please, toss me some advice if you've got it, I've got other work to do besides just this.