You are on page 1of 13

May 17, 2008

Professor McLogic
Saves the Day
==================================================
Project home page: http://www.rpgmaker.net/games/456/

by Gibmaker
http://sqentropy.dyndns.org/~sej
ejh2o@yahoo.com

CONTENTS
==========

Credits [01]
What is this game?? [02]
Installation [03]
Controls [04]
Gameplay [05]
Known bugs [06]

Notes on the Puzzles [07]


- General Hints [08]
- Gunhold City [09]
- Mercy Ravine [10]
- School of Philosophy [11]
- Moon Unit Zappa [12]
- Overwatch Hotel [13]
- Palace of Steam [14]
- Twilight Country [15]
- Moooonside! [16]
- LAN Party [17]
- Windwhip Peak [18]

CREDITS [01]
==============

This game was made in RPG Maker 2003.

Selected media credits:

Sprites:
Car sprites - by Night-System
Heavy Metal Band sprites - by AsakuraHao2004, from http://charas-project.net
Professor sprites - by Gibmaker

Music:
nineroad.mid - by Ellesworth Hall
OddThm.mid - by CBlockDis
physics.mid - by Gibmaker
Downtown.mid - by Igor Khoroshev
Texture.mid - by Igor Khoroshev

Beta testing:
ChaoSeven
Draakje
NoblemanNick
Nocturna

WHAT IS THIS GAME?? [02]


==========================

In PROFESSOR MCLOGIC SAVES THE DAY you play as a world-renouned logic professor.
You will travel to many different corners of the world and converse with the
inhabitants; but beware, for it's up to you to use your logic skills and determine
who speaks the truth and who doesn't!

The logic puzzles in this game are not pre-fabricated but are generated on the spot
by an ULTRA-SOPHISTICATED PUZZLE GENERATING ENGINE, programmed by myself, so the
possible situations are almost endless. There are 10 different scenarios, each with
its own set of weird rules; and the weirder, the better! Only the finest and most
logical minds can hope to make sense of it all!

I apologise in advance for the number of times the word "scenario" appears in this
readme. It's a pretty annoying word.

INSTALLATION [03]
===================

1) Unload the .rar file to a folder of your choice. (I don't like the Install
programs that the editor creates so I've just rarred the whole thing in working
order.) Be sure to preserve the file structure of the sub-folders!

2) Run RPG_RT.exe to play. You don't need to have the editor installed.

3) Give me $1,000.

CONTROLS [04]
===============

Arrow keys - Move F4 - Toggle window/fullscreen


Space / Enter - Talk/Select F12 - Quit to menu at any time
Esc / Z - Cancel/Open Menu

GAMEPLAY [05]
===============

* STARTING A NEW GAME

When starting a new game, you will first be prompted to choose a face graphic for
yourself from 4 very
erudite figures.

The game then asks if you would like to view the "game info". This is simply the
credits and general
information about the game.

Then you will be taken to the Scenario Menu.


* SCENARIO MENU

Initially, only the first three scenarios will be available. More advanced
scenarios are unlocked
after you complete several of the simpler ones.

Choosing a scenario will give you the following options:

View Info - Read the story and the rules for the current game.
- If you've all ready completed the game, your best time
for the game
is also displayed.
- This info can be reviewed from the in-game menu.

Play this Scenario - Play the scenario for realsies.


To complete it, you must solve 10 puzzles in one
session:
- 3 puzzles with 2 characters
- 4 puzzles with 3 characters
- 3 puzzles with 4 characters
- There's no time limit, but you will be timed and a
record is kept of
your best time for each game.
- There's also no penalty for getting a puzzle wrong;
you can simply
keep trying until you solve enough of them.
- The timer can be paused by opening the in-game menu.

Practise this Scenario - Another way of playing the scenario, with the following
differences:
- You can use the exit object to receive hints.
- After inputting your solution, you are given an option
to review
the puzzle after seeing the correct answer. (This is
not available
in regular play.)
- Your play will not be timed, and you will not
"complete" the game
no matter how many puzzles you solve.

Pressing ESC or Z in the scenario menu quits the game.

* IN-GAME

Once you begin a game, there will be a delay while the program generates a puzzle.
(The screen
will say "please wait ...".) This may take several seconds.

Then, you will find your professor in an environment with the following features:

