"BYOD" by n-n

The release number is 2.
The story creation year is 2015.
The story genre is "Fiction".

Include Basic Screen Effects by Emily Short.
 
Release along with cover art ("Skyscrapers."), the library card, a "Dos" website, an interpreter and the private source text.

Part 1 - Environment

Chapter 1 - Intro

When play begins:
	display the boxed quotation 
		"These men of the technostructure 
		are the new and universal priesthood. 
		Their religion is business success; 
		their test of virtue is growth and profit.
		
		-- J. K. Galbraith";
	show the current quotation;
	pause the game;
	say "You are starting your IT internship. The firm you were assigned to is McKenzie & Lloyds, a giant in the management consulting and professional services sector (whatever that is). The details you got from the university are scarce: just the address and the date (today).[paragraph break]";
	say "The corporate headquarters is a luxurious steel and glass skyscraper in the heart of the city's financial district. After identifying yourself at the reception, they tell you that the office you are looking for is on the seventeenth floor. They make you pass through a metal detector before accessing the elevators. As the elevator doors open at your destination, you look at the time on your phone. You are one minute early.[paragraph break]";

After printing the banner text:
	say "[line break][bracket]You can type HELP or CREDITS for more information[close bracket][paragraph break]".


Chapter 2 - Office

Instead of examining the player, say "You take a look at yourself. Although you have done your best to dress smartly, you can't help but think that it's not up to expectations in an environment like this.".
The attire is a backdrop which is everywhere. Understand "clothes" or "outfit" as the attire. Instead of examining the attire, try examining the player.

The Office is a room. "The office where it seems you are going to work is an open space occupying most of this level. The soft grey carpeting and diffused light provide the impersonal character required by the corporate order. Employees stare at their screens silently, the only sounds coming from the keystrokes and the air conditioning.". Outside from office is the Exterior.

Instead of listening, say "The postmodern corporation turns out its product quietly. You close your eyes and immerse yourself in the background drone for a few seconds.".

The sound is a backdrop which is everywhere. Understand "sounds" or "conversation" or "conversations" or "keystroke" or "keystrokes" as the sound. Instead of examining the sound, try listening.

The secretary is a woman. "There is a secretary at the first desk from the entrance.". The secretary is in Office. The description is "Sitting behind her PC, she performs her tasks in the most professional manner, oblivious to your presence.".  The secretary can be greeted. Understand "woman" or "lady" or "receptionist" as the secretary.

Employees are a backdrop which is everywhere. The description is "Everyone seems to dress flawlessly and stay focused on their workstations. There is the occasional phone call, and what little of the conversation you catch ('...[one of]value streams[or]drill-down capabilities[or] action points[or]key deliverables[or]agile strategies[at random]...') fills you with an [one of]incomprehensible[or]unfathomable[purely at random] existential [one of]angst[or]dread[purely at random].". Understand "people" or "workers" or "staff" or "employee" or "worker" as employees.

Screens are a backdrop which is everywhere. The description is "You give a quick scan to the screens and notice spreadsheets, presentations and business process modelling. None of it seems terribly exciting.". Understand "workstations" or "spreadsheet" or "spreadsheets" or "presentation" or "presentations" or "business process modelling" or "process modelling" or "modelling" as screens.

Instead of greeting the employees, say "You try approaching some of the people around. They come across as friendly, but then use different excuses to politely evade your requests for help.".

The floor is a backdrop which is everywhere. The description is "The carpeted floor muffles the sound of footsteps. It seems very clean.". Understand "carpet" or "carpeting" or "flooring" as floor.

The bins are a backdrop which is everywhere. The description is "There are multiple trash cans distributed throughout the office.". Understand "can" or "bin" or "cans" or "bins" or "litter" or "garbage" or "trash" or "rubbish" or "basket" or "baskets" or "trashcan" or "trashcans" or "garbage can" or "garbage cans" or "waste basket" or "waste baskets" as the bins.

Instead of taking the bins, try searching the bins.
Understand "search [thing]" or "search in [thing]" or "look in [thing]" or "look into [thing]" or "search into [thing]" or "look inside [thing]" as searching. 
Instead of searching the bins, say "If you want to make a good impression, maybe digging in the trash on your first day is not the way to go.".

