RFE: Quiver for Unstacking Missiles
issueid=1415 12-10-2012 09:46 PM
Ancient Member
Number of reported issues by JellySlayer: 114
RFE: Quiver for Unstacking Missiles

Something I would love to see would be a quiver that would allow multiple missiles stacks (of the same type) to be stored simultaneously. The idea being, you will often end up with dozens upon dozens of single arrows all with slightly different stats, B/U/C status, etc. and actually using these for combat is really annoying because you have to reload every turn. If there was some way to wrap up all of these arrows into a single bundle so that you could fire them all consecutively without having to reload, this would be a massive improvement for missile play.

I suppose this could be an item, but honestly, I think it would be better if it were just something that could be applied all the time, to any set of missiles that the player would like. In fact, irregular missiles--spears, boomerangs, knives, hammers, etc. suffer from this problem far worse than arrows, quarrels and rocks do, because it's quite hard to find large stacks of these of identical stats, so limiting quivers to just arrows or whatever, while more realistic, might not be that desirable.
Issue Details
Issue Number 1415
Issue Type Feature
Project ADOM (Ancient Domains Of Mystery)
Category All
Status Implemented
Priority 5 - Medium
Suggested Version ADOM 1.2.0 pre 7
Implemented Version ADOM 1.2.0 pre 21
Milestone (none)
Votes for this feature 16
Votes against this feature 0
Assigned Users (none)
Tags (none)




12-10-2012 11:22 PM
Ancient Member
Yeah, I think I filed this as an RFE for ADOM II at some point. Obviously, I also think it would be great for ADOM I. However it doesn't sound trivial to program, I hope it's not that hard...

12-11-2012 01:12 AM
Ancient Member
This is a must-have feature, imo. Esp for non-standard missiles.

12-21-2012 09:58 AM
wzq wzq is offline
Junior Member
Simple solution would be to make the stats exactly the same for the same type missiles. For example ALL standard arrows would have (+0, 1d6+0) and all arrow of humanoid slaying (+3, 1d6+3), no randomness.
It wouldn't solve the entire issue but it would decrease the amount of stacks and single arrows. On the downside it takes away some randomness but i don't think it's that important when concerning missiles.

12-21-2012 10:48 AM
Ancient Member
Quick-load Quiver - tool item that allows automatic reloading as a 0 energy cost action. The only downside is that automatic reloading is an optional feature and if you accidentally go past the missiles you want in the prompt, you can only equip it at the cost of a turn once again... Hmm...

Maybe the code will allow for the quiver to make all "e"quipping in the missile slot and the missile slot only (including automatic reloads) a free action while the player owns a quiver. Unequipping and re-equipping a missile weapon would still cost a turn, so players couldn't switch between missile types and/or thrown weapons without spending a turn.

I'd hate to lose all variety in the damage modifiers for missiles. I like having lots of different arrows in principle - it's the reloading bit that blows.

12-21-2012 11:24 AM
Senior Member
How about allowing the player to essentially "trim back" missile quality? What do I mean?

I mean, allowing the player to take, for instance, these three missiles:

arrow of humanoid slaying (+3, 1d6-1)
arrow of humanoid slaying (+2, 1d6+2)
arrow of humanoid slaying (+3, 1d6+2)

And force them to bundle together, giving...

3 arrows of humanoid slaying (+2, 1d6-1)

Note that it takes the lesser value for each modifier - +2 due to the second arrow, and 1d6-1 due to the first arrow. Their blessed/uncursed/cursed status would also move towards the lowest one, so if the first two above were blessed and the third one was cursed, the bundle of 3 would be cursed. Note that missiles with ego prefixes and suffixes would be kept separate - if you also had a regular arrow, it wouldn't be able to be combined with the arrows of humanoid slaying above at all.

The result is that the player has a choice to make - either keep the arrows separate, and benefit from the higher modifiers, or group them together, and require fewer turns to use them.

In terms of implementation, I'd use the missile slot as the collection point. Put one arrow (or pile of arrows) in the missile slot, then use a key to pull up all combinable arrows - select the ones you want to add to your missile slot pile.

12-21-2012 11:51 AM
Ancient Member
That's a pretty nifty idea, Aielyn.

12-21-2012 06:27 PM
Ancient Member
Or anybody with Fletchery skill can merge a group of compatible ammo, and get better results depending on skill level.

1 Fletchery = minimum values
100 Fletchery = maximum values
and as always a chance of ruining your work.

12-21-2012 06:37 PM
Ancient Member
Quote Originally Posted by Aielyn
How about allowing the player to essentially "trim back" missile quality? What do I mean?

I mean, allowing the player to take, for instance, these three missiles:

arrow of humanoid slaying (+3, 1d6-1)
arrow of humanoid slaying (+2, 1d6+2)
arrow of humanoid slaying (+3, 1d6+2)

And force them to bundle together, giving...

3 arrows of humanoid slaying (+2, 1d6-1)

