Armageddon General Discussion Board

General => Code Discussion => Topic started by: JStuart on January 15, 2006, 11:31:46 AM

Title: "open backpack" "close it" - Infocom it!
Post by: JStuart on January 15, 2006, 11:31:46 AM
Hello Staff.
Although I am a real newbie here (and it shows) I would like to make a little suggestion. How about implementing an "it" operator, like the Infocom games used to feature? What I have in mind is something like:Examine backpack.
Open it.
Take meat it
Examine meat
Eat it.
Or maybe even a "her/him" operator:Look ~fancy-sdesced -curiously
tell him/her (rubbing his chin) Well, well, ye seem a bit lost, gal!
I do not know much about mud-coding, but I was wondering if that was possible to implement.
Title: "open backpack" "close it" - Infocom it!
Post by: Lazloth on January 15, 2006, 12:04:59 PM
That's a neat suggestion; would have to be careful not to extend to commands that take multiple arguments.
You can also reduce keystrokes if you employ variables in your client, either manually or can bind to some manner of trigger.

eg.: (loose tintin++-style example, syntax may not be production-ready)
#action {In a %0 %1 (used) :} {assignpack %1}
#alias {assignpack} {#var mypack %1}
#alias {pget} {get %1 $mypack}

> l in pack
In a leather backpack (used) :
a red stone earring
a leather ticket
a stick of charcoal

#Ok. $mypack is now set to {backpack}.

> l in cloak
In a hooded, green sandcloth greatcloak (used) :
a funny-shaped stone dagger
a small portion of a travel cake

#Ok. $mypack is now set to {greatcloak}.

> pget dagger
You get a funny-shaped stone dagger from a hooded, green sandcloth greatcloak.
Title: "open backpack" "close it" - Infocom it!
Post by: Morgenes on January 17, 2006, 02:03:19 PM
This does sound like an astoundingly useful thing, however the level of difficulty in implementing it will likely cause it to never be implemented.

I did some looking and the problem is there is a lot of relativity in how we get what object you're referring to.  It could be an object in the room you're in, an object you're carrying or wearing, or even more specifically a weapon, or other type of object.  

To do this we would have to alter all of these separate functions to determine if 'it' was passed as the parameter, and then look and see if 'it' fits the bill of what we're looking for.  

An example of where this gets more complicated is when you do something like:  look guy's sword.  Ideally, 'it' would point to 'guy's' sword.  Then if you did something like 'wield it', we obviously don't want to let you weild someone else's sword, so we'd have to put in a check to make sure that the object is in the correct state, even more so than we do today.

I'm not saying this will never be done, but it would require a significant amount of effort to code, and I don't forsee any of the coding staff picking it amongst the other multitude of projects that are available.