The chairs are a backdrop which is everywhere. The description is "There are many chairs, but none of them appears to be free.". Understand "chair" or "seat" or "seats" as the chairs. Instead of taking the chairs, try examining the chairs.

Sitting is an action applying to nothing.
Sitting on is an action applying to one thing.
Understand "sit" or "sit down" as sitting.
Understand "sit on [thing]" or "sit down on [thing]" or "sit in [thing]" or "sit down in [thing]" as sitting on.

Carry out sitting:
	say "There's nothing you can sit on. And you are not sitting on the floor.".
Carry out sitting on:
	try sitting.
Instead of sitting on the chairs, say "There are no free chairs.".
	
The story is a backdrop which is everywhere. The description is "The view through the full-height windows is breathtaking. Other skyscrapers surround this one, and all the building floors in sight look very similar to this.". Understand "building" or "buildings" or "glass" or "window" or "windows" or "windowing" or "outside" or "out window" or "out windows" or "skyscrapers" or "exterior" or "sky" or "office" as the story.

The clock is a backdrop which is everywhere. The description is "The passing of time is inexorable, but in places like this it seems to follow laws of its own.[if Exittime is happening] Your working hours are over, you are free to leave now.". Understand "watch" or "time" as the clock.

Greeting is an action applying to one visible thing. Understand "greet [thing]" as greeting. Understand "greet [thing]" or "talk [thing]" or "talk to [thing]" as greeting.

Instead of greeting the phone, say "There's no one you need to call right now.".
Phoning is an action applying to one thing. Understand "call [thing]" or "phone [thing]" as phoning.
Carry out phoning:
	try greeting the phone.

Instead of greeting something which is not a person, say "You would rather not, there could be people watching.".

Instead of greeting the secretary:
	now the secretary is greeted;
	say "You introduce yourself to the woman, who seems confused by your presence. The only thing you learn after a short but frustrating conversation is that the person that was supposed to receive you today is not here. You still don't know what you are supposed to do, where you are going to sit or what kind of equipment you will be provided with.".

Instead of greeting the secretary at least twice, say "She seems busy. You are not going to obtain further information from her.".

Instead of asking the secretary about something, try greeting the secretary.
Instead of answering the secretary that something, try greeting the secretary.
Instead of telling the secretary about something, try greeting the secretary.

Understand "ex [thing]" as examining.


Section 1 - General responses

Violence Warning is a text that varies. Violence Warning is initially "You [one of]quickly [or]swiftly [or]immediately [or]promptly [or][purely at random]dismiss the intrusive thought[one of] of doing that[or][purely at random].[paragraph break]".

Weirdness Warning is a text that varies. Weirdness Warning is initially "Let's not get [one of]too [or][purely at random]weird, [one of]shall we?[or]please.[purely at random]".

Instead of attacking something, say "[Violence Warning]". Understand "kick [thing]" or "bash [thing]" or "smack [thing]" or "beat [thing]" as attacking.

Shouting is an action applying to nothing. Understand "shout" or "yell" or "scream" or "cry" as shouting.
Carry out shouting:
	say "You'd rather not lose face at this point.".

Instead of opening a person, say "[Weirdness Warning][paragraph break]".
Instead of looking under a person, say "[Weirdness Warning]".
Instead of looking under the player, try examining the floor.
Instead of touching a person, say "[Violence Warning]".		
Instead of pushing a person, say "[Violence Warning]".
Instead of pushing the employees, say "[Violence Warning]".
Instead of opening the employees, say "[Weirdness Warning][paragraph break]".
Instead of kissing the secretary, say "[Violence Warning]".
Instead of kissing something, say "[Weirdness Warning][paragraph break]".
Instead of searching something, say "[Weirdness Warning][paragraph break]".

The can't go that way rule response (A) is "You roam around for a while, and soon find yourself back at the starting point.".
The block thinking rule response (A) is "Therefore, you are.".
The parser error internal rule response (M) is "[Weirdness Warning]".
Instead of eating the woman, say "[Violence Warning]".
Instead of eating something, say "Never mind, your nutrition needs are met.".
Instead of taking the woman, say "[Violence Warning]".
Instead of dropping the woman, say "[Weirdness Warning][paragraph break]".
Instead of taking the employees, say "[Weirdness Warning][paragraph break]".
Instead of dropping the employees, say "[Weirdness Warning][paragraph break]".

