define type <sittable>
action <sit> msg <You sit on $thisobjectname$.>
end defineverb <sit on; sit : sit> msg <Damn!> command <#t.command# #@object# with #@something#;_
#t.command# #@object# using #@something#;_
#t.command# #@object# on with #@something#;_
#t.command# #@object# on #@something#;_
#t.command# #@object# at #@something#;_
#t.command# #@object# into #@something#;_
#t.command# #@object# in #@something#;_
#t.command# on #@object# with #@something#;_
#t.command# on #@object#;_
#t.command# onto #@object#;_
#t.command# over #@object#;_
#t.command# up #@object#;_
#t.command# off #@object# with #@something#;_
#t.command# off #@object#;_
#t.command# #@object# on;_
#t.command# #@object# off with #@something#;_
#t.command# #@object# off;_
#t.command# #@object#> _
select case <#t.command#> {
case <break; smash; crush; climb; drink; sip; quaff; _
swig; eat; nibble; munch; scoff; consume; _
hit; jump; leap; kick; kill; murder; kiss; _
smooch; punch; pinch; sit; throw; turn> {
if action < #object#; #t.command# > then _
doaction <#object#; #t.command#> _
elseif property < #object#; #t.command# > then _
msg <$objectproperty(#object#;#t.command#)$> _
else _
select case <#t.command#> {
case <break; smash; crush> _
msg <You figure that breaking the #(quest.lastobject):alias# isn't the right thing to do.>
case <climb> _
msg <You can't climb the #(quest.lastobject):alias#>
case <drink; sip; quaff; swig> _
msg <You can't drink that.>
case <eat; nibble; munch; scoff; consume> _
msg <You don't want to eat that.>
case <hit; attack; hurt> {
msg <You decide hitting |xn>
if ( #(quest.lastobject):gender# = ! ) then _
msg <it |xn> _
else _
msg <#(quest.lastobject):gender# |xn>
msg <would be a bad choice.>
}
case <jump; leap> _
msg <You can't jump that!>
case <kick> _
msg <You don't have the courage to kick the #(quest.lastobject):alias#..>
case <kill; murder> _
if ( #(object):gender# = him ) or ( #(object):gender# = her ) then _
msg <You decide that killing #(object):gender# is the wrong thing to do..> _
else _
msg <Can you actually kill #(object):prefix# #(object):alias#!?>
case <kiss; smooch> _
msg <You stare, your eyes misted over as you play the kiss over in your mind..>
case <punch> _
msg <You imagine your fist flying through the air, and then reality snaps back into place..>
case <pinch> _
msg <You sqeeze your fingers together, but decide you look silly and immediately stop.>
case <sit> {
msg <You'd rather not sit on |xn>
if ( #(quest.lastobject):gender# = ! ) then _
msg <it.> _
else _
msg <#(quest.lastobject):gender#.>
}
case <throw> _
msg <You position yourself carefully, but then decide you'd rather not..>
case <turn> {
msg <You try to find a way to turn the #(quest.lastobject):alias#|xn>
if ( $instr(#quest.command#;_on)$ > 0 ) then _
msg < on|xn> _
elseif ( $instr(#quest.command#;_off)$ > 0 ) then _
msg < off|xn>
msg <, but can't quite figure out how you could.>
}
}
}
case else _
exec <#t.command# #object#;normal>
}Here all defaults are in one place (which can be put into a procedure if you so wish), and it even handles commands which you might not want a default message to - but that you can add to any random object (like a command 'wizzywozzle' can be added to a 'fiddlywud' object without the need to mention it anywhere else other than the object - although it's not advisable to do so unless the player is likely to know how to 'wizzywoddle the fiddlywud').