It's in the code snippet. The ball is NOT an object. It's a topic in the book. When you READ ABOUT BALL, you're supposed to get told about the rubber ball. Instead, you get told about the twine. I didn't ASK ABOUT TWINE. How can I possibly make it any clearer?
Viewing post in Comments on 'Santa's Trainee Elf'
This ensures that "twine" is never a primary noun and "ball" is not an alias.
start_at = room
game_settings {
add_standard_prepositions = false
experimental_new_parser = true
}
locations {
room : location "You are in a room.";
}
objects {
ball : object "a ball of twine" at = "room" ;
text_book : object "a text book" at = "room";
}
on_command {
: match "_ _" {
: mask {
: print {("^n^verb = " + original "verb")}
: print {("^n^preposition1 = " + original "preposition1")}
: print {("^n^noun1 = " + original "noun1")}
: print {("^n^preposition2 = " + original "preposition2")}
: print {("^n^noun2 = " + original "noun2" + "^m^")}
}
}
: if (is_present "text_book") {
: match "read _" {
: if (preposition1_is "about") {
: if (noun1_is "ball") {
: print "It says you only need rubber to make a ball.";
: done;
}
: print "There's no topic on that.";
: done;
}
}
}
}
vocabulary {
: experimental_replace { text = "ball of twine" with = "ball" }
: experimental_replace { text = "twine" with = "ball" }
: preposition / aliases = [about]
: noun / aliases = [ball]
}
start_at = room game_settings { add_standard_prepositions = false experimental_new_parser = true } locations { room : location "You are in a room."; } objects { twine : object "a ball of twine" at = "room" msg = "aaa"; text_book : object "a text book" at = "room"; } on_command { : if (is_present "twine" && noun1_is "ball") { : mask { : set_noun1 text="twine"; } } : match "_ _" { : mask { : print {("^n^verb = " + original "verb")} : print {("^n^preposition1 = " + original "preposition1")} : print {("^n^noun1 = " + original "noun1")} : print {("^n^preposition2 = " + original "preposition2")} : print {("^n^noun2 = " + original "noun2" + "^m^")} } } : if (is_present "text_book") { : match "read _" { : if (preposition1_is "about") { : if (noun1_is "ball") { : print "It says you only need rubber to make a ball."; : done; } : print "There's no topic on that."; : done; } } } } vocabulary { : experimental_replace { text = "ball of twine" with = "twine" } : preposition / aliases = [about] : noun / aliases = [ball] }