Self Warning is a text that varies. Self Warning is initially "'Egoless programming' does not work like that.".
The can't take yourself rule response (A) is "[Self Warning]".
The can't drop yourself rule response (A) is "[Self Warning]".
Instead of eating the player, say "[Self Warning][paragraph break]".

The report jumping rule response (A) is "You find a quiet spot and jump discreetly as a calming ritual. Its effects are uncertain, though.".

Singing is an action applying to nothing. Understand "sing" as singing.
Carry out singing:
	say "You subvocalize part of an old song that just popped into your head.".

Xyzzying is an action applying to nothing. Understand "xyzzy" as xyzzying.
Carry out xyzzying:
	say "[one of]A hollow voice over the PA says that a fire drill will take place within the next few days[or]Nothing obvious happens[stopping].".


Part 2 - Equipment

An app is a kind of backdrop.

A smartphone is a kind of thing.

Hosting relates one smartphone to various apps.

The verb to host means the hosting relation.

The phone is an smartphone. It is carried. Understand "phone" or "telephone" or "handset" or "mobile" or "cell" or "cellphone" or "cell phone" as the phone. The description is "An outdated but sturdy model, designed with function more than aesthetics in mind. The following applications are installed: [the list of apps that are hosted by the phone]".

Instead of dropping the phone, say "Acute nomophobia prevents you from letting go of it.".
Instead of giving the phone to someone, try dropping the phone.
Instead of switching off the phone, say "You never switch your phone off.".
Instead of switching on the phone, say "It is already on.".

After examining the phone for the first time:
	say "[bracket]You can examine each app individually[close bracket][paragraph break]";

Instead of examining an app which is not hosted by the phone, say "That application does not appear to be installed.[line break]".

A connectable is a kind of thing. It has a text called address.

The printer is a connectable. "Sitting out of the way against a wall, you notice a printer.". It has address "C0A01". The description is "A stand-alone laser printer. It's labeled with the text [address].". It is in Office. Instead of opening the printer, say "[one of]At first glance you[or]You[stopping] don't see a way to open it.".

Instead of taking the printer, say "It is too large. Moreover, it is plugged in.".
Instead of switching on the printer, say "It is already on.".
Instead of switching off the printer, say "You would rather not. Someone may need to use it.".
Understand "unplug [thing]" as switching off.

null is a connectable. The printed name is "nothing". The description is "nothing".

A sheet is a kind of thing. A sheet has a text called message. A sheet has a number called fontsize. A sheet has a text called textsize.

The print is a sheet. The description of the print is "A printed sheet. It reads '[message]' in [textsize] font size.". It is nowhere. Understand "paper" or "sheet" or "printed sheet" or "page" as the print.

Instead of dropping the print:
	now the print is nowhere;
	say "You crumple the paper into a ball and throw it in a bin.";
	if the player is in Office and Assignment has not ended, say "[line break]The secretary casts a suspicious glance at you.".

Instead of attacking the print, try dropping the print. Instead of inserting the print into the bins, try dropping the print. Understand "throw away [thing]" or "toss [thing]" as dropping.
Instead of eating the print, try dropping the print.

The fountain is a thing. "In a corner you can see a drinking fountain.". It is in Office. The description is "The fountain is shaped like a square column and just over one meter tall. On the top it has a button and a spout.[if the fountain is broken and the notice is not in Office] It does not seem to work.".  Understand "drinking" or "drinking fountain" or "water" or "column" as the fountain. The spout is a part of the fountain. The description is "A small nozzle that should squirt a curved stream of water when the button is pressed.". Understand "pipe" or "nozzle" or "spigot" or "tap" as the spout. The fountain can be broken.

Instead of taking the fountain, say "Forget it, it's very large and mounted to the wall.".
Instead of opening the fountain, say "You don't feel qualified to do that. Moreover, it's probably someone else's job to do it.".

The button is a part of the fountain.  The description is "Round and metallic. You assume that pressing it makes water come out of the spout.". Instead of drinking a thing, try pushing the button. Instead of pushing the fountain, try pushing the button. Instead of pulling the fountain, try pushing the fountain.

After pushing the button for the first time:
	now the fountain is broken;
	say "You push the button. The fountain starts vibrating and emits a loud scraping noise. Not even a drop of water comes out.[paragraph break]The secretary looks up. 'Is it broken? I'll call maintenance and ask them to look at it.'[paragraph break]".