- Characters.
Your task in every puzzle is to determine some quality of each character as
described in the
rules. Speaking to a character will first display that character's statements,
then give you
the option of guessing at the character's class. You can have them repeat their
statements
as much as you like; you can also change your mind about their class as much as
you like
before confirming your answer at the exit point.

- Exit object.
An element on the map that you use to signal that you are finished solving the
puzzle. The
form of the exit object reflects the scenario's back story and is different in
each one; it
is given to you in the scenario info.
Once you use the exit object you will be informed whether your solution is
correct, and then
transported to a new puzzle.

- Global variable
Some games use a global variable; in these games there will be an extra object
on the map
that you interact with to input your guess about the global variable.

Pressing ESC or Z will open the in-game menu.

* IN-GAME MENU

If you're playing a timed game, opening the menu will pause the timer.

Review Scenario - Display the story and rules for the scenario.
Game Info - Display the general game info and credits
End Game - Quit the game and return to the scenario manu.

* FINISHING A SCENARIO

After solving 10 puzzles in a game, the game is "complete".

The epilogue to the scenario story is displayed, as well as the time it took you to
finish.
You will then be prompted to save your game.

When returning to the scenario menu, there may be new scenarios available. If you
just finished
all 10 scenarios, you will be taken to the ENDING MOVIE, where your total time for
all the
scenarios is given, and you get to watch your professor bust a move with little
blue monsters.

If your total time is under 180 MINUTES, you will get to see the SPECIAL ending.
Yes, it's special all right.

KNOWN BUGS [06]


=================

* DISCLAIMER ABOUT GAME DESIGN: One challenge in this the game which is unfair
(and which amounts to a limitation in the RPG Maker engine) is that all the
characters' statements are not presented at once in a simple list, which is the
most handy way to solve logic puzzles. Since this is an RPG Maker game, you have
to dash around a map and speak to each character individually, try to remember what
he or she says, and then mentally associate the character graphic with the
character's name, which is a lot of extra and unnecessary mental work in a game
about logic. You might wish to write down all the statements, but that is
incredibly tedious and as the game designer I can't expect anyone to do it.

* The timer display may appear erratic, since RPG Maker 2003 doesn't support a
timer that counts upwards. Most notable is the fact that the timer will freeze
when you talk to characters, since it's being updated by a parallel process. Be
assured that the game is keeping time accurately, it's just the display that's
buggy.

NOTES ON THE PUZZLES [07]


===========================
(read this if you need help)

To understand how to solve these logic puzzles, you might find it helpful to
understand how the program creates them.

If you've mucked with the game in the RPGMaker editor, you've probably noticed that
the first 1024 switches are "reserved" for puzzle generation. When creating a
puzzle, each of these switches represents one possible combination of character
classes. For example, in the School of Philosophy scenario, with only two
characters, the possibilities are:

1: Master, Master
2: Master, Student
3: Student, Master
4: Student, Student

The possibilities can also be represented like this:

Character A: Master Student

Character B: Master 1 3
Student 2 4

As you can see, this particular puzzle has only 4 possible combinations and would
only use 4 switches, but puzzles with more characters and more classes for each
character would use many more. (Although 1024 switches were set aside, the most
that are ever used are 256.)

Initially, all the switches are ON.

The program randomly chooses a statement for one of the characters. Then, based on
the rules of the scenario, a number of possibilities are rendered implausable, and
the switches for those possibilities are turned OFF. For example:

Character A: "If I am a student, Character B is a master."

A: Master Student

B: Master 1 3
Student 2 X

Notice that possibility 4 (where both characters are students) has been eliminated,
because it would be implausable for Character A to make the statement above if both
characters were students.

(In this example only one possibility was eliminated, but it's typical for
statements to eliminate up to half of the remaining possibilities.)

---------------
It's important to understand what "implausability" means in the context of this
program. It doesn't mean that a statement is false, since, of course, many of the
puzzles in this game are full of false statements. It means that, for a particular
combination of character classes, the character would be breaking the rules of the
scenario to make that statement.

In fact, the notion of plausibility isn't applied to STATEMENTS, but particular


combinations of character classes. A combination of classes where the statement is
true is just as plausable as a combination of classes that renders it false, as
long the rules of the scenario are not broken.

