%%%%%
%%
%% This file sets up the Sign and Label datatypes and creates Sign and
%% Label macros.
%%
%% Signs generally represent interesting parts of game area, usually
%% as things posted on walls.  Labels represent other things, often on
%% or inside envelopes, that are part of complex mechanics.
%%
%% The default value for \MYloc will inherit location from the Place
%% or Sign most immediately up the ownership tree.  Override this by
%% setting \MYloc to anything (even blank).
%%
%% Sign is for full-sized signs that would cover most of a large
%% manila envelope; SignMedium is for signs sized to half-sized manila
%% envelopes; SignSmall is for signs sized for small manila envelopes
%% (the same size as item cards).  Label, LabelMedium, and LabelSmall
%% are analagous, but they don't have a \takedownby note at the
%% bottom.  You can always use a sign or label without an envelope or
%% with a differently-sized envelope.  Choose which based on
%% visibility and content.
%%
%% SignTiny is for signs you want to be hard to find; it is small and
%% does not have a \takedownby note.  SignDot is for a very small
%% "dot" which only has a title.
%%
%% SignStrip produces a strip of paper (without a \takedownby note)
%% with labels on the outside that show on both sides if you fold it
%% in half.  These are a convenient alternative to sub-envelopes. They
%% can also be used for "s-packets" taped to walls (see
%% Extras/README-s-packets).
%%
%% LabelCover produces a label similar to the cover to a research
%% notebook.  LabelPage, likewise, produces a page.
%%
%% EOG is for full-sized end-of-game signs.
%%
%%%%%

\DECLARESUBTYPE{Sign}{Element}
\PRESETS{Sign}{
  \FD\MYloc	{\mylocation} %% real-space location
  \FD\MYtext	{} %% text of sign
  }
\POSTSETS{Sign}{
  \edef\mylocation{\MYloc}
  }
\def\mylocation{}

\DECLARESUBTYPE{SignMedium}{Sign}
\DECLARESUBTYPE{SignSmall}{Sign}
\DECLARESUBTYPE{SignTiny}{Sign}
\DECLARESUBTYPE{SignDot}{Sign}
\PRESETS{SignDot}{\s\MYtext{}}

\DECLARESUBTYPE{Label}{Sign}
\PRESETS{Label}{\s\MYloc{}}
\DECLARESUBTYPE{LabelMedium}{Label}
\DECLARESUBTYPE{LabelSmall}{Label}

\DECLARESUBTYPE{SignStrip}{Sign}
\DECLARESUBTYPE{LabelCover}{Label}
\DECLARESUBTYPE{LabelPage}{Label}

\DECLARESUBTYPE{EOG}{Sign}
\PRESETS{EOG}{%
  \s\MYname	{End Of Game}
  \s\MYtext	{You may not pass through here.}
  }


%%%%%
%% \signbig[<location>]{<name>}{<text>}
%% \eog[<location>]
%%
%% \signmdeium[<location>]{<name>}{<text>}
%% \signsmall[<location>]{<name>}{<text>}
%% \signtiny[<location>]{<name>}{<text>}
%% \signdot[<location>]{<name>}
%%
%% \labelbig{<name>}{<text>}
%% \labelmedium{<name>}{<text>}
%% \labelsmall{<name>}{<text>}
%%
%% \signstrip[<location>]{<name>}{<text>}
%% \labelcover{<name>}{<text>}
%% \labelpage{<name>}{<text>}
\newinstance{Sign}{\signbig[3][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}\s\MYtext{#3}}
\newinstance{EOG}{\eog[1][\mylocation]}{\s\MYloc{#1}}

\newinstance{SignMedium}{\signmedium[3][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}\s\MYtext{#3}}
\newinstance{SignSmall}{\signsmall[3][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}\s\MYtext{#3}}
\newinstance{SignTiny}{\signtiny[3][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}\s\MYtext{#3}}
\newinstance{SignDot}{\signdot[2][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}}

\newinstance{Label}{\labelbig[2]}{
  \s\MYname{#1}\s\MYtext{#2}}
\newinstance{LabelMedium}{\labelmedium[2]}{
  \s\MYname{#1}\s\MYtext{#2}}
\newinstance{LabelSmall}{\labelsmall[2]}{
  \s\MYname{#1}\s\MYtext{#2}}

\newinstance{SignStrip}{\signstrip[3][\mylocation]}{
  \s\MYloc{#1}\s\MYname{#2}\s\MYtext{#3}}
\newinstance{LabelCover}{\labelcover[2]}{
  \s\MYname{#1}\s\MYtext{#2}}
\newinstance{LabelPage}{\labelpage[2]}{
  \s\MYname{#1}\s\MYtext{#2}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 \NEW{Sign}{\sMainFrameWorking}{
   \s\MYname    {Dunwich base mainframe (operational)}
   \s\MYtext    {This is a very large, ancient-looking mainframe computer,
                      humming away happily (and noisily). It looks
                      like it's working fine. \\ \\
                      You cannot interact with this sign unless you
                      know otherwise. If you manage to disable this
                      computer, replace this sign with the one
                      underneath.
                }
 }

 \NEW{Sign}{\sMainFrameBroken}{
   \s\MYname    {Dunwich base mainframe (disabled)}
   \s\MYtext    {This is a very large, ancient-looking mainframe
                      computer.  It doesn't seem to be working right
                      now -- all the lights are off, and you don't
                      hear the disks and power supply humming like you
                      normally would.
                       \\ \\
                      You cannot interact with this sign unless you
                      know otherwise. If you manage to repair this
                      computer, replace this sign with the one
                      underneath.
               }
 }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Components of a mainframe

\NEW{SignSmall}{\sRaidEnclosure}{
  \s\MYname{RAID Enclosure}
  \s\MYtext{A RAID enclosure for an ancient mainframe. In order to
              function properly, this must contain two {\bf Hard
              drives} and a {\bf RAID controller}. You cannot interact
              with this unless you know otherwise}
  \notransfer
}

% \NEW{SignSmall}{\sOS}{
%   \s\MYname{Operating System}
%   \s\MYtext{This item represents the mainframe's operating system (an ancient version
%   of Unix).
%             If you disable this
%             component, write the appropriate number in the next free
%             box; If you repair it, cross off the number. \\
%             \begin{tabular}{|ll|ll|ll|ll|ll|ll|ll|ll|}
%             \hline
%                 & & & & & & & & & & & & & \\
%                 & & & & & & & & & & & & & \\
%             \hline
%             \end{tabular}
%              }
%   \notransfer
% }

\NEW{SignSmall}{\sMainframeMeshWorking}{
  \s\MYname{Mesh Interface (working)}
  
  \s\MYtext{This is a weird array of antennas and occult circuits
    inscribed in silver wiring that enables the programs running on
    the ancient mainframe to interact with paranormal and
    extradimensional entities.\\
    If you disable this, replace it with the sign underneath.
  }

  \notransfer
}

\NEW{SignSmall}{\sMainframeMeshBroken}{
  \s\MYname{Mesh Interface (broken)}
  
  \s\MYtext{This is a weird array of antennas and occult circuits that
                 has been smashed and badly damaged.\\
    If you repair this, replace it with the sign underneath.
  }

  \notransfer
}

\NEW{SignSmall}{\sMainframePSUWorking}{
  \s\MYname{Power Supply (operational)}

  \s\MYtext{This is the power supply unit to the giant mainframe. It
    hums a lot and occasionally sparks a little.\\
    If you disable this, replace it with the sign underneath.
  }

  \notransfer
}

\NEW{SignSmall}{\sMainframePSUBroken}{
  \s\MYname{Power Supply (broken)}

  \s\MYtext{This is a broken power supply unit to the giant mainframe. It
    sparks feebly and doesn't seem capable of powering anything right now.\\
    If you repair this, replace it with the sign underneath.
  }

  \notransfer
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\NEW{Sign}{\sComputerTerminal}{ \s\MYname{Computer Terminal}
  \s\MYtext{ This is a computer terminal. If you have access, you can
    use it to access files in the \bLaundry{}'s computer systems.
    \\ \\
    You may log on to this computer by performing a level 1
    class-$\eta$ ability.
    \\ \\
    Once logged in, move all files in packet B to packet A. You can
    then remove a random file from packet A by spending 30 seconds
    looking around. After reading it, return the file to packet B. You
    may then look for another file. Once per log in, you may take a
    file with you instead of returning it to packet B.
    \\ \\
    If you leave ZoC of this sign, you must log in again.  
  }
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\NEW{Sign}{\sGMRoom}{
  \s\MYname{GM Control Room}
  \s\MYtext{This room is out of game.}
  \s\MYloc{34-303}
}

\NEW{Sign}{\sPlayerRoom}{
  \s\MYname{Player Room}
  \s\MYtext{This is the Player Room.  Feel free to leave your stuff in here - it is out of game.}
  \s\MYloc{34-304}
}

\NEW{Sign}{\sConferenceRoom}{
  \s\MYname{Dunwich Training Centre Conference Room}
  \s\MYloc{34-301}
  \s\MYtext{A well-apportioned room with a large table.}
}

\NEW{Sign}{\sHDDStorageRoom}{
  \s\MYloc{36-1}
  \s\MYname{Hardware Storage Room}
  \s\MYtext{This room seems to be full of boxed hardware.

    If you spend 1 minute searching through this room, you may remove an item
    card from the attached packet and write one of the following items on
    it. If there are no cards left, see a GM. 

    Every item in this storeroom is 1-hand bulky.

    \begin{itemz}
      \item \iHardDrive{}
      \item \iRaidController{}
    \end{itemz}
  }
}

\NEW{Sign}{\sPSUStorageRoom}{
  \s\MYloc{38-1}
  \s\MYname{Hardware Storage Room}
  \s\MYtext{This room seems to be full of boxed hardware.\\

    If you spend 1 minute searching through this room, you may remove an item
    card from the attached packet and write one of the following items on
    it. If there are no cards left, see a GM.

    Every item in this storeroom is 1-hand bulky.

    \begin{itemz}
      \item \iPowerCord{}
      \item \iWire{}
    \end{itemz}
  }
}

\NEW{Sign}{\sHWStorageRoom}{
  \s\MYloc{24-3}
  \s\MYname{Hardware Storage Room}
  \s\MYtext{This room seems to be full of boxed hardware.\\

    If you spend 1 minute searching through this room, you may remove an item
    card from the attached packet and write one of the following items on
    it. If there are no cards left, see a GM.

    \begin{itemz}
      \item \iMedCap{}
      \item \iGroundingCord{}
      \item \iSmallCap{}
      \item \iSmallResist{}
      \item \iMedResist{}
    \end{itemz}
  }
}

\NEW{Sign}{\sToolStorageRoom}{
  \s\MYloc{38-3}
  \s\MYname{Hardware Storage Room}
  \s\MYtext{This room seems to be full of various tools.\\

    If you spend 1 minute searching through this room, you may remove an item
    card from the attached packet and write one of the following items on
    it. If there are no cards left, see a GM.

    Every item in this storeroom is 1-hand bulky.

    \begin{itemz}
      \item \iWireCutters{}
      \item \iBigCap{}
      \item \iBigResist{}
    \end{itemz}
  }
}


\NEW{Sign}{\sTuringLab}{
  \s\MYname{Turing Lab}
  \s\MYtext{A large laboratory, filled with esoteric and expensive-looking equipment.} 
}

\NEW{Sign}{\sLovecraftLab}{
  \s\MYname{Lovecraft Lab}
  \s\MYtext{A large laboratory, filled with esoteric and expensive-looking equipment.} 
}

\NEW{Sign}{\sDanseyLab}{
  \s\MYname{Dansey Lab}
  \s\MYtext{A large laboratory, filled with esoteric and expensive-looking equipment.} 
}

\NEW{Sign}{\sChurchLab}{
  \s\MYname{Church Lab}
  \s\MYtext{A large laboratory, filled with esoteric and expensive-looking equipment.} 
}

\NEW{Sign}{\sOcean}{
  \s\MYname{The Ocean}
  \s\MYtext{Anywhere forward of this point is the ocean.  Within 34-1
it is deep enough to wade in.  Outside the building it is too deep to
stand, with strong currents flowing outwards.}  }

\NEW{Sign}{\sOffices} {
  \s\MYname{Office Area}
  \s\MYloc{24-120}
  \s\MYtext{Various people have offices in this room.  In true bureaucratic
fashion, this room is filled with cubicles -- or, as the Laundry calls them, ``flexible workspaces''.
}
}

\NEW{Sign}{\sArchives} {
  \s\MYloc{24-112}
  \s\MYname{Bound Material Archives}
  \s\MYtext{A room full of dusty books and old papers.}
}

\NEW{Sign}{\sFiringRange}{
  \s\MYloc{24-110}
  \s\MYname{Firing Range}
  \s\MYtext{A large room where firearms practice usually takes place.
  With the negotiations going on, all weaponry has been removed.}  
}

\NEW{Sign}{\sClassroom}{
  \s\MYloc{36-144}
  \s\MYname{Classroom}
  \s\MYtext{A room filled with desks, with a large blackboard at the front.  Probably used for training sessions.}
}

\NEW{Sign}{\sLearningLab}{
  \s\MYloc{36-155}
  \s\MYname{Teaching Laboratory}
  \s\MYtext{A room filled with large pieces of equipment, used to teach paranormal concepts.}
}

\NEW{Sign}{\sNiceOffices}{
  \s\MYloc{34-302}
  \s\MYname{Office Area}
  \s\MYtext{This appears to be a well-furnished office area, set aside for the base commander and senior manager.\\
  }
}

\NEW{Sign}{\sHilltop}{
  \s\MYname{Hilltop}
  \s\MYtext{A windy hilltop.  The highest point in Dunwich.}
}

\NEW{SignSmall}{\sBunsen}{
  \s\MYname{Bunsen Burner}
  \s\MYtext{A laboratory bunsen burner. Can be used to produce a small flame}
  \notransfer
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NEW{Sign}{\sRitual}{
  \s\MYname{Packet}
  \s\MYtext{Out of game. Open only if you have specifically been told to.}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Research plot blueprints
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcommand{\blueprint}[2]{
  \NEW{SignMedium}{#1}{
    \s\MYname{Laundry Internal Files, \##2}
    
    \s\MYtext{If you know you are looking for this file, someone with
      access to the laundry computers can extract these files with a
      level 3 class $\eta$ ability}
  }
}

\blueprint{\sBlueprintI}{\wFirstPRBlueprint{\MYcode}}
\blueprint{\sBlueprintII}{\wSecondPRBlueprint{\MYcode}}
\blueprint{\sBlueprintIII}{\wThirdPRBlueprint{\MYcode}}
\blueprint{\sBlueprintIV}{\wFourthPRBlueprint{\MYcode}}