Instead of pushing the button at least twice:
	say "It is clear that the fountain does not work. You don't want to cause further damage.".

The notice is a thing. It is scenery. The description is "You admire the product of your first assignment at the company.". It is nowhere. Instead of taking the notice, say "They didn't repair the fountain yet, you'd rather leave it where it is.". Understand "sign" as the notice.

After examining the fountain when the notice is in Office:
	say "There is a notice on it, warning that it does not work.";

The AC is a connectable. It has address "C0A02". It is in Office. It is scenery. The description is "You cannot see it, but it's a system that regulates room temperature.". Understand "air" or "air conditioning" or "air conditioner" or "conditioning" or "conditioner" as the AC.

The desk is scenery. The description is "A regular office desk with no special features. Resting on it is the personal computer that the secretary is using.". It is in Office. Understand "table" or "first desk" or "front desk" as the desk.

The PC is a connectable. It is on the desk. Understand "computer" or "desktop" or "terminal" as the pc. It has address "C0A03". It is scenery. The description is "The secretary works with a desktop PC. In elegant black color, it looks brand new. On the monitor there are some sticky notes.". The screen is part of the pc. Understand "note" or "notes" or "monitor" or "postit" or "postits" or "sticky" as the screen. The description is "One of the notes stuck to the monitor clearly reads [the address of the pc] in pencil.". Instead of taking the screen, say "You'd better not, the secretary could get angry.". Instead of taking the pc, try taking the screen.

Instead of switching on the pc, say "You'd rather not be seen lurking around a device that is not yours.". Instead of switching off the pc, try switching on the pc.

The ceolaptop is a connectable. It has address "C0A10". It is nowhere.

The PA is a connectable. It has address "C0A05". It is in Office. It is scenery. The description is "You scan your surroundings looking for the PA, but can't find it.". Instead of taking the PA, try examining the PA. Instead of pushing the PA, try examining the PA. Instead of pulling the PA, try examining the PA. Instead of dropping the PA, try examining the PA.

Part 3 - Main scenes

Intro is a scene. Intro begins when the player is in Office. Intro ends when the fountain is broken.
Every turn during Intro:
	If the remainder after dividing the turn count by 10 is 0:
		say "Your [one of]mouth[or]throat[purely at random] feels dry, [one of]likely[or]probably[purely at random] because of the air conditioning.".

Assignment is a scene. Assignment begins when the fountain is broken and the secretary is greeted. Assignment ends when the notice is in Office.

When Assignment begins:
	say "The woman halts for a second, frowns and turns to you: 'You are going to work here then, aren't you? Look, you could make a sign reading 'Out of Order' for me to put on the fountain, until someone from maintenance comes to see it'.".
		
After examining the secretary when Assignment is happening:
	say "She occasionally makes eye contact with you, as a reminder of the task she has entrusted to you.".
	
To decide whether textrefused (T - text):
	let temp be the player's command;
	change the text of the player's command to T;
	if the player's command matches "out of order":
		no;
	otherwise:
		yes.

To decide whether sizerefused (N - number):
	if N is less than 13,
		yes;
	no.
	
Instead of giving the print to the secretary when Assignment is happening:
	now the print is nowhere;
	say "You walk towards the secretary's desk and hand her the printout.";
	if textrefused the message of the print:
		say "[line break]'What is this?' She says, crumpling the paper and throwing it in a bin. 'I told you it had to read OUT OF ORDER. It's for the fountain, don't you remember?'.";
	otherwise:
		if sizerefused the fontsize of the print:
			say "[line break]Pointing at the text, she says: 'It's too small. Try to make it a bit larger, will you?'. The secretary puts the sheet away into a pile of used paper.";
		otherwise:
			now the notice is in Office;
			say "[line break]She stands, walks to the fountain and sticks the sign to it. 'Good job', she says, returning to her desk.";

Instead of giving the print to the secretary when Assignment has happened:
	say "'One was enough, thank you very much.'[paragraph break]";

Exittime is a scene. Exittime begins when Assignment ends.

When Exittime begins:
	say "On a passing glance at a clock you notice that what were supposed to be your working hours today are over. You are free to leave.".

Instead of going outside from Office when Exittime has not happened, say "Your work day is not over yet.".

Seenceo is a number that varies. Seenceo is initially 0.

