# autopick.txt for Hengband
#
# The last part of this file is an example of 'pickpref.prf'. 
# You can copy this file to lib/user/ or ~/.angband/Hengband/ 
# to use as preference of auto-picker.
# (UNIX user must copy to ~/.angband/Hengband/. Others must 
# copy to lib/user/.)
#
#    =====   How to use auto-picker/destroyer   ========
#    
#      Create a file named "pickpref.prf" or "pickpref-<<name>>.prf" 
#      (or move and rename this file) in the same directory as your 
#      user preference files.  This will be ~/.angband/Hengband/ 
#      for UNIX, or hengband/lib/user/ for other operating systems.
#      
#      The game will read the file "pickpref-<<current character 
#      name>>.prf" first and then read the file "pickpref.prf".  The 
#      first-read file takes priority.
#
#      You may use the '$' command within the game to reread auto-
#      picker files.
#
#      Notes:
#      Maximum number of active lines is 1009.
#      A line with a header '#' is a comment.
#
#
#    Editing the file
#    ---------
#
#    Command letter:
#           Each line determines the actions taken when you step over a kind 
#      of object.  Starting a line with '!' indicates that you wish to destroy 
#      this kind of object.  Starting a line with '~' indicates that you wish 
#      to leave this kind of object on the floor.  Otherwise, your character 
#      will automatically attempt to pick up the object.
#           There is an additional command letter '('.  It indicates that 
#      you don't wish this item to be displayed in full map. see below.
#
#      Notes:
#      If you want to disable the effect of the '!' indicator temporally, 
#      use 'always_pickup' option.
#
#
#    Keywords:
#           After the command letter may come one or more keywords.  They are:
#
#      all               : All items match.
#      collecting        : Matches if you already have that same item.
#      unidentified      : Unidentified items match.
#      identified        : Identified items match.
#      *identified*      : *Identified* items match.
#      nameless          : Non ego/non artifact items match.
#      unaware           : Items with unknown effects match.
#      worthless         : Items which you cannot sell match.
#      dice boosted      : Weapons with boosted damage dice match.
#      more than nn dice : Weapons with dice (dd * ds) better than nn match.
#      wanted            : Wanted monster's corpses or skeletons match.
#      unique monster's  : Unique monster's corpses, skeletons or statues match.
#      human             : Human corpses or skeletons match.
#      unreadable        : Spellbooks other than those you can read match.
#      first realm's     : Your first magic realm's spellbooks match.
#      second realm's    : Your second magic realm's spellbooks match.
#      first             : First one of four spellbooks in each realm match.
#      second            : Second one of four spellbooks in each realm match.
#      third             : Third one of four spellbooks in each realm match.
#      fourth            : Fourth one of four spellbooks in each realm match.
#
#      items             : All items match. Use it with an adjective for 
#                          readability (i.e. "unaware items").
#      artifacts         : All artifacts match.
#      weapons           : All weapons including missile weapons match.
#      armors            : All armors match.
#      missiles          : Arrows, bolts, and shots match.
#      magical devices   : Wands, staffs and rods match.
#      lights            : Light sources match.
#      junks             : Junk items like Shard of Pottery or etc. match.
#      spellbooks        : All books match.
#      hafted weapons    : Hafted weapons match. For priests.
#
#      You may also use keywords which match specified kinds of equipment:
#      weapons, armors, missiles, magical devices, lights, junks, spellbooks, 
#      hafted weapons, shields, bows, rings, amulets, suits, cloaks, helms, 
#      gloves, boots
#
#
#    Character strings:
#           After the keywords, you may write a character string. Only items 
#      whose name contains this character string as part of their name match. 
#      Upper or lower case makes no difference.
#           You must insert a ':' between your special keywords and character 
#      string, if both exist in one line.
#
#    Force start-of-line matching:
#      If the first character in a character string is '^', then the 
#      character string must match the beginning of a line.
#
#    !Mace           // Destroy Maces and Lead-Filled Maces.
#    !^Mace          // Destroy only Maces.
#
#
#    Examples:
#
#    !worthless items
#    Meaning:  "destroy all items that are worthless"
#
#    unaware potion
#    Meaning:  "pick up all unaware potions"
#
#    ~unidentified lites
#    Meaning:  "leave all unidentified light sources on the ground"
#
#    unidentified more than 25 dice weapons
#    Meaning:  "pick up all weapons with dice that total more than 25.  A 
#         weapon that is 2d13 qualifies, a weapon that is 5d5 does not."
#
#    Acquirement
#    Meaning:  "pick up anything that includes in its name the word 
#    'Acquirement'"
#
#    potion of Experience
#    Meaning:  "pick up anything named 'potion of experience'"
#
#    Lights:stone
#    Meaning:  "Pick up light sources named stone"
#
#    gloves:slaying
#    Meaning:  "Pick up gauntlets of slaying. Not rings of slaying."
#
#
#    Special Notes:
#    
#      Lines will be evaluated in order, and first matched line will be 
#      applied. So you can write names of specific excellent items to pick 
#      up, followed by a general item name with '!' to destroy useless items.
#    
#      ! Tips
#      !     In full map command ('M'), you can press M, N, K, or D to 
#      ! display locations of items for auto-pickup, leaving, auto-destroy 
#      ! or both auto-pickup and leaving.
#      !     Additional command letter '(' prevents this display.
#      !
#
#      If you begin the last string in a line with '#', this string will
#      be automatically inscribed on the item.
#
#
#      Strict syntax of each line is below.
#      
#      [[all] [collecting] [unidentified] [identified] [*identified*] 
#       [nameless] [unaware] [worthless] [dice boosted] [more than nn dice] 
#       [wanted] [unique monster's] [human] [unreadable] 
#       [first realm's] [second realm's] [first] [second] [third] [fourth] 
#       [items | artifacts | weapons | armors | missiles | magical devices | 
#        lights | junks | spellbooks | hafted weapons | shields | bows | 
#        rings | amulets | suits | cloaks | helms | gloves | boots] :]
#      [[^]part-of-item-name] [#auto-inscription-string]
#    
#    
#    =======  How to use Conditional Expressions  ========
#    
#      The lines of pickpref.prf can be disabled/enabled using 
#      conditional expressions. 
#      The syntax is the same as that of other preference files.
#    
#      - usage of condition expressions
#        ?:expr
#          If result of expr is "0", all lines below are disabled.
#          If result of expr is "1", all lines below are enabled.
#          Caution:It cannot be nested.
#    
#      - usage to include other file
#        %:filename
#          Read a file named 'filename' as a new pick-pref file. The file 
#          must be in the user directory.
#          Caution: Avoid naming the parent file, or the game might freeze up.
#    
#      - usage of operators
#        [EQU arg1 arg2 ...]
#          If all args are same, returns "1", or else returns "0".
#        [IOR arg1 arg2 ...]
#        [AND arg1 arg2 ...]
#          IOR evaluates and returns all args' logical OR. IAND is logical AND.
#        [NOT arg]
#          Returns "0" if arg is "1", or else returns "1"
#        [LEQ arg1 arg2 ...]
#        [GEQ arg1 arg2 ...]
#          Compare args as string. LEQ returns "1" if (arg1 <= arg2 <= ...) ,
#          GEQ returns "1" if (arg1 >= arg2 >= ...) otherwise returns "0".
#    
#      - Special variables
#        $RACE
#         Returns name of player race. One of below:
#          Human, Half-Elf, Elf, Hobbit, Gnome, Dwarf, Half-Orc, Half-Troll,
#          Amberite, High-Elf, Barbarian, Half-Ogre, Half-Giant, Half-Titan,
#          Cyclops, Yeek, Klackon, Kobold, Nibelung, Dark-Elf, Draconian,
#          Mindflayer, Imp, Golem, Skeleton, Zombie, Vampire, Spectre, Sprite,
#          Beastman, Ent, Archon, Balrog, Dunadan, Shadow-Fairy, Kutar, Android,
#
#        $CLASS
#         Returns name of player class. One of below:
#          Warrior, Mage, Priest, Rogue, Ranger, Paladin, Warrior-Mage,
#          Chaos-Warrior, Monk, Mindcrafter, High-Mage, Tourist, Imitator,
#          BeastMaster, Sorcerer, Archer, Magic-Eater, Bard, Red-Mage, Samurai,
#          ForceTrainer, Blue-Mage, Cavalry, Berserker, Weaponsmith, 
#          Mirror-Master, Ninja
#
#        $PLAYER
#         Returns player name.
#        $REALM1
#         Returns player's first magic realm
#          Life, Sorcery, Nature, Chaos, Death, Trump
#          Arcane, Craft, Daemon, Music, Kendo
#        $REALM2
#         Returns player's second magic realm
#        $LEVEL
#         Returns player level as two-character string.
#          Ex. "01","09","10","50" etc.
#
#------------------------------------------------------------------
#
#    Below is an example 'pickpref.prf' file.
#    You can copy this file to lib/user/ or ~/.angband/Hengband/.
#    (UNIX user must copy to ~/.angband/Hengband/. Others must copy 
#    to  lib/user/.)
#
#------------------------------------------------------------------

