[code]Chrysalis Room is a room. The mantis queen’s divan is scenery and an enterable supporter in Chrysalis Room. A smoking raygun is on the divan.
A procedural rule when printing the locale description of Chrysalis Room:
ignore describe what’s on scenery supporters in room descriptions rule.][/code]This compiles, but the procedural rule doesn’t do anything. I don’t want to unlist the rule altogether, just suppress it in this location. Where am I going wrong?
Is ‘printing the locale description of Chrysalis Room’ an activity? Try ‘printing the locale description’ as the activity, and then a check inside the rule to see what room you’re printing the description of.
Is the goal to make the raygun not listed?
In that case you can leave it off-stage until the player ‘discovers’ it.
Instead of examining the divan:
move the raygun to the divan;
say "Oh! There's been a raygun here this whole time!"
I don’t think you can write “A procedural rule when (activity)”. All of the clauses attached to procedural rules in the manual test actions, not activities.
I think the correct syntax is
A procedural rule: if the location is the Chrysalis room, ignore the describe what's on scenery supporters in room descriptions rule.
I would still use Outcast’s solution, as procedural rules should be avoided.
Awesome, thanks everyone.
Unfortunately Outcast Orange’s solution wouldn’t be suitable here - the aim is to describe the contents of the scenery supporter through custom text rather than the standard rules in a specific location. I’ve been changing room and object names in my questions to disguise details of my IFComp entry, but I should have made my objective more clear.
Shadow Wolf’s procedural rule syntax does exactly what I need. It’s the only procedural rule I’ve used, and I’ll try and avoid any others. Is one procedural rule likely to impact on the player’s experience?
If I remember correctly, procedural rules are slated to be removed in the next release - which is why you should avoid using them. Possibly for other reasons, but they’ve been declared obsolete.
The documentation seems a little vague, but mentions that they impact speed and can be replaced by other rules. I’m curious as to how many short procedural rules would make a noticeable speed difference, if there are any other drawbacks, and how this particular problem could be solved without a procedural rule (unless that’s really complicated, because the procedural rule seems to be working just fine.)
This thread seems to indicate that a facility for conditionally ignoring rules will exist in the next build. Whether it’ll be one that suits your project is a different matter, of course.
I think I’ve worked out a non-procedural solution:
This is the replacement scenery supporters rule:
if the location is the Chrysalis Room, do nothing;
otherwise abide by the describe what's on scenery supporters in room descriptions rule.
The replacement scenery supporters rule is listed instead of the describe what's on scenery supporters in room descriptions rule in the for printing a locale paragraph about rulebook.
Nice work! That’s perfect. Many thanks!
If you’re just hiding the ‘(on which is…)’ text, ‘omit contents in listing’ would be enough.