Instead of going outside from Office when Exittime has happened:
	say "After having gone mostly unnoticed for hours, you head for the exit.[paragraph break]";
	if there is a filename of "private" in the Table of Filesystem:
		say "When you are passing by the secretary's desk, you see [if seenceo is 0]a man[otherwise]the firm's CEO[end if] approaching. He leans on the desk and whispers something to the woman that you can't quite hear. The man smiles like a shark before going back to where he came from. She looks down, seemingly distressed, and gets back to work.[paragraph break]You leave the office feeling uneasy, as if something has been left unfinished.";
	otherwise:
		say "Before you reach the door you come across [if seenceo is 0]a tall man[otherwise]the firm's CEO[end if]. He stands still in front of a corridor, looking from a distance at the secretary's desk. He seems to be extremely furious, fists clenched and gritted teeth. You sneak past him, taking advantage of the fact that your position in the company makes you all but invisible to his eyes.[paragraph break]You leave the office smiling on the inside, assured that you did your best today.";
	end the story finally.

Part 4 - Apps

Chapter 1 - App basics

Table of Networking
Topic	Destination
"c0a01"	printer
"c0a02"	ac
"c0a03"	pc
"c0a05"	pa
"c0a10"	ceolaptop


Mode is a kind of value. The modes are ro, rw and wo.

Table of Filesystem
Connectable	Topic	Filename	Mode	Content
printer	"info"	"info"	ro	"* Device info *[line break]Serial number: e34f98a[line break]Status: Ready." 
printer	"out"	"out"	wo	--
printer	"font"	"font"	rw	"12"
ac	"cmos"	"cmos"	ro	"Grünberg Klimaanlagen GmbH[line break]Serialnummer: 5f8df6d2-578f[line break]Einheit: C"
ac	"temp"	"temp"	rw	"22"
pc	"mbox0"	"mbox0"	ro	"--[line break]From: ceo@mkl.corp[line break]X-Originating-Address: [bracket]c0a10[close bracket][paragraph break]As I told you, I have the most excellent selection in my wine cellar. If you change your mind and come have a taste you won't regret it.[line break]--"
pc	"mbox1"	"mbox1"	ro	"--[line break]From: ceo@mkl.corp[line break]X-Originating-Address: [bracket]c0a10[close bracket][paragraph break]You keep avoiding me, and you just might not want to upset me. Remember I am in possession of certain pictures you wouldn't like to see circulating.[line break]--"
pc	"mbox2"	"mbox2"	ro	"--[line break]From: ceo@mkl.corp[line break]X-Originating-Address: [bracket]c0a10[close bracket][paragraph break]They must not be so bad if you sent them to me yourself, don't you think? Nothing needs to happen, if we get along.[line break]--"
pc	"power"	"power"	rw	"1"
ceolaptop	"cam"	"cam"	ro	"[variable letter spacing]A live video stream from what seems to be a laptop camera. On the other end sits a middle-aged man. His complexion and square jaw project physical strength, while the expensive outfit, tanned skin and combed back hair, grey at the temples, all signal power. Behind him there is a panoramic view of the financial district. He seems to be located in this same building."
ceolaptop	"q4"	"q4"	rw	"[variable letter spacing]A presentation of the company's latest quarterly results. Increased revenue and aggressive cuts in operating costs have turned out an extremely positive balance for the management board and shareholders."
ceolaptop	"private"	"private"	rw	"[variable letter spacing]A folder containing image files. Gut instinct prevents you from opening them."
pa	"rom"	"rom"	ro	"Audiotronics InfoCast SY-2[line break]Product ID: FE3DF1695DCB"
pa	"tts"	"tts"	wo	--
null	"null"	"null"	rw	--


Chapter 2 - vfs

vfs is an app. It is everywhere. The printed name is "VFS". The description is "The software equivalent of a Swiss knife. This tool from the underground scene grants transparent access to networked devices. The first step is to start a session by connecting to a remote host. Having done so, the user can work directly on the device's filesystem. The supported commands are:[paragraph break][fixed letter spacing]  VFS CONNECT <address> [bracket]start a session on a device[close bracket][line break]  VFS LS                [bracket]list files on the connected device[close bracket][line break]  VFS READ <file>       [bracket]show the content of a file on the connected device[close bracket][line break]  VFS WRITE <file>      [bracket]write to a file on the connected device[close bracket][line break]  VFS RM <file>         [bracket]delete a file from the connected device[close bracket][variable letter spacing]". The phone hosts vfs.