wanted corpse
wanted Skeleton

# Berserker cannot use magical devices; rods, wands, and scrolls.
?:[EQU $CLASS Berserker]
!magical devices
?:1

unaware items

#Artifact lights
unidentified lights:^Jewel#!!
unidentified lights:^levitatioin stone#!!
unidentified lights:^Palantir#!!
unidentified lights:^stone#@A0
unidentified lights:^star#!!
unidentified lights:^Incandescent Light
unidentified lights:^Phial#!!

# auto inscribe resistances...
~*identified* artifacts#%

#
# pick all items which can stack your inventry without inscription.
#
collecting rod
collecting potion
collecting scroll

#
# good items
#
~rod of Perception#@z0!k!!
~rod of speed#!k!!
~rod of Healing#!k!!
~rod of Enlightenment#k!!
~rod of Detection#!k!!

potion of Invulnerability#!k
Acquirement#!k
potion of Experience
potion of Augmentation
*Destruction*
Genocide

potion of strength
potion of wisdom
potion of dexterity
potion of constitution
potion of intelligence
potion of Charisma

potion of life#!k
healing#!k

#
# Magic-Eaters pick up all magical device to absorb.
# Skeletons is material of missiles for Archers.
# Ninja needs lights of darkness.
# Vampire needs darkness.
# 
?:[EQU $CLASS Magic-Eater]
rod of 
staff of 
wand of 
?:[EQU $CLASS Archer]
skeleton of 
?:[EQU $CLASS Ninja]
~lights:darkness
Iron Spike#@v0
?:[EQU $RACE Vampire]
(~scroll of darkness
(~staff of darkness
?:1

# Destroy unless very early stage.
?:[GEQ $LEVEL 10]
(!amulet of Adornment
(!potion of Apple Juice
(!Empty Bottle
(!potion of water
?:1

# These worthless potions have some use at very early stage.
# Command letter '(' means, 'Don't display its location in full map command.'
?:[LEQ $LEVEL 20]
(~potion of booze
(~potion of Slowness
(~potion of Sleep
?:1

# complex example; destroy needless food items.
?:[AND [GEQ $LEVEL 20] [IOR [EQU $REALM1 Life] [EQU $REALM2 Life] [EQU $REALM1 Nature] [EQU $REALM2 Nature] [EQU $REALM1 Craft] [EQU $REALM2 Craft]]]
(!Satisfy Hunger
(!food
(!Slime Mold
(!of Elvish Waybread
?:1


#
# Destroy useless equipment at high level.
#
# Beware!!!!
#    The line '!nameless armors' destroy all dragon armour!
#    '~identified armors:dragon' will prevent this dangerous behavior.
#

?:[GEQ $LEVEL 40]
~identified armors:dragon
~nameless armors:Elven Cloak
~nameless armors:Shadow Cloak
~nameless weapons:Diamond Edge
~nameless weapons:Mace of Disruption
~nameless weapons:Shield of Deflection
!nameless weapons
!nameless armors

?:[GEQ $LEVEL 20]
!nameless weapons:) (+0,+0)
!nameless armors:,+0]
?:1

# higher rank of your spellbooks
first realm's fourth Book of Kendo#!k
first realm's third Book of Kendo#!k
first realm's fourth spellbooks#@md!k
first realm's third spellbooks#@mc!k
second realm's fourth spellbooks#@mh!k
second realm's third spellbooks#@mg!k

# unidentified equipment
unidentified dice boosted weapons
unidentified more than 25 dice weapons
unidentified weapons
unidentified armors
~unidentified missiles

# lower rank of your spellbooks
collecting spellbooks
~first realm's second spellbooks#@mb!k
~first realm's first spellbooks#@ma!k
~second realm's second spellbooks#@mf!k
~second realm's first spellbooks#@me!k

# other spellbooks

?:[GEQ $LEVEL 30]
(!unreadable first spellbooks
(!unreadable second spellbooks
(!unreadable third spellbooks:arcane
(!unreadable fourth spellbooks:arcane
?:1

# pick up for experience
?:[IOR [EQU $CLASS Warrior] [EQU $CLASS Berserker] [AND [EQU $CLASS Paladin] [EQU $REALM1 Life]]]
(~unreadable third spellbooks:arcane
(~unreadable fourth spellbooks:arcane
unreadable fourth spellbooks
unreadable third spellbooks
?:1
?:[AND [EQU $CLASS Paladin] [EQU $REALM1 Death]]
unreadable fourth spellbooks:life
unreadable third spellbooks:life
?:1

# pick up for money
?:[LEQ $LEVEL 29]
(~unreadable third spellbooks:arcane
(~unreadable fourth spellbooks:arcane
unreadable fourth spellbooks
unreadable third spellbooks
?:1

