Little things (that may already be in Quest 6)

Some of these features might already be in Quest 6. I've been swimming through the deep waters of Quest 5, and I'm not sure which Quest does what at this moment. But. . .

Things that would be cool:

  • All commands have an optional pre and post script, with the pre script having an option to stop the action. These scripts would be there by default, but blank. Allowing the author to add to the scripts to easily do anything they please before or after doing something.

  • All commands which require touching an object have a touching attribute (or whatever name sounds best).

  • All commands which involve conversation have a conversational attribute.

  • All commands add an attribute to the object when successful, like times_examined, times_touched, times_dropped, times_taken, etc.


I think all of these would be non-game-breaking.

Also, I can live without them. It just sounds cool.

Also also, (again) some of this might already be in Quest 6. I need to finish my Quest 5 project so I can get back to Quest 6.


Could you take a look a this page; a fair recent addition. I think it addresses the first part.
https://github.com/ThePix/QuestJS/wiki/Restrictions-and-Reactions

Can you explain more about "touching" and "conversational"? When does it fire? How would it be used?

Counts should be easy to add, but are not in at presented, excepted "visited".


Could you take a look a this page; a fair recent addition. I think it addresses the first part.

Hey! You were three steps ahead of me!

:)


Can you explain more about "touching" and "conversational"? When does it fire? How would it be used?

It would just be a boolean flag.

All of these would have (for lack of a better name) touching:
take, put, open, close, turn on, turn off, hit, kick, feel, move, push

These would have (again, for lack of a better name) talking:
ask, tell, say, order, answer, yell, sing, whistle

I added a couple of goof-ball commands, but you get the drift.

So, to use it:

Let's say Ralph is an NPC, and he takes orders. There is a chance Ralph might be in situations where he can't speak or can't touch things. (Or maybe there's a room in which the player can't speak or maybe there is an echo?)

Anyway, instead of coding something for each command which requires touching or requires speaking, wouldn't it be nice to just have one bit of code that checks if the command has an attribute, thus negating the necessity of writing code for take, push, turn on, open, blah, blah, foo, bar? (Maybe I've been porting this game too long with no breaks and I've gone crazy? If so, that won't hurt my feelings. Ha ha!)


Counts should be easy to add, but are not in at presented, excepted "visited".

Yeah, after I thought about it, most people would probably never use this, and, if they wanted to, like you say: it's easy peasy.


It's really easy to add the command attributes into a game.

And, like the counters, most people would never use it.

But, if you just want to see what I'm talking about:

settings.setup = function(){
    findCmd("Take").touching = true;
    findCmd("NpcTake").touching = true;
    findCmd("Push").touching = true;
    findCmd("NpcPush").touching = true;
    findCmd("Pull").touching = true;
    findCmd("NpcPull").touching = true;
    findCmd("Search").touching = true;
    findCmd("NpcSearch").touching = true;
    findCmd("Open").touching = true;
    findCmd("NpcOpen").touching = true;
    findCmd("Close").touching = true;
    findCmd("NpcClose").touching = true;
};
createItem("Ralph",
  NPC(true),
  { loc:"lounge", examine:"A penguin-like creature.", properName:true, happy:false,
    getAgreement:function() {
      if(parser.currentCommand.cmd.touching && w.Ralph.loc == "lounge"){
        msg("\"Man, I'm not touching anything in this room!\"")
        return false;
      }
      if(w.Ralph.happy){
        msg("Ralph ignores you.");
        return false;
      }
      msg("\"Leave me alone,\" says Ralph.")
      return false;
    },
  }
);

createItem("stick", TAKEABLE(),{
    loc:"lounge"
  })

image


Log in to post a reply.

Support

Forums