Current vfs host is a connectable that varies. Current vfs host is initially null.

After examining vfs:
	if current vfs host is null:
		say "[fixed letter spacing]No session established.[variable letter spacing][paragraph break]";
	otherwise:
		say "[fixed letter spacing]Established session on: [the address of Current vfs host][variable letter spacing][paragraph break]";

Section 1 - vfs connect

Understand "vfs connect [text]" as vfs connecting.
vfs connecting is an action applying to one topic.

Before vfs connecting:
	say "[fixed letter spacing]Attempting connection with [The topic understood]...".
   
Carry out vfs connecting:
	say "[fixed letter spacing]Connection error.[variable letter spacing][paragraph break]".

Instead of vfs connecting a topic listed in the Table of Networking:
	let mitopic be the topic understood;
	say "[fixed letter spacing]Session established on [mitopic].[variable letter spacing][paragraph break]";
	now Current vfs host is destination entry;

No Session is a text that varies. No Session is initially "[fixed letter spacing]You must first establish a session.[variable letter spacing][paragraph break]".

Section 2 - vfs ls

Understand "vfs ls" as vfs listing.
vfs listing is an action applying to nothing.

Check vfs listing:
	if current vfs host is null:
		say "[No Session]" instead;

Report vfs listing:
	say "[fixed letter spacing]Files on [the address of current vfs host]:[paragraph break]";
	repeat through the Table of Filesystem:
		if connectable entry is current vfs host:
			say "  [filename entry] ([mode entry])[line break]";
	say "[line break][bracket]wo=write only, rw=read/write, ro=read only[close bracket][variable letter spacing][paragraph break]".

Section 3 - vfs read

Understand "vfs read [text]" as vfs reading.
vfs reading is an action applying to one topic.

Check vfs reading:
	if current vfs host is null:
		say "[No Session]" instead;

Carry out vfs reading:
	say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";

Carry out vfs reading a topic listed in the Table of Filesystem:
	if current vfs host is connectable entry:
		if mode entry is wo:
			say "[fixed letter spacing]File read: Permission denied.[variable letter spacing][paragraph break]";
		otherwise:
			say "[fixed letter spacing][content entry][variable letter spacing][paragraph break]";
			[TODO: Ver si estas restricciones se pueden sacar a otro sitio!]
			if filename entry is "cam", now seenceo is 1;
	otherwise:
		say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";
	stop the action.

Section 4 - vfs write

Understand "vfs write [text]" as vfs writing.
vfs writing is an action applying to one topic.

Check vfs writing:
	if current vfs host is null:
		say "[No Session]" instead;

Carry out vfs writing:
	say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";

vfs write prompt is a text that varies. vfs write prompt is initially "Content: ".
vfs write file is a text that varies. vfs write prompt is initially "null".
vfs write content is a text that varies. vfs write content is initially "".
vfs listener is a number that varies. vfs listener is initially 0.

Carry out vfs writing a topic listed in the Table of Filesystem:
	if current vfs host is connectable entry:
		if mode entry is ro:
			say "[fixed letter spacing]File write: Permission denied.[variable letter spacing][paragraph break]";
		otherwise:
			if filename entry is "out" and the print is visible:
				say "You already have a print. Think of the trees.";
			else if filename entry is "private":
				say "You feel you have to do something, but it's not this.";
			else if filename entry is "tts" and Announce has happened:
				say "Let's not overdo this or you'll get caught.";
			else if filename entry is "font" and vfs write file is "out" and vfs listener is 1:
				say "[fixed letter spacing]Error: printing in progress[variable letter spacing][paragraph break]";
			otherwise:
				Now vfs listener is 0;
				Now vfs write file is filename entry;
				now vfs write prompt is "[filename entry] = ";
				now the command prompt is "[vfs write prompt]";
	otherwise:
		say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";
	stop the action.

Command-text is initially "".
After reading a command:
	now command-text is the player's command.
	
After reading a command when the command prompt is vfs write prompt:
	now command-text is the player's command;
	now the content corresponding to a filename of vfs write file in the Table of Filesystem is command-text;
	now vfs write content is command-text;
	now vfs listener is 1;
	now the command prompt is ">";
	say "[fixed letter spacing]File written.[variable letter spacing][paragraph break]";
	reject the player's command;

