I have what I assume are some laughably basic questions.
I’m implementing an old game in TADS 2. The original game required “throw rock” in the pond room so the rock enters the water. There’s also some ducks. I’d like to allow “throw rock”, “throw rock into pond”, and perhaps “throw rock at pond”.
Why cannot a room be also a noun? Before I added the “pond_desc” decoration, I added noun = 'pond'
to the pond room, but the noun “pond” was not known. Is adding this decoration the correct way to add this noun? Seems weird to have to define a new object for this, so I’m wondering if I’m missing something.
Before adding the pond_desc, when I say “throw rock” the parser says supplies the ducks as the indirect object. After adding the pond_desc it asks “What do you want to throw the rock at?”
Also, it doesn’t understand “throw rock into pond” or “throw rock in pond”, and “throw rock at pond” produces “The pond isn’t important.”
Any suggestions about how to do this? I’m wondering if I made a poor choice to make the pond a decoration?
Do I need to create a new verb? I’m hazy on why Throw isn’t working and ThrowAt is being triggered (and how to prevent that).
I have tried reading both adv.t and chapter 4 and I am still quite confused.
pond: room
sdesc = "pond"
ldesc = "You're standing at the edge of a pond..."
noun = 'pond'
south = meadow
;
pond_desc: decoration
sdesc = "pond"
ldesc = "The pond is..."
noun = 'pond'
location = pond
;
rock: item
sdesc = "small rock"
noun = 'rock"
adjective = 'small'
location = meadow
doThrow(actor) = {
if( actor.location = pond ) {
"Splash! The rock... ";
} else {
pass doThrow;
}
}
;
ducks: decoration
sdesc = "ducks"
isThem = true
noun = 'duck' 'ducks'
location = pond
;