Name | dcss:brainstorm:interface: autopickup |
---|---|
Summary | Everything about autopickup. |
Added by | rob |
Added on | 2010-09-10 18:51 |
More intelligent autopickup has been on my wishlist for a while. The Lua hooks should all be there, it's just a matter of designing and implementing it.
I have a few autopickup requests:
Thanks! — Tenaya 2010-09-20 23:28
Added by | XuaXua |
---|---|
Added on | 2014-12-04 19:43 |
Discussion | Tavern Thread to Discuss |
Currently by default, having Sticks to Snakes or Sandblast memorized causes the required components to be set to autopickup. With weight limits gone, there is no reason to not pick up any stackable item (ammo, etc.) you are already carrying from the ground.
Autopickup should pick up any item that stacks with an item you are already carrying, since there's no real downside to doing that any more. It should not, however, pick up a variation of an ammo that you are not currently carrying (a Javelin vs. a Steel Javelin, or a flaming arrow vs. a frost arrow). There is no in-game reason for any character to be carrying launchable/throwable ammunition other than for explicit use; therefore there is no downside to this change to autopickup behavior.
Once a stackable is carried, all stackables of that exact type should be set to autopickup. If the stackable is explicitly dropped, autopickup for that type should deactivate (unless Sticks to Snakes / Sandblast is memorized per the current rules for those spells). If the last stackable was fired (not dropped), then autopickup for that type should remain active. This “dropping” behavior should only apply to ammo/launchable inventory items; do not modify current scroll/potion behavior.
There should be an init flag to dictate this behavior.
While having certain spells memorized already dictates this behavior, carrying a launcher should not dictate this behavior, as that launcher may be carried for brand purposes.
ledtim 2010-12-16 08:06 I'd propose screen where you can configure various autopickup options, akin to the skill toggle screen.
Configure your autopickup options by pressing the letter of an autopickup category. Artefacts: [on/off] Potions: [on/off] etc.
The default configuration would be determined by the player's skills at the beginning. For example, for casters with dodging, heavy armour would not be picked up. Maybe if the player has a weapon skill, shiny/glowing/runed weapons of that type and ones that crosstrain with that type would have autopickup turned by default.
Also, I think weapons and armour could stand to use more configuration in autopickup options. For example,
Runed/Glowing/Shiny axe: [all/one handed only/two handed only/good one-handed base-type only/good two-handed base-type only/best one handed only/best two-handed base-type only] Shiny armour: [light armour only/heavy armour only]
I actually managed to add stuff to my init file that achieves much of the same, but it would be nice to have it work through an ingame toggle screen and have it account for the character type/skill to come up with a default option (for example, for a spriggan, it wouldn't pick up leather armour, only robes, by default without you specifying it).
How my init file works is this: All shiny equipment is given appropriate labels. Then I can comment/uncomment various autopickup options to pickup only equipment I want to pickup. For example, I could uncomment the line that says #autopickup_exceptions = <(shinypolearmbestonehand|shinypolearmgoodonehand) to have the game automatically pickup any shiny polearm that's either a trident or a demon trident. I could uncomment the line that says #autopickup_exceptions = <shinypolearmbestonehand to have the game only pickup shiny demon tridents, which are the best one-handed polearms in the game.
######################### #Automated inscription for sorting shiny and rare armor/weapons, use search and the label to find. For example, search shinymacebestonehand to find a shiny one handed mace that's worth using endgame. autoinscribe = (runed|glowing|shiny|embroid|dyed):shiny autoinscribe = (runed|glowing|shiny|embroid|dyed).*axe:axe autoinscribe = (runed|glowing|shiny|embroid|dyed).*hand axe:projectile autoinscribe = (runed|glowing|shiny|embroid|dyed).*mace:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*flail:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*hammer:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*whip:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*star:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*ankus:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*club:mace autoinscribe = (runed|glowing|shiny|embroid|dyed).*short sword:short autoinscribe = (runed|glowing|shiny|embroid|dyed).*dagger:shortprojectile autoinscribe = (runed|glowing|shiny|embroid|dyed).*sabre:short autoinscribe = (runed|glowing|shiny|embroid|dyed).*quick blade:short autoinscribe = (runed|glowing|shiny|embroid|dyed).*glaive:polearm autoinscribe = (runed|glowing|shiny|embroid|dyed).*trident:polearm autoinscribe = (runed|glowing|shiny|embroid|dyed).*halberd:polearm autoinscribe = (runed|glowing|shiny|embroid|dyed).*bardiche:polearm autoinscribe = (runed|glowing|shiny|embroid|dyed).*scythe:polearm autoinscribe = (runed|glowing|shiny|embroid|dyed).*spear:polearmprojectile autoinscribe = (runed|glowing|shiny|embroid|dyed).*lajatang:staff autoinscribe = (runed|glowing|shiny|embroid|dyed).*quarterstaff:staff autoinscribe = (runed|glowing|shiny|embroid|dyed).*crossbow:crossbow #Hack since just 'bow' fits both crossbow and bow and I'm too lazy to figure out to correct syntax to exclude crossbows autoinscribe = (runed bow|glowing bow|shiny bow|runed longbow|glowing longbow|shiny longbow):bow autoinscribe = (runed elven longbow|glowing elven longbow|shiny elven longbow):bow autoinscribe = (runed|glowing|shiny|embroid|dyed).*sling:sling autoinscribe = (runed|glowing|shiny|embroid|dyed).*blow:blowgun autoinscribe = (runed|glowing|shiny|embroid|dyed).*long sword:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*scimitar:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*falchion:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*katana:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon blade:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*double sword:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*great sword:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*triple sword:sword autoinscribe = (runed|glowing|shiny|embroid|dyed).*shield:shield autoinscribe = (runed|glowing|shiny|embroid|dyed).*buckler:buckler autoinscribe = (runed|glowing|shiny|embroid|dyed).*boots:feet autoinscribe = (runed|glowing|shiny|embroid|dyed).*(hat|cap):headfitall autoinscribe = (runed|glowing|shiny|embroid|dyed).*helm:head autoinscribe = (runed|glowing|shiny|embroid|dyed).*(gloves|gauntlets|bracers):hands autoinscribe = (runed|glowing|shiny|embroid|dyed).*cloak:cloak autoinscribe = (runed|glowing|shiny|embroid|dyed).*robe:lightfitall autoinscribe = (runed|glowing|shiny|embroid|dyed).*leather armour:light autoinscribe = (runed|glowing|shiny|embroid|dyed).*troll:fitall autoinscribe = (runed|glowing|shiny|embroid|dyed).*mail:heavy autoinscribe = (runed|glowing|shiny|embroid|dyed).*steam dragon:lightfitall autoinscribe = (runed|glowing|shiny|embroid|dyed).*mottled dragon:lightfitall autoinscribe = (runed|glowing|shiny|embroid|dyed).*dragon:heavyfitall autoinscribe = (runed|glowing|shiny|silver|steel).*bullet:bullet autoinscribe = (runed|glowing|shiny|silver|steel).*bolt:bolt autoinscribe = (runed|glowing|shiny|silver|steel).*arrow:arrow autoinscribe = (runed|glowing|shiny|silver|steel).*javelin:javelin #endgame-worthy weapon types autoinscribe = lajatang:best autoinscribe = (runed|glowing|shiny|embroid|dyed).*broad axe:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*battleaxe:goodtwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*executioner's axe:besttwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon blade:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*katana:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*double sword:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*scimitar:goodonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*long sword:goodonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*great sword:goodtwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*triple sword:besttwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*spiked flail:goodonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*great mace:goodtwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*spiked club:besttwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*eveningstar:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon whip:bestonehand autoinscribe = (runed trident|glowing trident|shiny trident):goodonehand autoinscribe = (runed orcish trident|glowing orcish trident|shiny orcish trident):goodonehand autoinscribe = (runed elven trident|glowing elven trident|shiny elven trident):goodonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*demon trident:bestonehand autoinscribe = (runed|glowing|shiny|embroid|dyed).*bardiche:besttwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*glaive:goodtwohand autoinscribe = (runed|glowing|shiny|embroid|dyed).*sabre:best autoinscribe = (runed|glowing|shiny|embroid|dyed).*quick blade:best autoinscribe = (runed|glowing|shiny|embroid|dyed).*longbow:best #rare items. Not adding demon weapons because they are common in hell/pandemonium autoinscribe = (executioner's axe|katana|double sword|triple sword|eveningstar|quick blade):rare autoinscribe = (storm dragon hide|storm dragon armour|gold dragon|crystal plate):rare #racial marks autoinscribe = dwarven:dwarven autoinscribe = elven:elven #autoinscribe = orcish:orcish ################################### #Pick up filter. Remove the '#' to pick up glowing items of the particular type automatically, or add the '#' to stop picking up. #uncomment to pick up all shiny items #autopickup_exceptions = <shiny autopickup_exceptions = <rare #Armour #autopickup_exceptions = <shinylight autopickup_exceptions = <shinylightfitall #autopickup_exceptions = <shinyheavy #autopickup_exceptions = <shinyheavyfitall autopickup_exceptions = <shinybuckler autopickup_exceptions = <shinyshield #autopickup_exceptions = <shinyhead autopickup_exceptions = <shinyheadfitall autopickup_exceptions = <shinycloak #autopickup_exceptions = <shinyfeet #autopickup_exceptions = <shinyhands #autopickup_exceptions = <naga barding #autopickup_exceptions = <centaur barding #Weapons #autopickup_exceptions = <shinyshort #autopickup_exceptions = <shinyshortbest #pickup daggers which are the best stabbers #autopickup_exceptions = <shinyshortprojectile #autopickup_exceptions = <shinyaxe #autopickup_exceptions = <(shinyaxebest|shinyaxegood) #autopickup_exceptions = <(shinyaxebestonehand|shinyaxegoodonehand) #autopickup_exceptions = <(shinyaxebesttwohand|shinyaxegoodtwohand) #autopickup_exceptions = <shinyaxebest #autopickup_exceptions = <shinyaxebestonehand #autopickup_exceptions = <shinyaxebesttwohand #autopickup_exceptions = <shinysword #autopickup_exceptions = <(shinyswordbest|shinyswordgood) #autopickup_exceptions = <(shinyswordbestonehand|shinyswordgoodonehand) #autopickup_exceptions = <(shinyswordbesttwohand|shinyswordgoodtwohand) #autopickup_exceptions = <shinyswordbest #autopickup_exceptions = <shinyswordbestonehand #autopickup_exceptions = <shinyswordbesttwohand #autopickup_exceptions = <shinypolearm #autopickup_exceptions = <(shinypolearmbest|shinypolearmgood) #autopickup_exceptions = <(shinypolearmbestonehand|shinypolearmgoodonehand) #autopickup_exceptions = <(shinypolearmbesttwohand|shinypolearmgoodtwohand) #autopickup_exceptions = <shinypolearmbest #autopickup_exceptions = <shinypolearmbestonehand #autopickup_exceptions = <shinypolearmbesttwohand #autopickup_exceptions = <shinymace #autopickup_exceptions = <(shinymacebest|shinymacegood) #autopickup_exceptions = <(shinymacebestonehand|shinymacegoodonehand) #autopickup_exceptions = <(shinymacebesttwohand|shinymacegoodtwohand) #autopickup_exceptions = <shinymacebest #autopickup_exceptions = <shinymacebestonehand #autopickup_exceptions = <shinymacebesttwohand #autopickup_exceptions = <shinystaff #autopickup_exceptions = <shinystaffbest #autopickup_exceptions = <shinysling #autopickup_exceptions = <shinycrossbow #autopickup_exceptions = <shinyblowgun #autopickup_exceptions = <shinybow #autopickup_exceptions = <shinybowbest #ammo #autopickup_exceptions = <needle #autopickup_exceptions = <needles of (paralysis|sleeping) #autopickup_exceptions = <arrow #autopickup_exceptions = <shinyarrow #autopickup_exceptions = <bolt #autopickup_exceptions = <shinybolt #autopickup_exceptions = <stone #autopickup_exceptions = <bullet #autopickup_exceptions = <shinybullet #autopickup_exceptions = <throwing net #autopickup_exceptions = <javelin #autopickup_exceptions = <shinyjavelin #for not picking up chunks automatically, handy with orbs of destruction which spreads chunks around and late game when it's annoying to micromanage dropping chunks due to being encumbered autopickup_exceptions = >chunk #pickup shiny dagger/spears/handaxes on the chance they are returning brand if using throwing #autopickup_exceptions = <projectile #pick up all artefacts autopickup_exceptions = <artefact #for mummy who wants to pick up potions and food for nemelex etc. #autopickup_exceptions = <potion #autopickup_exceptions = <food