To decide which number is numberparsed (T - text):
	let N be a number;
	let temp be command-text;
	change the text of the player's command to T;
	if the player's command matches "[number]":
		let N be the number understood;
	change the text of the player's command to temp;
	decide on N.
 
Printout is a recurring scene. Printout begins when vfs listener is 1 and vfs write file is "out". Printout ends when vfs listener is 0.

When Printout begins:
	now vfs listener is 0;
	let txt be the content corresponding to a filename of "out" in the Table of Filesystem;
	let size be the content corresponding to a filename of "font" in the Table of Filesystem;
	if size matches the regular expression "\D":
		let size be "12";
	if the player can see the printer:
		say "The printer hums. Seconds later, a print comes out of its front side.";
	now the message of the print is txt;
	let numsize be numberparsed size;
	now the fontsize of the print is numsize;
	if numsize < 12:
		now the textsize of the print is "small";
	if numsize > 12:
		now the textsize of the print is "large";
	if numsize is 12:
		now the textsize of the print is "medium";
	now the print is in Office.

Tempchange is a recurring scene. Tempchange begins when vfs listener is 1 and vfs write file is "temp". Tempchange ends when vfs listener is 0.

When Tempchange begins:
	now vfs listener is 0;
	let temp be the content corresponding to a filename of "temp" in the Table of Filesystem;
	if temp matches the regular expression "\D":
		say "Nothing seems to happen.";
	otherwise:
		let newtemp be numberparsed temp;
		if newtemp is less than 22, say "The cold current cruelly expelled by the air conditioning system makes you shiver.";
		if newtemp is 22, say "The temperature seems to stabilize at an adequate level.";
		if newtemp > 22, say "The air conditioning is now on heat mode. You are embarrassed by the smell of polyester soaked with your own sweat.".

Powerdown is a recurring scene. Powerdown begins when vfs listener is 1 and vfs write file is "power". Powerdown ends when vfs listener is 0.

When Powerdown begins:
	now vfs listener is 0;
	let pow be the content corresponding to a filename of "power" in the Table of Filesystem;
	if pow matches the regular expression "0":
		if player is in Office, say "The secretary's PC shuts down. Muttering to herself, she switches it back on and waits for it to boot.";
	now the content corresponding to a filename of "power" in the Table of Filesystem is "1";

Announce is a scene. Announce begins when vfs listener is 1 and vfs write file is "tts". Announce ends when vfs listener is 0.

When Announce begins:
	now vfs listener is 0;
	let announcement be the content corresponding to a filename of "tts" in the Table of Filesystem;
	say "A hollow voice over the PA says, '[announcement].'[paragraph break]Puzzled looks ensue.".

Section 5 - vfs rm

Understand "vfs rm [text]" as vfs deleting.
vfs deleting is an action applying to one topic.

Check vfs deleting:
	if current vfs host is null:
		say "[No Session]" instead;

Carry out vfs deleting:
	say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";


Carry out vfs deleting a topic listed in the Table of Filesystem:
	if current vfs host is connectable entry:
		if mode entry is ro:
			say "[fixed letter spacing]File delete: Permission denied.[variable letter spacing][paragraph break]";
		otherwise:
			if filename entry is "private":
				blank out the whole row;
				say "[fixed letter spacing]File(s) deleted.[variable letter spacing][paragraph break]";
			otherwise:
				say "You reconsider and decide not to try that. You could get in trouble.";
	otherwise:
		say "[fixed letter spacing]File not found: [the topic understood][variable letter spacing][paragraph break]";
	stop the action.

Chapter 3 - Other apps

msc is an app. It is everywhere. The printed name is "MSC". The description is "MSC is a music player app. You can start it with [fixed letter spacing]MSC PLAY[variable letter spacing].". the phone hosts msc.

Understand "msc play" as msc playing.
msc playing is an action applying to nothing.

