More inventory trouble

Still working on the new inventory interface. I have freed up two lines at the bottom to make more room for the description box. This leaves me with only one line for the key reference, but I think that will do.

I have hit a snag with item pickup and dropping. These actions are supposed to cost one turn per item, but this menu locks up the game logic flow. I can’t easily drop a single item, go back to the main loop to run a game turn and then resume the dialog. I have a few options, none of which is really good:

  • Create some kind of delayed event queue that drops items one by one. This is way out of scope. I never planned for it and there are just too many things that can go wrong. For example, items can be destroyed between turns so at the very least I would need a safe GUID handle for every item in the game (now I just have pointers).
  • Make a slightly hacky variant of the above with the “multiaction” facility. This is my current way of extending actions over several turns, but I think only resting and “Aimed Shot” make use of it so far. This for a reason – it’s a real mess to work with. I could possibly supply it with a list of item letters to pick up from the current location. If an item is not there (it has been removed or destroyed) it can simply be skipped, so there’s less risk of crashing.

From a gameplay point of view, my main complaint about these two is that they will lock the player up for several turns. If I try to pick up five items and an enemy wanders on screen, I want to interrupt and deal with that first. They also open up gray areas like what would happen if the player is teleported away during the extended action (should probably just abort the action, but I would need to track down every case where it can happen).

  • Pick up item, set a flag, return to the main loop, at the next turn (if the flag is set) return to the dialog. I think this would work but probably cause UI bugs (and I have enough of those already).
  • Make drop and pickup cost only one turn regardless of how many items are transferred.
  • Make drop and pickup free actions. This is how (un)equip works now: you can completely replace your equipment without even spending a turn.

The last two would keep drop and pickup as atomic actions, but would require me to change the ruleset. I do not want to make the actions entirely free since I wish to keep their tactical purpose – “should I stop to pick up and use that potion of healing or just keep fighting for two turns?”

Free dropping could throw the encumberance penalties off balance. I’m not happy with them anyway so this could be a good thing. If I decide to keep encumberance I could change it to some kind of delayed effect if necessary.

Allowing multiple item transfer in a single action would create some odd discrepancies in the UI. For example, the “do what I mean” Enter key only picks up one item at a time, while the ‘,’ key would let you pick up several. I could change Enter to pick up everything on the floor.

A compromise would be to only let the player transfer a limited number of items, say three per turn.

I’m probably overthinking this. You usually pick up only two or three items at a time and letting that consume only a single turn would not change much, and this issue will definitely not govern how fun the game is. I’m all for removing micromanagement and if anyone wishes to grind and scum that isn’t really my problem.

Oh, and another thing: I made so the default pickup key ‘,’ works within the pickup menu as well. You can now hit it once to bring the menu up, then keep tapping the same key (rather than Enter) to pick up the selected item. It feels much more natural, much more… dwim-y.


Leave a Reply ... IF YOU DARE

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: