removing parts of things

Okay, so here’s my next issue. I have a hand rail on a staircase that I want to remove a spindle from.

What I tried first was making the handrail an actual supporter, then made the spindle an object that was on it. The problem is, after the description of the handrail inform tells the player “There is a spindle on the handrail.” I don’t want that.

I get the exact effect I want when I make the spindle a part of the handrail, but the player can’t take it (I think).

There’s got to be a way to do what I’m trying to, but I’m having a hard time finding the solution in the documentation. Any ideas?

If you want something very simple, this will work:

[code]Test is a room. “There is a handrail here[if the spindle is part of the handrail]. One of the spindles is loose[end if].”

A handrail is scenery in Test. A spindle is part of the handrail.

Instead of taking the spindle when the spindle is part of the handrail:
say “You give the spindle a little tug, and it pops right out.”;
Now the player carries the spindle.
[/code]

It’s not really necessary to make the spindle part of the handrail, but it does hide it from room descriptions conveniently. But you have to bypass the “can’t take component parts” rule. An Instead rule will do that for you, but it also bypasses all the other check rules, so it will ignore the player’s carrying capacity, etc.

The trickier part is if you want to parse “take spindle from handrail.” Unfortunately this translates to the removing it from action, which has a rather nasty “[things inside]” grammar token. Pretty much the only way to avoid being told “you can’t see any such thing” is to make the handrail a container or supporter with the spindle in (or on) it.

But you can fix that by adding your own grammar lines:

[code]Understand “take [something] from [something]” as removing it from.
Understand “get [something] from [something]” as removing it from.
Understand “remove [something] from [something]” as removing it from.

Instead of removing the spindle from the handrail when the handrail encloses the spindle:
try taking the spindle.[/code]

I don’t think you’ll even need to write checks for removing things from places where they’re not. There’s already a check rule for that, which to my knowledge can never fire without these additional grammar lines.

Yup, that worked! Thanks!

This stuff is complicated for a newbie like me, thanks for helping out.