Carry out msc playing:
	say "A random [one of]pop[or]power pop[or]surf[or]easy listening[or]exotica[or]rock[or]rock'n'roll[or]prog-rock[or]glam rock[or]hard rock[or]goth[or]postpunk[or]post-rock[or]post-hardcore[or]rockabilly[or]swing[or]heavy metal[or]death metal[or]thrash metal[or]progressive metal[or]doom metal[or]psychobilly[or]punk rock[or]hardcore[or]grindcore[or]classical[or]Baroque[or]ambient[or]Renaissance[or]techno[or]ambient[or]trance[or]dubstep[or]reggae[or]dub[or]dub techno[or]industrial[or]noise[or]indie[or]country[or]flamenco[or]jazz[or]folk[or]world[or]chill[or]blues[or]soul[or]opera[or]bossa nova[or]calypso[or]salsa[or]ska[or]electronic[or]power metal[or]gospel[or]black metal[or]soca[or]reggaeton[or]fado[or]latin jazz[or]free jazz[or]drum'n'bass[or]jungle[or]pop-rock[or]gamelan[or]experimental[or]minimal[or]house[or]acid house[or]deep house[or]hardcore techno[or]tech-house[or]dance[or]italo disco[or]indietronica[or]singer-songwriter[or]rap[or]hip hop[or]trip hop[or]Miami bass[or]chamber[or]K-pop[or]zydeco[or]grunge[or]afrobeat[or]garage[or]funk[or]breakcore[or]goa trance[or]goregrind[or]dancehall[or]synthwave[or]vaporwave[or]doo wop[or]synthpop[or]psychedelic[or]EBM[or]IDM[at random] music track starts playing. You hold it for a few seconds and then close the app, before someone tells you off.";

Part 5 - Help, credits, tests

Understand "help" as a mistake ("As usual in interactive fiction, the story is controlled by typing simple commands (like OPEN DOOR or EXIT) and ending them with the <Enter> key.[paragraph break]Some important commands:[paragraph break]  HELP [bracket]show this message[close bracket][line break]  LOOK [bracket]or L, describe the current location[close bracket][line break]  EXAMINE object [bracket]can be shortened to EX or X[close bracket][line break]  INVENTORY [bracket]or I, list the objects you are carrying[close bracket][paragraph break]  UNDO [bracket]cancel the effect of the last command[close bracket][line break]  SAVE [bracket]record the current state of the story to continue it later[close bracket][line break]  RESTORE [bracket]continue a previously saved story[close bracket][line break]  RESTART [bracket]reset the story to the starting point[close bracket]").

Understand "credits" or "about" as a mistake ("Written by n-n (no2nsense@gmail.com).[line break]Proofread by IFforL2.[line break]Tested by MathBrush and Vivienne Dunstan.[line break]The original 2015 Spanish release was tested by dddddd and Javier Lozano.[paragraph break]Thanks to the community at CAAD (Club de Aventuras AD) for their promotion of interactive fiction in Spanish language.[paragraph break]This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.").

test pc with "vfs connect c0a03 / vfs ls / vfs read mbox0 / vfs read mbox1 / vfs read mbox2 / vfs write power / 1 / z / vfs write power / 0 / z / vfs connect c0a10 / vfs ls / vfs read cam / vfs read q4 / vfs rm q4 / vfs read private / vfs write private"

test temp with "vfs connect c0a02 / vfs read cmos / vfs read temp / vfs write temp / 15 / z / vfs write temp / 30 / z / vfs write temp / 22 / z / vfs connect c0a05 / vfs read rom / vfs write tts / hello world / z / vfs write tts"

test vfs with "x phone / x vfs / x msg / vfs connect xxx / vfs ls / vfs read xx / vfs connect c0a01 / x vfs / vfs ls / vfs read out / vfs read font / vfs write info / vfs write font / 24 / vfs read font / vfs write out / Hello World / z / x print / get print / vfs write out / vfs rm font / vfs rm out / vfs rm info / drop print / vfs write font / 1 / vfs write out / xxx / z / x print / drop print / vfs write font / 12 / vfs write out / xxx / z / x print / vfs write font / xxx / vfs write out / xxx / z / x print"

test me with "woman, hello / x fountain / drink water / x secretary / vfs connect c0a01  / vfs write out / XXX / vfs write font / get print / x print / give print to secretary / vfs write out / OUT OF ORDER / z / get print / x print / give print to secretary / vfs write font / 13 / vfs write out / OUT OF ORDER / z / get print / x print / give print to secretary / x fountain / x notice / get notice"

test bug with "vfs connect c0a01 / vfs write out / xx / x printer"
