Oddity with player has object

winusoft

I'm not sure if this is an oddity, or if there is a problem with my logic somewhere.

I've got an exit from the garden to the garage, which is locked, unless the player has a blueprint. If I play the game, pick up the blueprint and try to go to the garage, it works as expected. If I go straight to the garage without the blueprint, then it tells me that I need it.

But, if I go to the garage, get told I need the blueprint and then go to pick it up, the game doesn't seem to realise that I have it and won't let me in.

My code is...

if (Got(blueprint)) {
  firsttime {
    msg ("You read the electric blueprint and somehow get the lights working again.")
    UnlockExit (garage door)
    MoveObject (Sir Muscles Sexy Face, garage)
  }
  otherwise {
    UnlockExit (garage door)
    MoveObject (Sir Muscles Sexy Face, garage)
  }
}
else {
  msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.")
  LockExit (garage door)
}

Can anyone see what is wrong with this?

Or, is there a better way to require an object to enter a room?


Crusader58

You're only checking for the player carrying the blueprint the first time they try entering the garage, you need to add the check for carrying blueprint as an 'else if'/else.

if (Got(blueprint)) {
  firsttime {
    msg ("You read the electric blueprint and somehow get the lights working again.")
    UnlockExit (garage door)
    MoveObject (Sir Muscles Sexy Face, garage)
  }
  otherwise {
    UnlockExit (garage door)
    MoveObject (Sir Muscles Sexy Face, garage)
  }
}
else if (Got(blueprint)) {
  Unlockexiit (garage door)
  MoveObject (Sir Muscles Sexy Face, garage)
}
else {
  msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.")
  LockExit (garage door)
} 

The Pixie

Where is the code you pasted? Is it on the exit or the room?

Assuming "Sir Muscles Sexy Face" the player, and the script is on the exit and the exit is called "garage door" and is ticked as locked (and I have understood what you are trying to do)....

The first thing to check is if the door is locked. If it is not locked, the player can go though. If it is, then you want to check if the player has the blueprint. If so, unlock, otherwise the player is going nowhere.

if (not garage door.locked) {
  MoveObject (Sir Muscles Sexy Face, garage)
}
else if (Got(blueprint)) {
  msg ("You read the electric blueprint and somehow get the lights working again.")
  UnlockExit (garage door)
  MoveObject (Sir Muscles Sexy Face, garage)
}
else {
  msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.")
}

winusoft

I think I see what you mean, thank you.

I've modified it to the below, but am still having the same problem.

if (Got(blueprint)) {
  firsttime {
    msg ("You study the electric blueprint and somehow get the lights working again.")
    UnlockExit (garage door)
    MoveObject (Sir Muscles Sexy Face, garage)
  }
}
else if (Got(blueprint)) {
  UnlockExit (garage door)
  MoveObject (Sir Muscles Sexy Face, garage)
}
else {
  msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.")
  LockExit (garage door)
}

Have I got my 'if's nested incorrectly?


winusoft

The Pixie - You're correct, that's exactly what I am trying to do.

I've just ticked locked on the garage door exit and added your script... but when I pick up the blueprint and go to the garage, I still get the message:

go to garage
Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.

The script is on the exit (garage door) and not the room.


The Pixie

I do not see how my script can get to "Gah! No lights! ..." if you are carrying the blueprints. Is there more than one blueprints object? Is there something else with this script on it, perhaps from when you were trying things before?


winusoft

I have a 'blueprint' and also an 'electric blueprint'.

I've just deleted the 'blueprint', so I only have 'electric blueprint' left, and updated the script to look for 'electric blueprint', but I still get "Ga! No...".

I've deleted all my tests from everywhere else.


winusoft

I just made a new item to open the garage with and a new exit and I'm having the same problem.


hegemonkhan