For example, a situation that forces a character who, according to the rules,
should only speak truthfully (i.e. Faeries in the Gunhold City scenario) to make a
false statement would be implausable. Similarly, if a character who cannot speak
truthfully (i.e. Vampires) is forced to make a true statement, that situation is
also implausable.
---------------

The program chooses another statement:

Character A: "If I am a student, Character B is a master."


Character B: "If Character A and I are the same rank, I am a student."

A: Master Student

B: Master X 3
Student 2 X

Possibility 1 has been eliminated, since Character B would be breaking the rules in
making this statement if both characters were masters.

Finally:

Character A: "If I am a student, Character B is a master."


"If Character B and I differ in rank, I am a student."
Character B: "If Character A and I are the same rank, I am a student."

A: Master Student

B: Master X 3
Student X X

Character A has been given a second statement, which eliminates possibility 2. The
program detects that only one possibility remains, and the puzzle is complete. The
remaining possibility (Character A is a student and Character B is a master) is the
solution to the puzzle.

(You might find it interesting to note that the program does not start by assigning
a solution and then creating statements to lead to that solution; statements are
chosen randomly, and the solution results from whatever possibility is left over at
the end.)

There are two "checks" in place during puzzle generation:

1) If a statement is redundant (ie, it eliminates no possibilities that have not


all ready been eliminated) then the program discards it and chooses another
statement.

2) If a statement eliminates ALL remaining possibilities, rendering a puzzle


unsolvable, the entire puzzle is discarded and the program starts over. This can
happen HUNDREDS of times before a solvable puzzle is found, which is why there's
sometimes a long delay during puzzle generation. (Obviously, in a more powerful
programming environment the program would be able to "undo" statements and find a
solvable puzzle more efficiently.)

Essentially, you as the player will go through the same process when solving the
puzzles, albeit in a more organic way. When you first start a puzzle, any
combination of character classes is possible; as you work through the statements
and eliminate possibilities you will eventually pare down the possibilities to one
solution, just like the puzzle generator does.

----------------------
NOTE on the order of the scenarios in the program: It's implied that later
scenarios are harder than earlier ones by the fact that the earlier scenarios have
to be completed first to "unlock" them. The order of the scenarios represents how
difficult I THOUGHT they would be, not how difficult they actually turned out to
be. (The second last scenario, for example, is ridiculously simple.)

To bypass having to solve all the scenarios in order, use the following trick:
Start a new game, and as soon as the character selection screen appears, press
RIGHT four times, then LEFT five times. A new character will become available, and
if you choose him all the scenarios will be unlocked from the start.

And yes, this trick is buried here in the program notes to reward people who take
the time to read it. :)
----------------------

GENERAL HINTS [08]


====================

Logic puzzles can be daunting at a glance; finding a place to start is usually


harder than finishing.

- Every puzzle has ONLY ONE solution. If you discover one solution that works, you
don't have to waste time verifying that it is the ONLY solution, since it is.

- Most puzzles are too complicated to solve at a glance. The key is to make a
guess about one character's behaviour and carefully work out what the consequences
of that guess are; if it turns out to be inadmissable, revise your guess. When
practising, you can use the exit object to reveal the class of one or more
characters as a starting point.

- Characters speaking about themselves are good starting points, since there are
fewer variables to complicate the way the statement must be interpreted.

- Begin by assuming that every character speaks in the simplest way possible; ie,
they are all of a truth-telling class. Work through the consequences of their
statements until you find an inconsistency.