Note that it takes the lesser value for each modifier - +2 due to the second arrow, and 1d6-1 due to the first arrow. Their blessed/uncursed/cursed status would also move towards the lowest one, so if the first two above were blessed and the third one was cursed, the bundle of 3 would be cursed. Note that missiles with ego prefixes and suffixes would be kept separate - if you also had a regular arrow, it wouldn't be able to be combined with the arrows of humanoid slaying above at all.

The result is that the player has a choice to make - either keep the arrows separate, and benefit from the higher modifiers, or group them together, and require fewer turns to use them.

In terms of implementation, I'd use the missile slot as the collection point. Put one arrow (or pile of arrows) in the missile slot, then use a key to pull up all combinable arrows - select the ones you want to add to your missile slot pile.
It means that instead of going through the missiles in the inventory to pick out the useless stacks and drop them (the current situation), I have to go through the missiles and manually trim them down to fit - and even have to think about how to do it in the most effective manner. That doesn't sound like much of an improvement, to say the least. Considering that it would also require quite some effort to implement (a new command and interface), definitely not worth it if you ask me.

12-21-2012 09:29 PM
Ancient Member
Quote Originally Posted by Aielyn
How about allowing the player to essentially "trim back" missile quality?
I don't like it because it kills immersion. There is no reason why anybody would do that in real life (or in fantasy life). It would feel really forced.

This is an interface problem, not a problem with the model (game world). Making the PC damage his own arrows in the game world so that an external entity called the player can operate with less keystrokes is... weird.

I think we need either the original suggestion by JellySlayer (the quiver) or nothing at all. Any solution that impoverishes the game model to make it fit the limited interface (be it allowing the player to trim back missiles or just using the same stats for all missiles) is going to be unsatisfactory.

12-21-2012 09:45 PM
Ancient Member
Maybe another option would be to give reloading with another stack of missiles of the same type a zero energy cost?

12-21-2012 09:53 PM
Ancient Member
This is subjective but at least for me, the tedium of having to go to the inventory, find a single arrow, choose it, shoot and then go to the inventory again to find another arrow is a worse problem than the energy cost.

12-21-2012 10:11 PM
Ancient Member
As a simpler option that might be possible for ADOM, what about having a new addition to the Auto_Reload command that simply chooses the next available missile without prompting at all? If you've got some valuable missiles that you'd rather avoid using it could be inconvenient (but you can turn it off), but for general purposes, this should be good enough. Main advantage is that the interface to make this work is already in-game.

12-22-2012 08:42 AM
Ancient Member
Unfortunately I don't think that would do... in almost any game you get some slaying ammo from the early game, and you don't want to indiscriminately use it.

12-22-2012 08:48 AM
Ancient Member
Well, such an option would still be a great help for someone trying an archer with unusual ammo like spears or whathaveyou*. Slaying missiles could be dropped temporarily when shooting a horde of monsters. Of course it's a suboptimal solution compared to quivers but maybe easier to code.

*: assuming auto-reload would be made to work with them in the first place

12-22-2012 08:24 PM
Junior Member
I (as a programmer, heh) am trying to see things from a programmer's standpoint, because I understand that implementing this RFE as a "quiver that holds different stack of missiles" might be demanding at this stage.
So here I go with an alternative idea that should solve most of the hassle AND be easy to code.
When the last equipped missile is shot, there is a loop that will go though all missiles of the same type prompting the player if he wants to equip it.
As I see it, the biggest problems here are:
1) equipping that bundle of 2 arrows costs one turn, so if a player has, for instance, many bundles of 1 or 2 arrows, it becomes annoying and expensive in terms of game turns to use them, so the player would probably periodically drop all stacks of ammo that are smaller than, say, 4 (I do it, and I hate to do it).
2) the loop presents missiles in the order they are in the backpack, so that slaying missiles will sometimes end up as the first reload choice and the player has to routinely decline to equip those in normal situations, thus wasting time at every reload.
My proposal is to implement a "truly automatic reload" feature, which would simply inform the player that the last equipped missile was shot, and the next bundle in the inventory was loaded (without the need for the player to cycle through all the missiles in the inventory), with the catch that the order of the reload would be something along the lines of:
- identified non-slaying ammo
- non-indentified ammo
- slaying ammo
Such a feature should be configurable via cfg file and possibly an in-game switch (like the auto-pickup switch). It should be fairly easy to implement: just set a check at the ammo reload loop to see if this truly-auto-reload is on, and then add a few conditions to choose the next better missile to auto-equip.
It would solve most of our problems, wouldn't it?

05-10-2013 12:28 PM
Ancient Member
Sorry for the late participation.

How about having the player pre-load stacks:

For example, you have 5 arrows (+0, 1d6+0)
10 arrows (+0, 1d6+1)
4 arrows (+1, 1d6 +0)

