I'm trying the n_char_parser mode, and am finding that if there's another potential match (for example if I have a filled_bottle and an empty_bottle) then naturally only one exists at any point in time, the other is in the ether, depending on whether the user has filled it or not.
Unfortunately, when in n_char_parser mode, the game seems to be unable to disambiguate (either automatically, OR manually, even with category set to "present") and select the bottle that's in the room / inventory.
With the following code, you can attempt to just use the usual "get bottle", or try the "lift bottle" to test the manual disambiguation. Neither work.
start_at = my_location
game_settings {
n_char_parser = 5
}
locations {
my_location : location "You are in a room." ;
}
objects {
empty_bottle : object "an empty bottle"
at = "my_location"
msg = "Useful." ;
water_bottle : object "a bottle of water"
msg = "Useful." ;
oil_bottle : object "A bottle of oil"
msg = "Useful.";
on_command {
: match "lift _" {
:disambiguate_s1 category="present";
:print {("Attempting to get "+s1())};
:get object->(s1());
}
:match "make water" {
:create "water_bottle";
}
:match "make oil" {
:create "water_bottle";
}
}
You can use the "make water" and "make oil" to apparate the other two variants, and you'll see it's not just because they're in the ether...
I'm trying the n_char_parser mode, and am finding that if there's another potential match (for example if I have a filled_bottle and an empty_bottle) then naturally only one exists at any point in time, the other is in the ether, depending on whether the user has filled it or not.
Unfortunately, when in n_char_parser mode, the game seems to be unable to disambiguate (either automatically, OR manually, even with category set to "present") and select the bottle that's in the room / inventory.
With the following code, you can attempt to just use the usual "get bottle", or try the "lift bottle" to test the manual disambiguation. Neither work.
You can use the "make water" and "make oil" to apparate the other two variants, and you'll see it's not just because they're in the ether...