- None of the characters' statements can be taken at face value because you have to
suspect them of being untrue. However, some statements (mostly statements about a
character's self) imply a logical consequence that is just as intuitive at the
content of the statement itself. (I call these "shortcuts"; a list of shortcuts is
included for the scenarios that have them.)
The following are hints for each scenario; a familiarity with the basic rules of
the scenario, as outlined in-game, is assumed.

GUNHOLD CITY [09]


===================

If you like doing things in order, this will be the first scenario you play, so it
makes a good introduction to general principles of this game.

Assume that the very first character you talk to is a Faerie, and take all his or
her statements as truth until proven otherwise. It's more intuitive to begin this
way and you are less likely to make a mistake.

Some general principles of logic can help you to close in on characters' identities
quickly. For example, a character saying "I am a vampire," is like the classic
logical conundrum of saying "I always lie." In Gunhold City, however, there's a
simple solution: the character is Mortal. Only Mortals are capable of saying, "I
am a Vampire," so whenever you encounter this statement, you automatically know the
character's true identity. (This is one of the "shortcuts" for this scenario.)

Furthermore, you know that the Mortal's statement of "I am a vampire" is false, so
his or her adjacent statements will contain true information.

FYI, the program actually identifies FOUR different classes in this scenario, since
Mortals whose first statements are true are seen as distinct from Mortals whose
first statements are false. The player does not need to make this distinction when
solving the puzzle.

Shortcuts:
"I am a vampire." ==> The character is Mortal.
"I am not a faerie." ==> The character is Mortal.

MERCY RAVINE [10]


===================

Each animal has two qualities (male/female, clean/rabid) that combine to create
four distinct classes. For each state of either quality (male, female, clean,
rabid) there is both a truth-telling version and a lie-telling version,
corresponding to one of the other states. For example, a FEMALE can either lie or
tell the truth, depending on whether she is clean or rabid. A CLEAN animal can
also either lie or tell the truth, depending on whether it is male or female.
Thus, if you know one quality of the animal and you determine the veracity of its
statements, you can use that information to determine the other quality.

As usual, begin by assuming that each animal is a clean male (who tells the truth),
and also use the shortcuts below.

Yes, I'm aware that "gender" is the wrong word to use in the write-up for this
scenario. "Gender" refers to social constructions and corresponds to the qualities
of "masculine" and "feminine." "Sex" is the proper term, referring to biology and
corresponding to the qualities "male" and "female". But I wasn't about to have a
puzzle about animals where the word "sex" appears on screen a hundred times. Refer
to scenario #7.

Shortcuts:
"I am male." ==> The character is clean.
"I am female." ==> The character is rabid.
"I am clean." ==> The character is male.
"I am rabid." ==> The character is female.

SCHOOL OF PHILOSOPHY [11]


===========================

This can be quite possibly the easiest scenario in the world, since every statement
is true. This is the only scenario where statements aren't interpreted differently
based on who says them; you don't have to worry about mentally inverting their
meaning.

If the conditions of the "if" clause are met, then the content of the "then" clause
MUST be true. A possible stumbling block is that if the "if" clause is NOT true,
the "then" clause is meaningless; it can be true or false. However, the ONLY way a
"then" clause can be false is for the "if" clause to also be false. If you think
that a particular "then" clause MUST be false, make sure the conditions of the "if"
clause are NOT met. (This is called the "contrapositive" of a statement.)

It's not so important to understand what the "converse" of a statement is for this
scenario, but it is NOT the same thing as the contrapositive. The contrapositive
of a statement is logically equivalent to the statement; the converse is not.

Statement: If A, then B.
Converse: If B, then A.
Contrapositive: If NOT B, then NOT A. (equivalent to statement)

A simple way to deal with this complication is to simply skip any statements with
an "if" clause that you know to be untrue.

There are no shortcuts for this scenario, since no statement is significantly more
intuitive than any other. However, every statement eliminates ONE of the four
possible combinations of classes between the speaker and the subject of his
statements. (Master-Master, Master-Student, Student-Master, Student-Student)

MOON UNIT ZAPPA [12]


======================

This is the first of two scenarios that use a global variable (whether the local
field is positive or negative). The global variable is like an extra character in
the puzzle who makes no statements.

Like in every scenario with self-statements, it's easiest to start solving with a
character that makes statements about itself. Characters will sometimes make a
statement about the global variable (the magnetic field). These count as self-
statements; see the shortcuts below. You'll notice that you can basically swap out
the charge of the field and the charge of the speaker's self to come up with a
reliable conclusion. The shortcuts for this scenario are so mind-bogglingly
helpful that it's almost unnecessary to give any other advice.

If you know whether a robot is lying or telling the truth, but you don't know its
charge yet or the charge of the magnetic field, be sure to resolve one as soon as
possible, because it will point you to the other.

Shortcuts:
"I am positive." ==> "The field in this area is positive."
"I am negative." ==> "The field in this area is negative."
"The field in this area is positive." ==> "I am positive."
"The field in this area is negative." ==> "I am negative."

"X is charged the same as the field." ==> "X is charged the same as me."
"X is charged opposite to the field." ==> "X is charged opposite to me."
"X is charged the same as me." ==> "X is charged the same as the field."
"X is charged opposite to me." ==> "X is charged opposite to the field."

OVERWATCH HOTEL [13]


======================

The basic premise of this scenario is a slight modification of the Mercy Ravine
scenario: two qualities (honest/corrupt, liberal/conservative) combine to create
four possible classes for each character (honest liberal, corrupt liberal, honest
conservative, corrupt conservative). Unlike in Mercy Ravine, only one of these
qualities (honest/corrupt) determines whether a character speaks truthfully, and
things are shaken up a bit by the fact that the characters will only directly refer
to the liberal/conservative quality.

The real monkey wrench in this scenario, though, is a new kind of statement: "If
asked, X would say ..." These statements are challenging because you must juggle a
lot of information in your head at once. X might or might not say the words being
put in his mouth, based on the veracity of the words AND the honesty of X. Then,
you have to evaluate the veracity of the attribution of these words against the
honesty of the speaker himself. These statements should not be addressed until you
have at least a little bit of certain information about the speaker or character X.

Of course, these statements come up as randomly as any other, and if you just can't
stand them, one way to cheat is to keep blazing through puzzles until you find one
without any of these statements.

If you are faced with an "X would say ..." statement, check to see if X actually
DOES make that exact statement (or its opposite) and if so you'll know at once
whether the speaker is honest or corrupt.

There are no shortcuts for this scenario, but it is a bit liberating to know that
any particular character can lie or tell the truth independently of his political
party. If any character's statements don't shape up, you can try dismissing that
character as a liar.

PALACE OF STEAM [14]


======================

If you haven't figured it out, this puzzle uses a rock-paper-scissors analogy.


Speakers will lie about other characters who correspond to the element that the
speaker's own element would defeat in a rock-paper-scissors game.

If a character says "X is a rock cutter," the speaker himself cannot be a paper
miller, since it's impossible for a paper miller to make this statement. (If X
really IS a rock cutter, a paper miller would lie and say he's something else.)
Similarly, a rock cutter cannot identify a scissors grinder, and a scissors grinder
cannot indentify a paper miller.

The implications of changing one of your guesses can have a domino effect in terms
of forcing you to revise your guesses about other characters. Be sure to check all
the characters carefully after a change.
Shortcuts:
"X would always lie about me." ==> "X is not in the same guild as me."
"X would never lie about me." ==> "X is in the same guild as me."
"X is not in my guild." ==> "X is in the guild that lies about me."

TWILIGHT COUNTRY [15]


=======================

This is possibly the most unusual scenario in the game. Every character always
spouts at least three or four statements, so it seems as though you're being
bombarded with information. In fact, typically, you can completely ignore all the
characters except for one, who gives you the entire solution. The trick is to
figure out which one it is.

When the program is determining the plausibility of statements (see the general
program notes above for a description of "plausibility" in this game) characters in
the NEW or FULL phases are permitted to make any statement at all. It's entirely
up to chance whether any of these statements wind up being true or false; thus they
are useless for solving the puzzle.

The only restriction enforced is that AT LEAST ONE character must be in the
CRESCENT or GIBBOUS phase, and thus his statements are constrained by truthfulness.
I didn't specify that ONLY one character be truthful in each puzzle, although most
of the time that winds up being the case.

Usually, an unreliable character will betray himself by making a number of


statements that contradict each other, either directly or by implication. Most
unreliable characters can thus be pegged the first time you talk to them, but
assume that they are in a reliable phase until you make this connection. (Be sure
to understand the "timeline" in the scenario info. The "first quarter" is not a
character class, but it represents the midpoint of the timeline.) You will
probably be left with only one character who speaks the truth, and you can work out
from his statements which of the two unreliable phases each of the others is in.

A HINT: Since the one character who speaks truthfully has to address ALL of the
others, if any character does not have a statement about EVERY other character, he
is probably unreliable.

MOOOONSIDE! [16]
==================

The biggest challenge in this scenario is that each statement refers to another
statement, instead of a character, and by this point in the game you're probably
used to thinking in terms of character classes. Also, the veractiy of any
statement can't be verified until you consider the statement it refers to, which
itself can't be verified until you consider the statement IT refers to, and so on,
until you wind up with enormous chains of implication between every character in
the puzzle.

To approach this puzzle you should think of each statement as a unique object that
can be either true or false. Once you have determined the veracity of several
statements, the pattern in their veractiy will suggest one of the three classes for
the character. (Faeries, Vampires, Mortals) Of course, the game doesn't provide a
way to track this information since, as usual, the only thing you can input is a
class for each character, so you may wish to bust out paper for this one.
As in Gunhold City, the game does not require you to distinguish between true-false
Mortals and false-true Mortals in your solution, but in this scenario you will find
it crucial to keep track of that information, since other characters will refer to
specific statements of your Mortals, and it's frustrating to have forgotten which
of them are true and which aren't.

Shortcuts:
"My next/previous statement is false." ==> The speaker is Mortal.
"My next/previous statement is true." ==> The speaker is not Mortal.
"Statement X is as true as this one." ==> Statement X is true.
"Statement X differs from this one in truthfulness." ==> Statement X is false.

LAN Party [17]


================

This scenario gets a giant disclaimer, as it's not nearly challenging enough to be
the second-last in the game.

Originally, I intended to use Starcraft as the video game in story (rather than
World of Warcraft), resulting in THREE factions (Terrans, Zerg, Protoss) which
would possibly have caused this scenario to live up to its position as second-
hardest. But then, the number of possible character-class combinations for a 4-
character puzzle would have been 648. (No other scenario goes above 256.) Why is
this a problem? Well, if you've been poking around in the code for this game
you've probably seen the Common Events "Count Array" and "Seek Remaining Switch".
That's the problem.

Of course, I would certainly have thanked myself later for making the effort to
just go through the tedium of implementing 648 switches into those events. I
didn't. So: two factions it is.

This scenario is basically Moon Unit Zappa again, with the added complication that
there are now 4 global states instead of 2. (The honesty of the two factions'
statements can be truth-truth, truth-lies, lies-truth, or lies-lies.) Begin by
assuming that everybody tells the truth and work from there, and remember that
characters' statements about the factions in general, like in Moon Unit Zappa,
count as self-statements.

Characters in this scenario also make statements like, "X and I are both members of
..." Remember that the statement is false if either one or both of the characters
is not in the specified faction.

There is one noteworthy thing about this scenario, which is how efficiently the
statements seem to cut through all the different variables. This is the only
scenario in which I've encountered a puzzle with less statements than characters,
resulting in one character saying nothing at all:

Character A: "C and I are both members of the Horde."


Character B: "D and I are both members of the Alliance."
Character C: "The Alliance lies."
Character D: ...

Yes, from those three statements it's possible to determine the faction of all four
characters, as well as whether each faction lies. FASCINATING.

Shortcuts:
"The Alliance lies." ==> The speaker is in the Horde, and the two factions differ
in truthfulness.
"The Horde lies." ==> The speaker is in the Alliance, and the two factions
differ in truthfulness.

Windwhip Peak [18]


====================

This scenario occupies the #10 position because of the ordeal of wrapping one's
mind around around the whole statement-converse thing. Also, none of the
statements are particularly intuitive, and you'll notice there are no shortcuts for
this scenario. Nevertheless, it's one of the more straightforward scenarios in the
game, because (as in School of Philosophy) there are no outright liars. The
challenge is more in deciphering each individual statement than in putting them all
together.

This scenario requires you to dig up all that stuff about statements and converses.
Here it is again:

Statement: If A, then B.
Converse: If B, then A.

When a dragon is LIGHT, consider the implications of the literal statement, and
ignore the converse. When a dragon is DARK, you consider the Converse and ignore
the statement. For UBIQUITOUS dragons, both the statement AND the converse must be
considered.

In a way, Ubiquitous dragons are the easiest to work with: either both the 'if' and
'then' clauses are true or both are false. You might start this puzzle by assuming
a dragon is Ubiquitous; or you can assume it is Light, if you find that easier.

Dark dragons are definitely the hardest to work with, because you have to carefully
convert the meaning of the statement, but here's one time-saving trick: skip any
statements with a "then" clause that you know to be untrue, i.e. "... then I am not
a Dark dragon." This is just like the way you would skip a Light dragon's
statement if it had an "if" clause that was untrue, i.e. "If I am not a Light
dragon ..."

PS. In a scenario where you have to consider the converse meanings of statements,
it was perhaps unfair to phrase statements like, "If X is light, so am I." "So am
I" means in this case "I am light."

--------------------------
END OF THE README.
NOW PLAY THE GAME.
--------------------------

You might also like