post your entire game code, and we can trouble-shoot it for you, easier for us to look at code, than for you (and us trying to help from what you tell us, which may not be useful for what the issue is, as you're still learning to code) to try to identify and post the bad code, for us to then fix it for you.

(if you modified the built-in stuff: filter -> show library elements -> copy... then we'll need to know what you did, so we can undo it, otherwise... you'll have to make a new game)


winusoft

You guys are awesome, thank you.

You can either download the .aslx file from here: https://drive.google.com/file/d/0B1dhdXv445bKaE9NamlRNldoMk0/view?usp=sharing or code is below.

I've gone back to using the electric blueprint (in the kitchen when you start) and the garage door comes off the garden.

<!--Saved by Quest 5.6.6108.15891-->
<asl version="550">
  <include ref="English.aslx" />
  <include ref="Core.aslx" />
  <game name="Dan's Burfdaee Quest">
    <gameid>d06be298-080e-46e8-8463-9bd3314fd010</gameid>
    <version>1.0</version>
    <firstpublished>2017</firstpublished>
    <enablehyperlinks />
    <author>Queen Unicorn</author>
    <gridmap type="boolean">false</gridmap>
    <attr name="autodescription_youcansee" type="int">3</attr>
    <attr name="autodescription_youcango" type="int">4</attr>
    <attr name="autodescription_description" type="int">2</attr>
    <autodescription_youarein_newline />
    <autodescription_youcansee_newline />
    <autodescription_youcango_newline />
    <autodescription_description_newline />
    <povstatusattributes type="stringdictionary" />
    <cover>Dan game.png</cover>
    <subtitle>Solve the quests to find some prezzzzentz.</subtitle>
    <category>Puzzle</category>
    <attr name="feature_asktell" type="boolean">false</attr>
    <pov type="object">Sir Muscles Sexy Face</pov>
  </game>
  <verb name="eat">
    <pattern>eat #object#;drink #object#</pattern>
    <property>eat</property>
    <defaulttemplate>DefaultEat</defaulttemplate>
  </verb>
  <object name="kitchen">
    <inherit name="editor_room" />
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <description>This is the social hub of Castle Danikey.</description>
    <descprefix>You are in</descprefix>
    <object name="freezer">
      <inherit name="editor_object" />
      <look>Hmmmm. It is iced shut. Stupid freezer. Bet it's one of those 'frostless' ones too...</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <useon type="scriptdictionary">
        <item key="hot tyres">
          msg ("You cut the hot tyres into strips and place them all around the edges of the freezer. You count to beer (it's a number in your head), and give it a good whack. The door swings open.")
          AddToInventory (gift 8 of 10)
          MakeObjectInvisible (hot tyres)
          msg ("You're pretty sure you saw the corner of a presenty shaped thing somewhere towards the back. You totally forget why you were opening the freezer in the first place and dig out the gift. There's no name on it, but no one else in the house is cool enough to have frozen gifts.")
        </item>
      </useon>
      <object name="gift 8 of 10">
        <inherit name="editor_object" />
      </object>
    </object>
    <object name="time warping washing machine">
      <inherit name="editor_object" />
      <look>This washing machine seems to be stuck in some kind of futuristic timewarp or something. You need to find a way to reverse this so you can open it.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <useon type="scriptdictionary">
        <item key="spanner"><![CDATA[
          msg ("You poke the spanner in his draw. Nothing happens. Then you get a bit more involved, poking here, spannering there, with the odd kick for good measure.<br/>The washing machine splutters a little and comes back to the present time. Wonderful.")
          AddToInventory (gift 10 of 10)
          MakeObjectInvisible (time warping washing machine)
          MoveObjectHere (washing machine)
          msg ("You open the door. Mr Washing Machine seems to have collected a gifty kind of thing on his time adventures. You grab it, hoping you aren't about to start time-hopping or something.")
          MakeObjectInvisible (spanner)
        ]]></item>
      </useon>
      <object name="gift 10 of 10">
        <inherit name="editor_object" />
        <look>It looks gifty. You conclude this is probably exactly what it is.</look>
      </object>
      <object name="washing machine">
        <inherit name="editor_object" />
        <look>The washing machine is feeling much better now you have de-warped it.</look>
      </object>
    </object>
    <object name="sink">
      <inherit name="editor_object" />
      <look>Looks like your average sink. The tap is annoyingly wibblywonky.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You try to get in the sink for a quick bath, but sadly come to the conclusion that you simply do not fit.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="cleaning cupboard">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <look>It smells funny in here. Not that you need to go in here very often anyway. That's what females are for.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_container />
      <listchildren />
      <object name="strength gel">
        <inherit name="editor_object" />
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>some</prefix>
        <look>Reads "for muscle improvement". You are unsure if this is a cleaning item or not.</look>
        <take />
        <takemsg>You are fairly sure you won't need muscle improvement, but you take it anyway.</takemsg>
        <drop type="boolean">false</drop>
      </object>
    </object>
    <object name="oven">
      <inherit name="editor_object" />
      <look>He seems to think he "ovens therefore he is". You wonder about his prospects for a promotion.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>an</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You cannot use the oven right now... it's questing time!")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="various cupboards">
      <inherit name="editor_object" />
      <inherit name="container_open" />
      <look>Full of various foody and platey things... with the odd googly eye for good measure.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <attr name="feature_container" type="boolean">false</attr>
      <listchildren />
      <hidechildren type="boolean">false</hidechildren>
      <open type="boolean">false</open>
      <close type="boolean">false</close>
      <isopen type="boolean">false</isopen>
      <feature_usegive />
      <use type="script">
        msg ("The cupboards dislike you. Stop trying to use them.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Open</value>
        <value>Close</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="giant table of awesome">
      <inherit name="editor_object" />
      <look>You notice various knife marks in it and hope that it isn't going to start fighting back any time soon. You would not enjoy to be chased by a giant table.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You may use the table later. He is working up to his next stabbing. Please be patient.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="sofa for many snoozing">
      <inherit name="editor_object" />
      <look>You know you're cool when you've got a sofa in your kitchen. You level up in awesome.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <sit>It is really not time for sofa sitting. Or lazing. Or anything that is related to not questing.</sit>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <exit alias="lower hallway" to="lower hallway">
      <prefix>go to the</prefix>
    </exit>
    <object name="dishwasher">
      <inherit name="editor_object" />
      <look>Mainly for cleaning dishes, although can be used as a parts washer if you're desperate.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("Lasy ass. Do the washing up like a man.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="microwave">
      <inherit name="editor_object" />
      <look>You have never seen him perform a micro wave, even though he insists this is what he is. Liar.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("There is nothing to microwave today. You do a micro wave to him instead.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="fridge">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <look>It is fridge shaped and very fridgey. People sometimes put rude words on the front of it.</look>
      <feature_container />
      <listchildren />
      <listchildrenprefix>In the fridge, you find</listchildrenprefix>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="huge chicken drumstick">
        <inherit name="editor_object" />
        <take />
        <takemsg>You stick the large chicken drumstick in your pocket. It might be good for something.</takemsg>
        <drop type="boolean">false</drop>
        <scenery type="boolean">false</scenery>
        <look>This chicken drumstick is absolutely massive. It must have come from a megga chicken.</look>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>a</prefix>
      </object>
      <object name="some items of questionable nature">
        <inherit name="editor_object" />
        <scenery type="boolean">false</scenery>
        <look>You do not want to know what these are. They look a little soggy and fluffy.</look>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
      </object>
      <object name="beer">
        <inherit name="editor_object" />
        <inherit name="edible" />
        <scenery type="boolean">false</scenery>
        <look>Everyone should have beer in their fridge. You are immediately untrusting of those that don't, and for good reason.</look>
        <feature_edible />
        <eatmsg>You down the beer in one, awarding yourself a manly beer drinking point as you swallow.</eatmsg>
        <displayverbs type="stringlist">
          <value>Look at</value>
          <value>Take</value>
          <value>Eat</value>
          <value>Drink</value>
        </displayverbs>
        <inventoryverbs type="stringlist">
          <value>Look at</value>
          <value>Use</value>
          <value>Drop</value>
          <value>Eat</value>
          <value>Drink</value>
        </inventoryverbs>
        <eat type="script">
          if (HasString(this, "eatmsg")) {
            msg (this.eatmsg)
          }
          else {
            msg (DynamicTemplate("Eaten", this))
          }
          if (HasInt(game.pov, "health")) {
            game.pov.health = game.pov.health + this.eathealth
          }
          destroy (this.name)
        </eat>
        <changedeat type="script">
        </changedeat>
      </object>
      <object name="lots of googly eyes">
        <inherit name="editor_object" />
        <look>The googly eyes stare back at you. It's as if they can see into your soul. You realise shoes have soles and wonder if that's related or not.</look>
        <scenery type="boolean">false</scenery>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
      </object>
      <object name="blue cheese">
        <inherit name="editor_object" />
        <inherit name="edible" />
        <feature_edible />
        <eatmsg>You scoff the cheese in seconds, watching your man point-ometer reach 110%.</eatmsg>
        <look>The sexiest, giantest slab of blue cheese any man could require in his fridge.</look>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>some</prefix>
      </object>
      <object name="wine">
        <inherit name="editor_object" />
        <inherit name="edible" />
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>a bottle of</prefix>
        <look>Some fancy white tempranillo stuff.</look>
        <displayverbs type="stringlist">
          <value>Look at</value>
          <value>Drink</value>
        </displayverbs>
        <drink>You open the wine with a pop and pour it down your mouth.</drink>
        <feature_edible />
        <eatmsg>You open the wine with a pop and pour it down your mouth in one giant glug. Stuff looks a little fuzzy.</eatmsg>
      </object>
    </object>
    <exit to="utility room">
      <prefix>to the</prefix>
    </exit>
    <object name="Sir Muscles Sexy Face">
      <inherit name="editor_object" />
      <inherit name="namedmale" />
      <look>This dude looks super hard. Also, it's his burfdaee, so you gotta be extra nice to him.</look>
    </object>
    <object name="electric blueprint">
      <inherit name="editor_object" />
      <take />
      <takemsg>You swipe it quickly. It's probably 'spensive. And useful. Excellent.</takemsg>
      <drop type="boolean">false</drop>
      <look>This seems to be some sort of thing telling you how to make electrikery work.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>an</prefix>
    </object>
  </object>
  <object name="utility room">
    <inherit name="editor_room" />
    <description>A small room, generally used for dumping things in for an unknown amount of time.</description>
    <descprefix>You are in</descprefix>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="kitchen" to="kitchen">
      <inherit name="northdirection" />
      <prefix>to the</prefix>
    </exit>
    <exit alias="cloakroom" to="cloakroom">
      <inherit name="southdirection" />
      <prefix>to the</prefix>
    </exit>
    <object name="miscellaneous things">
      <inherit name="editor_object" />
      <look>General stuff really.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>some</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You need to have more of a plan than just using 'miscellaneous' things. Don't even think about it right now. Focus. You're busy.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="bag of bags">
      <inherit name="editor_object" />
      <inherit name="surface" />
      <look>So many bags. You could open a bag shop and earn back all those 5p's you've spent on them.</look>
      <feature_container />
      <close type="boolean">false</close>
      <openmsg>You root around in the bag of bags, hoping to not find another damp sock.</openmsg>
      <listchildren />
      <hidechildren />
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <object name="shears">
        <inherit name="editor_object" />
        <look>Plant sized scissors. You cannot cut your toe nails with them.</look>
        <attr name="feature_usegive" type="boolean">false</attr>
        <take />
        <drop type="boolean">false</drop>
        <takemsg>You stuff these through your belt loop and narrowly avoid hitting yourself in your fun bits.</takemsg>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>some</prefix>
      </object>
    </object>
  </object>
  <object name="cloakroom">
    <inherit name="editor_room" />
    <description>Despite it being called a cloak room, you rarely keep your cloak in here.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <descprefix>You are in</descprefix>
    <exit alias="utility room" to="utility room">
      <inherit name="northdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="toilet">
      <inherit name="editor_object" />
      <look>Mr Toilet is a little sketchy. He tries to eat you, or close on your winky... You and him should have words.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("Use? Like, right now? Noooo.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="sink1">
      <inherit name="editor_object" />
      <alias>sink</alias>
      <look>Small and sink shaped. Does what it says on the tin really.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You wash your paws, dry them on your shorts and get back to questing.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="walls of immense blackness">
      <inherit name="editor_object" />
      <look><![CDATA[You can't poop in here, the walls of blackness may close in on you. They are <b>BLACK </b>I tell you. <b>BLACK </b>like the <b>CLOUDS OF DARKNESS!!!</b>]]></look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
    </object>
  </object>
  <object name="lower stairs">
    <inherit name="editor_room" />
    <description>Kind of like a lift. But you have to use your legs. You laugh at people using these after leg day.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <descprefix>You are in</descprefix>
    <exit alias="landing" to="landing">
      <inherit name="northdirection" />
      <prefix>up to the</prefix>
    </exit>
    <object name="discarded pair of shoes">
      <inherit name="editor_object" />
      <look>You sometimes wonder if you could grate these on your pasta.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <take type="script">
        msg ("You cannot take these. Then what would people fall over?")
        MoveObjectHere (discarded pair of shoes)
      </take>
    </object>
    <exit alias="lower hallway" to="lower hallway">
      <prefix>back to the</prefix>
    </exit>
  </object>
  <object name="garden">
    <inherit name="editor_room" />
    <description>This place is excellent for BBQs. You decide again that you need a garden sofa.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <descprefix>You are in</descprefix>
    <exit alias="inside" to="lower hallway">
      <inherit name="indirection" />
      <prefix>back</prefix>
    </exit>
    <object name="overgrown bush">
      <inherit name="editor_object" />
      <look>This bush is super bushy and completely in your way. You should probably do something about it.</look>
      <feature_usegive />
      <use type="boolean">false</use>
      <useon type="scriptdictionary">
        <item key="shears">
          msg ("You wave the shears near the bush and nothing happens. Then, you remember you drive a Mazda and get your inner hair dresser on. Immediately, you start chopping and shaping the bush, revealing that there is, infact, a path underneath it.")
          AddToInventory (gift 7 of 10)
          MakeObjectInvisible (shears)
          msg ("You've removed so much bush that you think you can glimpse something that potentially could be a present hiding within the greenery. You grab it, just in case. After all, it's probably for you.")
        </item>
      </useon>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>an</prefix>
      <object name="gift 7 of 10">
        <inherit name="editor_object" />
        <look>Looks gift shaped and very gifty. Maybe a little presenty too.</look>
      </object>
    </object>
    <object name="twirly washing line mabob">
      <inherit name="editor_object" />
      <look>This is like a giant whirlygig thing.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You spin it in circles. It hits you in the head. Groan.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="shed of questionable nature">
      <inherit name="editor_object" />
      <inherit name="surface" />
      <look>You check for maggots first of all. Luckily, they seem to have left home.</look>
      <scenery type="boolean">false</scenery>
      <feature_container />
      <open type="boolean">false</open>
      <close type="boolean">false</close>
      <listchildren />
      <listchildrenprefix>You find a can of</listchildrenprefix>
      <hidechildren />
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="bouncer happiness spray">
        <inherit name="editor_object" />
        <look>The small print reads... "for getting neckless bouncers out of your way". You can see a use for this in the near future.</look>
        <take />
        <takemsg>You pocket the anti bouncer spray. It'd be stupid not to.</takemsg>
        <scenery type="boolean">false</scenery>
      </object>
    </object>
    <object name="BBQ">
      <inherit name="editor_object" />
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <look>A rather large BBQ for the cooking of lots of dead things. You haven't yet cooked an alive thing, thankfully. You really should get your cooking on, brother.</look>
      <feature_usegive />
      <use type="boolean">false</use>
      <useon type="scriptdictionary">
        <item key="teef paste">
          msg ("You squirt the teef paste into rough circle shapes and wonder if you can pass them off as burgers.")
          AddToInventory (gift 6 of 10)
          msg ("You see a gift that is likely for you. You grab it while no one is looking. You really hope it isn't teef paste. You're fairly sure you don't need that in your life.")
          MakeObjectInvisible (teef paste)
        </item>
      </useon>
      <prefix>a</prefix>
      <object name="gift 6 of 10">
        <inherit name="editor_object" />
        <look>You see a gift that is likely for you. You really hope it isn't teef paste.</look>
      </object>
    </object>
    <exit name="garage door" to="garage">
      <runscript />
      <script type="script">
        if (not garage door.locked) {
          MoveObject (Sir Muscles Sexy Face, garage)
        }
        else if (Got(electric blueprint)) {
          msg ("You study the electric blueprint and somehow get the lights working again. Actually, they fix themselves after you wink at them and add a little charm.")
          UnlockExit (garage door)
          MoveObject (Sir Muscles Sexy Face, garage)
        }
        else {
          msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad. You can't go in here if it's dark. There might be a squiggly squaggly thing that gets stuck to your face.")
        }
      </script>
      <lockmessage>Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad. You can't go in here if it's dark. There might be a squiggly squaggly thing that gets stuck to your face.</lockmessage>
      <locked />
    </exit>
  </object>
  <object name="garage">
    <inherit name="editor_room" />
    <description>A perfect mix of manly tools and heavy things. This should become a garage blueprint or something.</description>
    <descprefix>You are in</descprefix>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <beforefirstenter type="script">
    </beforefirstenter>
    <exit alias="garden" to="garden">
      <inherit name="eastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="shelf of much messy">
      <inherit name="editor_object" />
      <look>This shelf is a complete mess. It's a wonder you can find anything....</look>
      <tidy type="script">
        msg ("You take a few minutes to tidy the shelf.")
        AddToInventory (gift 1 of 10)
        msg ("As you align the last Makita box at exactly 90°, you see a dusty box in the corner. You dust it off and realise it looks like a gift. You quickly wear it as a hat and whistle nonchalantly. It falls off your head, so you pocket it instead.")
      </tidy>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You have nothing to put on the shelf today.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <object name="gift 1 of 10">
        <inherit name="editor_object" />
        <look>As you tidy the shelf, you see what looks remarkably like a gift hidden at the back. Birthdays rule.</look>
        <take />
        <takemsg>You check over your shoulder in case anyone is looking and then pocket the gift.</takemsg>
        <drop type="boolean">false</drop>
        <scenery type="boolean">false</scenery>
      </object>
    </object>
    <object name="gym">
      <inherit name="editor_object" />
      <look>This gym is full of weights so manly man can be extra manly. You can almost hear the roars and grunts from previous sessions as you look at it.</look>
      <feature_usegive />
      <use type="script">
        msg ("There's always time for a little bit of Engine Room. But only a little bit, because you are quest focussed. You do a few reps. Just because you can.")
      </use>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <object name="all the weights">
        <inherit name="editor_object" />
        <look>There's enough weights here to squash a large hippo. But that would be cruel, so you picture the flattened hippo instead.</look>
        <scenery type="boolean">false</scenery>
      </object>
    </object>
    <object name="drift trike">
      <inherit name="editor_object" />
      <look>Reads "for being awesome, immature and reckless". You smile at this and make engine sounds. Then you squint and it turns into a hot rod. Cool, huh?</look>
      <ride type="script">
        msg ("You pull the trike out of the garage and fire it up. You're so cool. You hop on the trike and have a quick drift up and down the driveway. You have another quick drift, and the another. Suddenly, you notice the tyres are smoking hot... you must be the drift king. For some unknown reason, you take the tyres off and stick them in your pocket.")
        AddToInventory (hot tyres)
      </ride>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("Using doesn't really work. You're sure there is something else you can do with this.")
      </use>
      <object name="hot tyres">
        <inherit name="editor_object" />
      </object>
    </object>
    <object name="manly shelf of things">
      <inherit name="editor_object" />
      <inherit name="surface" />
      <look>This shelf contains almost every tool you could ever want... depending on your level of kinky anyway.</look>
      <feature_container />
      <hidechildren />
      <listchildren />
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="spanner">
        <inherit name="editor_object" />
        <take />
        <takemsg>You pocket the spanner. Lucky you've got big pockets.</takemsg>
        <look>It's spanner shaped. Funnily enough. For fixing things.</look>
        <drop type="boolean">false</drop>
      </object>
      <object name="hammer">
        <inherit name="editor_object" />
        <look>For the hitting of things.</look>
        <take type="boolean">false</take>
      </object>
      <object name="zip ties">
        <inherit name="editor_object" />
        <look>You consider if you should be using these to tie up your disobedient female.</look>
      </object>
    </object>
  </object>
  <object name="living room">
    <inherit name="editor_room" />
    <description>A well equiped living room with a rug on the floor.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="landing" to="landing">
      <inherit name="eastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <exit alias="office" to="office">
      <inherit name="westdirection" />
      <prefix>enter the</prefix>
    </exit>
    <object name="sofa for snoozes">
      <inherit name="editor_object" />
      <look>This giant sofa is excellent for snoozes. It looks like it has moved recently. You realise you prefered it before.</look>
      <sit>You may not sofa at present. There is no time!!!</sit>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
      </displayverbs>
      <move type="script">
        if (Got(strength gel)) {
          msg ("You rub the strength gel all over your arms, and then lick a little bit for good measure too. With a manly grunt, you give the sofa a good shove and it slides exactly 1000mm across the room.")
          AddToInventory (gift 2 of 10)
          MakeObjectInvisible (strength gel)
          msg ("You look down in surprise. Your manly sofa shoving seems to have revealed something that looks suspiciously like a gift.")
        }
        else {
          msg ("Even though you are manly as fuck, you are not strong enough to move the sofa at this time.")
        }
      </move>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="gift 2 of 10">
        <inherit name="editor_object" />
        <look>Woot woot!!! Looks like someone has left a gift lying around. How careless.</look>
        <take />
        <drop type="boolean">false</drop>
        <takemsg>You quickly pocket the gift, just in case anyone was plotting to pinch it from you.</takemsg>
        <scenery type="boolean">false</scenery>
      </object>
    </object>
    <object name="electrical sofa">
      <inherit name="editor_object" />
      <look>You know you've made it when your sofa will hold your paws up at the press of a button. You hope it won't retaliate one day and eat you. That would be bad bad.</look>
      <sit>You may not sofa at present. There is no time!!!</sit>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>an</prefix>
    </object>
    <object name="TV">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <look>A giant lit up thing with moving pictures. Odd.</look>
      <feature_switchable />
      <switchedon />
      <switchonmsg>You make the moving picture thing make movey pictures.</switchonmsg>
      <switchoffmsg>The pictures look like they were trying to eat you. You make them go away for your safety.</switchoffmsg>
      <alt type="stringlist">
        <value>telly</value>
        <value>television</value>
      </alt>
      <watch>You don't want to watch it now. You're way too focussed.</watch>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
    </object>
    <object name="drum kit">
      <inherit name="editor_object" />
      <inherit name="container_lockable" />
      <inherit name="container_closed" />
      <look>Looks good, other than you're pretty sure this is missing a drum stick. You should probably find this.</look>
      <attr name="feature_container" type="boolean">false</attr>
      <contentsprefix>The drum kit does not work.</contentsprefix>
      <close type="boolean">false</close>
      <keycount type="int">1</keycount>
      <lockmessage>You are minus one drum stick. You cannot play one handed.</lockmessage>
      <nokeymessage>The drumkit only has one stick. You need a second drum stick to make it work.</nokeymessage>
      <unlockmessage>You play the drum kit with the chicken drum stick. Genius!</unlockmessage>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Open</value>
        <value>Close</value>
        <value>Play</value>
      </displayverbs>
      <inventoryverbs type="stringlist">
        <value>Look at</value>
        <value>Use</value>
        <value>Drop</value>
        <value>Open</value>
        <value>Close</value>
      </inventoryverbs>
      <attr name="feature_usegive" type="boolean">false</attr>
      <attr name="feature_switchable" type="boolean">false</attr>
      <isopen type="boolean">false</isopen>
      <listchildren />
      <openmsg>OMG!!! A present!!</openmsg>
      <givesingle type="boolean">false</givesingle>
      <alt type="stringlist">
        <value>drums</value>
      </alt>
      <key type="object">huge chicken drumstick</key>
      <useanything type="script">
      </useanything>
      <play type="script">
        if (Got(huge chicken drumstick)) {
          msg ("You pull the chicken drumstick out of your pocket, grab the wooden drumstick and play like a boss. You smile at your ingenuity and pure brilliance.")
          msg ("While you are playing, you see a gift peaking out from behind the amp. You assume it must be for you and grab that sucker before anyone else gets their dirty paws on it. While you're at it, you scoff the chicken too.")
          AddToInventory (gift 4 of 10)
          MakeObjectInvisible (huge chicken drumstick)
        }
        else {
          msg ("There is only one drumstick. Sadly, you cannot play like this.")
        }
      </play>
      <useon type="scriptdictionary">
        <item key="huge chicken drumstick">
          msg ("You pull the chicken drumstick out of your pocket, grab the wooden drumstick and a catchy beat fills the room. You smile at your ingenuity and pure brilliance.")
          AddToInventory (gift 4 of 10)
          msg ("While you are playing, you see a gift peaking out from behind the amp. You assume it must be for you and grab that sucker before anyone else gets their dirty paws on it.")
        </item>
      </useon>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="gift 4 of 10">
        <inherit name="editor_object" />
        <look>OMG!!! A PRESENT!!!</look>
        <take />
        <takemsg>You quickly wear the present as a hat and hope no one noticed.</takemsg>
        <drop type="boolean">false</drop>
      </object>
    </object>
    <object name="wall art">
      <inherit name="editor_object" />
      <look>This is way cooler than using regular lights like regular people. But you're cool. That's why you have it.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a shiny piece of</prefix>
      <feature_usegive />
      <use type="script">
        msg ("It's not really usable, is it? I guess you could turn it on and turn it off... like it is some battery powered sex aid.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <object name="gift 9 of 10">
        <inherit name="editor_object" />
        <look>Errrrrmmmmmmaaaaaaaggggggooooodddddd. A gift. Awesome.</look>
      </object>
    </object>
    <object name="misplaced wall art">
      <inherit name="editor_object" />
      <look>You hope to be told... "This is way cooler than using regular lights like regular people. But you're cool. That's why you have it." but instead, you find yourself querying why it is on the floor. Still... You consider hanging it. Maybe.</look>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>hang</value>
      </displayverbs>
      <hang type="script">
        if (Got(drill)) {
          msg ("You get a drill and get to work. It'll definitely look better on the wall.")
          MakeObjectInvisible (misplaced wall art)
          MoveObjectHere (newly hung art thingy)
          msg ("As you move the art into place, you notice the other one is a little wonky. You're not sure how a circle can be wonky, but go to check it out. As you're looking at it, you notice something on the shelf below. It looks presenty.")
          AddToInventory (gift 9 of 10)
          msg ("It definitely is a gifty, presenty kind of thing. You think you may hear someone coming, so you stuff it down your shorts, without stopping to wonder if this is a bad move or not.")
        }
        else {
          msg ("You are not carrying a drill. Damn. You lose man points for not having a drill at this exact moment in time.")
        }
      </hang>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a less shiny piece of</prefix>
      <object name="newly hung art thingy">
        <inherit name="editor_object" />
        <look>You wonder if anyone will notice it has moved. Your female probably will, because female. The guys however... I guess they'll notice they don't fall over it when drunk any longer. Maybe.</look>
        <scenery type="boolean">false</scenery>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>another shiny piece of</prefix>
      </object>
    </object>
    <object name="book shelf1">
      <inherit name="editor_object" />
      <inherit name="surface" />
      <alias>book shelf</alias>
      <look>Pretty standard really. A shelf with books on. Hence book shelf.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_container />
      <hidechildren />
      <contentsprefix>You find</contentsprefix>
      <listchildren />
      <listchildrenprefix>You find</listchildrenprefix>
      <feature_usegive />
      <use type="script">
        msg ("You take a minute to sort the top shelf out. You have no idea why this seems important right now and stop as that thought enters your brain.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <object name="many books">
        <inherit name="editor_object" />
        <look>This is a collection of many books. And some Family Guy.</look>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
      </object>
    </object>
    <object name="rug">
      <inherit name="editor_object" />
      <look>A good size rug. You notice it says 2306 on it. You're sure that wasn't there before.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
    </object>
  </object>
  <object name="office">
    <inherit name="editor_room" />
    <description>You can spy on the main road rather well from here.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="living room" to="living room">
      <inherit name="eastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="book shelf">
      <inherit name="editor_object" />
      <look>Another shelf with many books and medals, showing how extra hard you are. Sweet.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
    </object>
    <object name="spinny chair">
      <inherit name="editor_object" />
      <look>You contemplate tying fire extinguishers to the base of the chair and seeing how far you can go.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You briefly sit down, spin as fast as you can and stand up again. Sligjhtly wonky and feeling a tad sick. It was worth it.")
      </use>
      <sit>You briefly sit down, spin as fast as you can and stand up again. Sligjhtly wonky and feeling a tad sick. It was worth it.</sit>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="desk of much working">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <inherit name="container_lockable" />
      <look>This is where you get your freelance on. And your maschine if you've got extra Dan time. You make a deal with yourself to bunk off your freelance stuff and have more Dan time. Because you can.</look>
      <feature_container />
      <listchildren />
      <keycount type="int">1</keycount>
      <autounlock />
      <feature_usegive />
      <unlockmessage>You unlock the desk with the hair pin you collected earlier.</unlockmessage>
      <lockmessage>Some idiot locked the desk and forgot the key.</lockmessage>
      <key type="object">hair pin</key>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <use type="script">
        msg ("It is so not time for work right now. Don't be daft.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Open</value>
        <value>Close</value>
        <value>Use</value>
      </displayverbs>
    </object>
  </object>
  <object name="upper stairs">
    <inherit name="editor_room" />
    <description>Kind of like a lift. But you have to use your legs. You laugh at people using these after leg day.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="landing" to="landing">
      <inherit name="southdirection" />
      <prefix>down to the</prefix>
    </exit>
    <exit alias="hallway" to="hallway">
      <inherit name="westdirection" />
      <prefix>enter the</prefix>
    </exit>
  </object>
  <object name="hallway">
    <inherit name="editor_room" />
    <description>A long place with access to many rooms through portals most people call "doors".</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="upper stairs" to="upper stairs">
      <inherit name="eastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <exit alias="simons room" to="Simons room">
      <inherit name="northeastdirection" />
      <prefix>enter</prefix>
    </exit>
    <exit alias="dans lair" to="Dans lair">
      <inherit name="northdirection" />
      <prefix>enter</prefix>
    </exit>
    <exit alias="mikeys room" to="Mikeys room">
      <inherit name="northwestdirection" />
      <prefix>enter</prefix>
    </exit>
    <exit alias="bathroom" to="bathroom">
      <inherit name="westdirection" />
      <prefix>enter the</prefix>
    </exit>
    <object name="lamp that looks like a spaceship">
      <inherit name="editor_object" />
      <look>This is a cat sized spaceship that doubles up as a lamp. You suddenly would like to be a cat. For a short while.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script"><![CDATA[
        msg ("You promise yourself you will use the lamp. Soon. In the hobbit home of Soph & Laurence. The cats will love you and are already planning how to get to space.")
      ]]></use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
  </object>
  <object name="Simons room">
    <inherit name="editor_room" />
    <description>The new dude Simon lives here. You find he is rather well behaved. Plus, he makes a mean Mac and cheese. Awesomes.</description>
    <exit alias="hallway" to="hallway">
      <inherit name="southwestdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="Simon">
      <inherit name="editor_object" />
      <inherit name="namedmale" />
      <look>This dude has mad house hunting skills. You are a little in awe of his property stalking ability.</look>
      <speak type="script">
        firsttime {
          msg ("Simon goes off on a speech about playing \"Simon Says\". You really do not have time for this, but listen patiently. Luckily, he hasn't told you about himself, so you're still feeling pretty chilled out about this. Still, you need to get back to treasure hunting and you excuse yourself politely. He is totally fine with this, and doesn't even feel it is necessary to ask you to \"...'ave a drink with me\". Nor does he awkwardly hug you. Excellent.")
        }
        otherwise {
          msg ("You and Simon exchange a quick manly grunt. No other conversation is required. Lovely.")
        }
      </speak>
      <feature_usegive />
      <use type="script">
        msg ("Simon does not wish to be used.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Speak to</value>
        <value>Use</value>
      </displayverbs>
    </object>
  </object>
  <object name="Mikeys room">
    <inherit name="editor_room" />
    <description>Sir Mikey of the butchery lives here. You hope to not be butchered if you intrude.</description>
    <exit alias="hallway" to="hallway">
      <inherit name="southeastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="Mikey">
      <inherit name="editor_object" />
      <inherit name="namedmale" />
      <look>This dude has the meanest fuck off face you've ever seen. And no neck. For some reason, you can picture him holding a tray of chicken wings.</look>
      <feature_usegive />
      <speak type="script">
        firsttime {
          msg ("You leap into the air, point at the wall behind Mikey and make some strange noises. Mikey instantly turns to look at the wall. With a warrior howl, you leap on his back and try to choke the poor guy. He shrugs, and that's your plan over.")
        }
        otherwise {
          msg ("He isn't falling for your games again. Well, not right now anyway.")
        }
      </speak>
      <useon type="scriptdictionary">
        <item key="bouncer happiness spray">
          msg ("You give him a good squirt with the bouncer happiness spray. At once, you see his fuck off face changing into a happy grin.")
          AddToInventory (gift 5 of 10)
          msg ("You gain 5 happiness points as Mikey points to a gift on the floor behind him and then back at you. You grab it and scarper before his fuck off face comes back.")
        </item>
      </useon>
      <use type="script">
        msg ("Mikey does not wish to be used. At least, not right now. He asks that you come back later for a kiss when no one is watching. As his house husband, you agree. Instantly. It's your duty, after all.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Speak to</value>
        <value>Use</value>
      </displayverbs>
      <object name="gift 5 of 10">
        <inherit name="editor_object" />
        <look>It's all gifty and the like.</look>
      </object>
    </object>
  </object>
  <object name="bathroom">
    <inherit name="editor_room" />
    <description>The bathroom is lacking a bath. You're more than happy with this, but do wonder if it is false advertising.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="hallway" to="hallway">
      <inherit name="eastdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="shower">
      <inherit name="editor_object" />
      <look>The shower head is massive. It's like your inside outside waterfall.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You give yourself a sniff. It's not too bad. You don't need to shower right now.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="toilet1">
      <inherit name="editor_object" />
      <alias>toilet</alias>
      <look>You look at the toilet fondly. You've had many a good contemplation whilst sitting on him.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <sit>You sit on the toilet. You're not sure why, it's not time for wee wee. Plus, you're still wearing your shorts.</sit>
      <feature_usegive />
      <use type="script">
        msg ("You sit on the toilet. You're not sure why, it's not time for wee wee. Plus, you're still wearing your shorts.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="sink2">
      <inherit name="editor_object" />
      <alias>sink</alias>
      <look>It's like a bath tub for a baby rabbit.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You wish you had a rubber duck to float in the sink. You decide to 'borrow' one from the female next time you're in her lair. It's probably best to not say anything. She is very protective of her ducks.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="shiny cupboard">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <look>This cupboard is super shiny. You check out your beard in its reflection. I mean, how can you resist?!</look>
      <feature_container />
      <listchildren />
      <listchildrenprefix>The shiny cupboard contains</listchildrenprefix>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="hair pin">
        <inherit name="editor_object" />
        <take />
        <takemsg>You pocket the hair pin. It may have a use.</takemsg>
        <look>One of those chick things that you don't really understand.</look>
        <attr name="feature_usegive" type="boolean">false</attr>
        <use />
        <selfuseon type="scriptdictionary">
          <item key="desk of much working">
          </item>
        </selfuseon>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>a</prefix>
      </object>
      <object name="lynx">
        <inherit name="editor_object" />
        <look>You give the lynx a wink, knowing it'll give you that added "Lynx Effect" when you need it. Or when you don't. You're not too fussed.</look>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>a supply of </prefix>
      </object>
      <object name="teef paste">
        <inherit name="editor_object" />
        <look>You think this is probably tooth paste and not "teef paste". Teef paste sounds a bit like beef paste, and you'd rather not brush your teeth with liquidised cows if you can help it. Maybe there is another use for it.</look>
        <take />
        <takemsg>You pocket the questionable beefy teefy paste.</takemsg>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>some</prefix>
      </object>
    </object>
  </object>
  <object name="Dans lair">
    <inherit name="editor_room" />
    <description>This is the lair of the Dan. You expect to find some weights, a drill, some screws and the odd sock lying around.</description>
    <exit alias="hallway" to="hallway">
      <inherit name="southdirection" />
      <prefix>back to the</prefix>
    </exit>
    <object name="floaty bed">
      <inherit name="editor_object" />
      <look>The bed hovers defiantly, as if it is a magic carpet from Aladin.</look>
      <sit>You may not be going to bed right now. 1) You forgot your female and 2) It's QUESTING TIME!!!</sit>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <feature_usegive />
      <use type="script">
        msg ("You may not be going to bed right now. 1) You forgot your female and 2) It's QUESTING TIME!!!")
      </use>
      <sleepin>You may not be going to bed right now. 1) You forgot your female and 2) It's QUESTING TIME!!!</sleepin>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>an awesome</prefix>
    </object>
    <object name="questionable clothing pile">
      <inherit name="editor_object" />
      <look>You ask no questions of the questionable clothing pile. You know exactly what it is doing.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a very</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You cannot use the clothing pile right now. This would involve wearing every item and there is no time.")
      </use>
      <tidy>You want to tidy it now?! Seriously?! Bad timing. Nope. Not happening. Why now, of all times? Go back to questing please.</tidy>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="cupboard with attached keypad">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <inherit name="container_lockable" />
      <feature_container />
      <listchildren />
      <listchildrenprefix>You find</listchildrenprefix>
      <keycount type="int">1</keycount>
      <autounlock type="boolean">false</autounlock>
      <look>You're pretty sure this is the entrance to Narnia.keypad</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <object name="gift 3 of 10">
        <inherit name="editor_object" />
        <take />
        <drop type="boolean">false</drop>
        <takemsg>You cough to cover any russling and shove it in your pocket.</takemsg>
      </object>
    </object>
    <object name="TV1">
      <inherit name="editor_object" />
      <inherit name="switchable" />
      <alias>TV</alias>
      <look>Another one of those "sleep aids".</look>
      <feature_switchable />
      <switchonmsg>You turn on the sleeping device... and then worry if you are going to drop to the floor in a pile of snores.</switchonmsg>
      <switchoffmsg>You make it go away for just in casies. After all, you're having so much fun that you don't want to sleep on the job.</switchoffmsg>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>a</prefix>
      <watch>You don't want to watch it now. You're way too focussed.</watch>
    </object>
    <object name="shelves">
      <inherit name="editor_object" />
      <look>They are full of change, a mat that looks like it has a llama on it and some safety glasses. You know how to shelf good.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <prefix>some</prefix>
      <feature_usegive />
      <use type="script">
        msg ("You empty your change onto the shelves. You really must get a second money pig. Or get yours back.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
    </object>
    <object name="keypad">
      <inherit name="editor_object" />
      <feature_usegive />
      <look>Looks a bit like a calculator, but you know it is guarding the portal to Narnia.</look>
      <scenery />
      <use type="script">
        msg ("What number say you, matey?!")
        get input {
          if (result="2306") {
            msg ("You open the cupboard door, hoping to find Narnia. Sadly, Narnia is not here.")
            msg ("However, through the darkness, you notice something that could be a present. You decide that 'could be' is good enough and quickly hide it in your shoe.")
            AddToInventory (gift 3 of 10)
          }
          else {
            msg ("Nothing happens. The code must be very wrong. Or sort of wrong. Whatever, it isn't right.")
          }
        }
      </use>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
    </object>
  </object>
  <object name="landing">
    <inherit name="editor_room" />
    <description type="string"></description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="stairs" to="lower stairs">
      <inherit name="southdirection" />
      <prefix>back down the</prefix>
    </exit>
    <exit alias="living room" to="living room">
      <inherit name="westdirection" />
      <prefix>enter the</prefix>
    </exit>
    <exit alias="upper stairs" to="upper stairs">
      <inherit name="northdirection" />
      <prefix>continue to the</prefix>
    </exit>
  </object>
  <object name="lower hallway">
    <inherit name="editor_room" />
    <description>You're fairly sure this place stores the worlds supply of shoes. Or at least, it looks like it does.</description>
    <usedefaultprefix type="boolean">false</usedefaultprefix>
    <prefix>the</prefix>
    <exit alias="garden" to="garden">
      <prefix>visit the</prefix>
    </exit>
    <exit alias="stairs" to="lower stairs">
      <prefix>go up the</prefix>
    </exit>
    <object name="lots of shoes">
      <inherit name="editor_object" />
      <look>You realise you could have different shoes every day of the month with the size of the collection that is here. But that's not manly, so you dismiss it at once.</look>
      <usedefaultprefix type="boolean">false</usedefaultprefix>
      <feature_usegive />
      <use type="script">
        msg ("There are so many! You can't decide which ones to prance around in.")
      </use>
      <displayverbs type="stringlist">
        <value>Look at</value>
        <value>Take</value>
        <value>Use</value>
      </displayverbs>
      <article>them</article>
    </object>
    <object name="cupboard1">
      <inherit name="editor_object" />
      <inherit name="container_closed" />
      <alias>cupboard</alias>
      <look>You do a double take. Yep, it's definitely one of those things for putting other things in.</look>
      <feature_container />
      <listchildren />
      <hidechildren type="boolean">false</hidechildren>
      <object name="drill">
        <inherit name="editor_object" />
        <look>Makita. Of course.</look>
        <take />
        <takemsg>You grab the drill and hang it off your shorts. There's probably a use for it, but if not, then you look cooler this way anyway.</takemsg>
        <drop type="boolean">false</drop>
        <usedefaultprefix type="boolean">false</usedefaultprefix>
        <prefix>a</prefix>
        <feature_usegive />
        <use type="script">
          msg ("You point the drill into the air and make revving noises.")
        </use>
      </object>
    </object>
    <exit alias="kitchen" to="kitchen">
      <prefix>back to the</prefix>
    </exit>
  </object>
  <verb>
    <property>watch</property>
    <pattern>watch</pattern>
    <defaultexpression>"You can't watch " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>play</property>
    <pattern>play</pattern>
    <defaultexpression>"You can't play " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>tidy</property>
    <pattern>tidy</pattern>
    <defaultexpression>"You can't tidy " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>ride</property>
    <pattern>ride</pattern>
    <defaultexpression>"You can't ride " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>put</property>
    <pattern>put</pattern>
    <defaultexpression>"You can't put " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>hangartonwall</property>
    <pattern>hang art on wall; hang art on the wall</pattern>
    <defaultexpression>"You can't hang art on wall; hang art on the wall " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>hang</property>
    <pattern>hang</pattern>
    <defaultexpression>"You can't hang " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>sleep</property>
    <pattern>sleep</pattern>
    <defaultexpression>"You can't sleep " + object.article + "."</defaultexpression>
  </verb>
  <verb>
    <property>sleepin</property>
    <pattern>sleep in</pattern>
    <defaultexpression>"You can't sleep in " + object.article + "."</defaultexpression>
  </verb>
  <function name="questionableCooking">
    if (GetBoolean(BBQ, "cooking")) {
      msg ("The BBQ is already cooking away nicely.")
    }
    else {
      msg ("You squirt the teef paste into rough circle shapes and wonder if you can pass them off as burgers.")
    }
  </function>
</asl>

I think the only library element I've modified is eat:

eat #object#;drink #object#

Thank you so much!

Soph


The Pixie

Turns out locking overrides the script on the exit, so when you set it to be locked, it never gets to the script at all.

So, set it so it is not locked, and we will add our own attribute to the exit. New script:

if (GetBoolean(garage door, "beenunlocked")) {
  MoveObject (Sir Muscles Sexy Face, garage)
}
else if (Got(electric blueprint)) {
  msg ("You read the electric blueprint and somehow get the lights working again.")
  MoveObject (Sir Muscles Sexy Face, garage)
  garage door.beenunlocked = true
}
else {
  msg ("Gah! No lights! You wonder what on earth happened to the electric out here. No electrikery is bad bad.")
}

[Looks like an interesting game!]


winusoft

Ah! Pixie! You are awesome, thank you!

It's a treasure hunt for my boyfriend's birthday. The game is a map of his house, and when he finds a gift in the game, he can physically go and find the actual gift in his house :)


XanMag

Also... my jury-rigged method...

At the get blueprint script, just set a flag called 'blueprintcarried' when you pick up the object and an add blueprint to inventory script and a unlock exit script. On the drop of the blueprint, just unset the flag and move blueprint to current room and lock the exit again.

Then, when entering the garage, just put an IF script checking to see if the flag is set with a first time message.

Same thing I guess... So many ways to skin a Sir Muscles Sexy Face.

Good luck.


Log in to post a reply.

Support

Forums