Hedgerow Hall

by Hedgemistress
Hedgerow Hall
Serious role-playing-oriented game world, with animals.
ID:1812810
 
So, the last real puzzle piece of the magic system has fallen into place: prompts.

The original Hedgerow Hall had a prickly design problem when it came to herbs/spells/what have you with effects that could potentially be unwanted, depending on the context... the game assumed you would resist negative effects and allow positive ones, but for ambiguous ones I never came up with a better system then an all-or-nothing preference.

So you'd have healing herbs and poison herbs, but what about the herb that flushes other herbs from your system? That's good if you're poisoned, bad if you're buffed up by other herbs.

Teleportation spells in general are a big general case for this. Whether teleport is a "buff" or "debuff" varies widely depending on the situation you're being pulled from and the situation you're being put into.

Now, one solution is to make multiple spell variants, one that only affects people who have accepted your friendship and one that affects enemies (or any non-friends) and make it so that the latter is resisted and the former is not. Apart from having to define the scope of friendship and maybe enemyship mechanically, this could lead to a spiral of unintended consequences with whatever the friending system is. Essentially, if the friending system makes someone more potentially dangerous to you rather than safer, then it will trend towards being used that way.

The obvious solution is prompts, but this is not without its pitfalls. Pop-up prompts have a disruptive way of stealing focus from everything else. If there aren't controls on their quantity/frequency, they can be used to spam.

So the prompt system I've come up with works like this: when you receive an offer from another player (to teleport, to treat you with an herb, et cetera), you receive a text notification like "Vlad the Badger would like to summon you. Reply with Y or N."

Y and N are macro'd to verbs called yes and no that take anything in (your list of prompts + "nothing") as an argument. So if you hit Y with that summon prompt in your hopper, it will pop up with something like

yes to what?
-Vlad the Badger's Summoning Offer
-nothing

The "nothing" is a little trick to make sure that a single stray key press never accepts a lone pending offer. I think you can do something similar with |null, but having "nothing" there as an item in the list is more visually satisfying.

Why have a no? If you know you don't want a given offer, you can prevent later accidental acceptance. Also, if you're not interested in keeping the person making the offer in suspense (it was a friendly teleport offer that you just don't happen to need), saying no lets them off the hook... a character can only have one spell in progress at a time, so while they're waiting around for you to decide if you want to respond to their summons or not they can't be casting anything else.

The system works pretty well. I think I do need to add a little visual indication that you've received an offer, like a "y/n?" text that floats over the asker if they're present, and you if they're not.

I'm thinking about making it so that if you hit y or n when there are no prompts in the queue for you it will emote a nod or head shake, because that would be handy and that way those keys wouldn't just be sitting there doing nothing most of the time.

With prompts in place, I can add a lot more of the higher tier spells, as well as the herbalism system.
Very cool. Especially the nod/shake extra thing. Another thing to be careful of which happens constantly in games, is players who are typing, who then get a prompt and accidentally accept it. I'm not sure if your system has that covered or not but it's one to watch out for, especially if the typing ends in an "Enter" key press. Pretty easy fix though, just have "None" be the default (first in list) every time.
Making none the default choice is easy enough (thanks for pointing it out), but I'm not too worried about this specific event as the lack of an actual pop-up means that a prompt doesn't take focus away from the command input.