You press 'i', 'n' once or twice to access the missile selection screen and then, similar to quick-marking skills, select the order in which the arrows will be loaded. Pressing '1' and then 'c' for the 4 arrows, '2' and then 'b' for the 10 arrows and '3' and then 'a' for the 5 arrows. Then 'z' when done.

The 4 arrows will now be loaded in the missile slot. When the last arrow is shot the game will automatically load the 10 arrows and after they are shot the 5.

When the arrows are picked up, the order is retained and the (+1, 1d6+0) automatically goes to the missile slot.

The order can easily be changed by simply marking another stack with an appropriate number from 1 to 0(9).

Edit - Thought it, never typed it: Have the order always run sequentially, eg. if 1 and 4 is selected then 4 changes to 2. If '1' is pressed then 2 becomes 1 if 'z' is pressed. If 1 through 9 is selected and '5' is pressed then 'z', 6 through 9 becomes n-1. 6 becomes 5 in other words. If '2' is pressed and a stack selected, 2 through 8 becomes n+1.

Edit 2 - If this is too confusing, maybe this explanation, if I have 5 stacks selected for pre-load, but just found another stack I would rather want in position 1. I would simply press: i n n scroll down with + to the new stack press 1 and the alphabetic(a-z) to the left of the new stack and then z z. Now my newly found stack will be in my missile slot and when all those have been shot my previous position 1( which is now in position 2 ) stack will automatically load.

This way one can pre-load 10(9) stacks and easily alter the load sequence when a stack changes size or new stacks are found.

At long last one can use melee weapons that auto-load as missiles. Any item for that matter.

05-10-2013 02:42 PM
Ancient Member
I think Aielyn's approach would be the best and simplest to use. Add a command to "Bundle missiles", perhaps Ctrl+B. Show a "select all missiles to bundle together" dialog where you can choose multiple items from the missile category, like when using comfortable drop. Only missiles of the same base type and without pre/suffixes can be bundled, otherwise the game says "You can't bundle different ammunition together" and nothing else happens. Which to-hit and damage bonuses the new stack takes on could be chosen at random from the item pool, maybe depend on Luck, and/or have a hidden bonus for Archers. It would be a bit similar to the weaponsmith's melting down class power.

The end result: you use Ctrl+B, select all those unstacking arrows and rocks, and turn them in a neat, uniform stack, which can then be equipped in the missile slot.

05-10-2013 03:00 PM
Ancient Member
I don't like the idea of items changing out of the blue. Even in a fantasy world. Whenever something change physically or magically there should be some reason for it.

No sane archer would blunt an arrow so it does less damage. He would pull arrows from a quaver and shoot them. Thus bundling is fine, just add a 'bundled' entity( like a mini-inventory ) and have the game draw each missile randomly from the mini-inventory.

Edit - Basically what the original poster suggested with the random drawing from this quiver added in. The game could even query the user whether he/she wants to add the missile to the quaver upon picking up from the floor. Changing/Replacing the current query of placing into the missile slot when applicable( intelligently of course, if the quaver is filled with arrows and an unidentified stack of arrows is picked-up it will query, identified arrows will go to the quaver automatically). I would suggest that this quaver also be able to hold non-missile items, e.g. daggers. Like the original poster suggested.

05-12-2013 08:53 AM
Senior Member
Instead of trying to make several pages of single arrows in inventory usable (either with additional items or additional actions) - you could fix issue itself.

Make any dropped stackable missiles in stack less of 6* - standard ones. ex: barbarian shoots an arrow. it could be ordinary arrow - in this case it would be uncursed +0, 1d6+0 arrow. it could be arrow of humanoid slaying - in this case it would be uncursed +3, 1d6+3 arrow. Same for small stacks. Enable random stats only on large stacks - ex: that 7 arrows dropped from raider could be anything.

Alternative solution - decrease missiles drop rate, but make them always drop in stacks of 6 or more, so dropped missiles would be completely random as before, while shooted missiles would be standard ones. Lore justification - why would you make just one special missile when you need to test it? You'll make several and give them to some buddy to shoot.

Additional feature - auto-pickup of exact same missiles (which would "add to your ammunition"), currently missiles auto-pickup just clogs inventory with useless random arrows.

With this changes average players missile inventory (assuming that all missiles are picked) would look like this, without any efforts to make it nice and tidy:
156 uncursed arrows +0, 1d6+0
32 uncursed mithril arrows +0, 1d6+3
8 uncursed adamantium arrows +1, 1d6+6
11 cursed arrows of construct slaying +4, 1d6+1
6 blessed arrows of demon slaying +2, 1d6+2
7 uncursed arrows of giant slaying +4, 1d10+5
(bunch of random uncursed standard slaying/winged/whatever arrows dropped from shooting monsters, which will stack with their kind)

* - 6 is an arbitrary number where i consider what to do with missile stack instead of ragedropping it.

05-12-2013 09:53 AM
Ancient Member
Added some detail to my previous post.

+ Reply