[Announce] PosChengband 6.0.0 Released

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • debo
    replied
    I think non-unique quests always had a chance of giving you a unique? It was more like "only uniques" and "sometimes uniques" as options rather than all-or-none?

    Leave a comment:


  • nikheizen
    replied
    Originally posted by t4nk
    your question really puzzled me; "-pie" can definitely be used with ld You probably meant "-r" and "-pie"...
    I checked poschengband's makefile, here's a quick fix (replace src/Makefile with this):
    This works! Thanks so much.

    And yes, I meant -r and -pie, I intended to correct my original post, but forgot.

    Leave a comment:


  • GenericPseudonym
    replied
    Originally posted by MITZE
    I haven't played one of them myself, but isn't that the niche the 'Sniper' class was designed to fill?
    Sort of but not really.

    The Sniper's deal is spending multiple turns using "concentration" to power up before letting out one super-powered shot. Their ultimate attack isn't even usable until you've spent 7 turns standing still concentrating.

    To make the best use of your powers, you don't want to just stand still and keep shooting your enemy like an Archer would. You want to somehow break LOS and get time to concentrate, wait for the guy to walk into view, snipe him, then repeat.

    Of course in the midgame if you find a nice crossbow of extra shots you may end up just fighting things like a discount archer anyways because it's a lot less work.

    Leave a comment:


  • MITZE
    replied
    Originally posted by clouded
    Edit: By the way, now that ranged has criticals there is design space for a low shots high crits archer class similar to a mauler.
    I haven't played one of them myself, but isn't that the niche the 'Sniper' class was designed to fill?

    Leave a comment:


  • t4nk
    replied
    Originally posted by nikheizen
    "pie and ld may not be used together"
    your question really puzzled me; "-pie" can definitely be used with ld You probably meant "-r" and "-pie"...
    I checked poschengband's makefile, here's a quick fix (replace src/Makefile with this):
    Code:
    MKPATH=../mk/
    include $(MKPATH)buildsys.mk
    
    # import source list
    include Makefile.src
    INCLUDE = $(HDRS)
    OBJECTS = $(ANGFILES) $(CFILES) $(ZFILES)
    SRCS    = ${OBJECTS:.o=.c} ${MAINFILES:.o=.c}
    PROG    = $(PROGNAME)$(PROG_SUFFIX)
    # VERSION := $(shell ../scripts/version.sh)
    ifneq (${VERSION},)
    	CFLAGS += -DBUILD_ID=${VERSION}
    endif
    
    CFLAGS += -I. -std=c99 -O2 -Wdeclaration-after-statement -fno-omit-frame-pointer
    
    CLEAN = poschengband.o $(OBJECTS) win/poschengband.res
    DISTCLEAN = autoconf.h
    
    export CFLAGS LDFLAGS LIBS
    
    $(PROG): $(OBJECTS) $(MAINFILES)
    	$(CC) -o $@ $(OBJECTS) $(MAINFILES) $(LDFLAGS) $(LDADD) $(LIBS)
    	@printf "%10s %-20s\n" LINK $@
    
    $(PROGNAME).res: $(PROGNAME).rc
    	$(RC) $< -O coff -o $@
    
    splint:
    	splint -f .splintrc ${OBJECTS:.o=.c} main.c main-gcu.c
    Hopefully it works. I don't have gcc 6 installed at home, but tested it with gcc 4.9 (hacked PIE manually into buildsys.mk's LDFLAGS and CFLAGS as ./configure seems to ignore CFLAGS...)
    Code:
    $ file ./poschengband
    ./poschengband: ELF 64-bit LSB shared object (stuff...)

    Leave a comment:


  • nikheizen
    replied
    Originally posted by chris
    I'll look into this ... There is a --no-pie flag that needs to be set.
    configure LDFLAGS="--no-pie" --with-no-install ...
    Or some such? I'll research when I get the time, but it might be a few weeks before I am back online.
    The result was as follows:

    [SPOILER]
    Code:
    n@lat:~/git/pcb$ ./autogen.sh && ./configure LDFLAGS="--no-pie" --with-no-install --disable-x11 && make clean && make
    *info* running aclocal (-I m4)
    *info* running autoheader
    *info* running autoconf
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for tput... /usr/bin/tput
    configure: touching .deps files
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... configure: error: in `/home/n/git/pcb':
    configure: error: cannot run C compiled programs.
    If you meant to cross compile, use `--host'.
    See `config.log' for more details
    n@lat:~/git/pcb$
    [/SPOILER]

    I don't know much at all about build configuration so I have no idea how to solve this on my own. I hope you find the time to manage as I'd really love to play the new versions natively.

    Also please please please re-add ironman_quests! It was my favourite non-standard birth option aside from randarts.

    Leave a comment:


  • Antoine
    replied
    Originally posted by clouded
    No? I don't understand how that could be the case, plasma and holy bolt at max concentration did max 2 stars against sleeping wyrms for me. I won before I reached level 50 for the final ability. These sniper interface changes seem quite nice so I'll try another one, I like the class in concept. I've said my bit on ranged so I'll leave that. Thanks for all of your work chris, poschengband is still my favourite game of course.
    Could it be there is some sniper exploit you're not aware of??

    A.

    Leave a comment:


  • HugoVirtuoso
    replied
    Originally posted by chris
    I'll look at these when I get a chance (not sure why you are complaining, though!). There are 2 types of ambushes: scripted and un-scripted. The former are designed in v_info.txt and usually spawn with the player surrounded by *lots* of monsters. Are these guys asleep? I've never seen that happen. Anyway, you can teleport away from the scripted ambush ... other monsters have a 1 in 3 chance of being asleep and you can escape those.

    For unscripted ambushes, monsters should not be asleep. But, if you induce a "wilderness scroll", then the 1 in 3 chance of sleeping applies to any new monsters that spawn.

    Usually, it is possible to escape ambushes by teleporting until the '<' key works. I don't like this ...
    In my experience, NEARBY sleeping monsters had been an intermittent occurrence with "un-scripted" ambushes. I think I've seen NEARBY sleeping monsters with "scripted" ambushes too. I don't remember right now. I have to re-check my freestyle XSplit / OBS PosChengband recordings to find more evidence of the latter.

    Why am I "complaining"?...It's because it's "cheating!"

    Leave a comment:


  • AnonymousHero
    replied
    Originally posted by chris
    I'll look into this ... There is a --no-pie flag that needs to be set.
    configure LDFLAGS="--no-pie" --with-no-install ...
    Or some such? I'll research when I get the time, but it might be a few weeks before I am back online.
    I find that usually it's easier to just not use "ld" and use the compiler to link. Both major compilers (Clang, Gcc) support linking directly. Just use "$CC -o poscheng game.o bla.o foo.o ...".

    (The reason is that the compilers are much smarter about which libraries need linking in, which flags are compatible, etc. This also usually makes it much easier to use ASAN, UBSAN, etc.)

    Leave a comment:


  • clouded
    replied
    Originally posted by chris
    I mean, you did notice yourself one-shotting monsters with 3000+ hitpoints, right?
    No? I don't understand how that could be the case, plasma and holy bolt at max concentration did max 2 stars against sleeping wyrms for me. I won before I reached level 50 for the final ability. These sniper interface changes seem quite nice so I'll try another one, I like the class in concept. I've said my bit on ranged so I'll leave that. Thanks for all of your work chris, poschengband is still my favourite game of course.

    Edit: By the way, now that ranged has criticals there is design space for a low shots high crits archer class similar to a mauler.
    Last edited by clouded; April 19, 2017, 16:00.

    Leave a comment:


  • chris
    replied
    Originally posted by nikheizen
    Hey Chris. Compiling with gcc seems to be broken.

    "pie and ld may not be used together"

    I think because the latest gcc (6) uses pie automatically, so you may need to disable it explicitly in the build process.

    Pleasee help, I really want to play the new versions wihtout downgrading gcc if possible!
    I'll look into this ... There is a --no-pie flag that needs to be set.
    configure LDFLAGS="--no-pie" --with-no-install ...
    Or some such? I'll research when I get the time, but it might be a few weeks before I am back online.
    Last edited by chris; April 18, 2017, 15:53.

    Leave a comment:


  • chris
    replied
    Yet another release (6.0.5) at sites.google.com/site/poschengband

    This time, there was a SIGSEGV bug report ... ouch!

    Main Changes:
    [1] New option for old pack behavior: use_pack_slots. Should be on by default.

    [2] Sniper rewrite for better UI. Browse spells to display damage/accuracy. Bookless casters can browse using the uppercase menu choice just like Skillmasters. That only leaves book based casters with the lame UI.

    [3] Miscellaneous sniper game play changes:
    [3.1] Monster vulnerabilities (Fire and Cold) are now a factor. The first player to one-shot one of the big giants (Loki, Ymir, Surtur) will get a special prize!
    [3.2] Sniper powers enhance rather than supplant corresponding ego flags. For example, Burning Shot on flame branded ammo is even more deadly.
    [3.3] Alas, snipers are a bit too OP for the Serpent, so I had to make stunning more meaningful. They still should be the easiest class to win with (once you get to the Serpent, of course).

    [4] Lots of work on inventory messaging. With use_pack_slots, you should see the correct slot in your messages (unlike the old pre 6.0 code, which usually told you the slot just before re-sorting your pack).

    [5] 'g' is now normal get. '^G' is auto-get. Now you can decide which to use. If you always want auto-get and find '^G' annoyingly hard to type, add a keymap from g->^G. Then, when you want the conservative get, type '\g'.

    [6] Quivers no longer automatically accept everything: only ammo that can combine with an existing pile or that is inscribed with '=g' is automatically added. Of course, you still need to wear a quiver, and the ammo must also match your shooter.

    Here is a git shortlog of all the commits. I'm trying to write more meaningful commit messages, so you may want to read the full commit info on github.

    poschengband (51):
    Bump version to 6.0.5
    x11: restore blending of monster/object with terrain features
    oook: quest reward lost when pack is full
    oook: fix wilderness travel lag
    oook request: give alternatives to page_up/down in home/shops/inventory
    oook report: no running in wild_mode (introduced in b11b419a)
    oook report: SIGSEGV in wilderness shop encounter
    oook report: possession history incorrectly displays quests
    oook report: selling un-identified excellent ammo gives full price (sometimes)
    use_pack_slots: new option for old pack behavior
    oook request: bring back disturb on autoget obj
    Downgrade Dragons' Lair Guardian
    Sniper: Recode for more informative UI
    Inventory: Displaying Slots
    Inventory: Display Slots (cont)
    Inventory: Display Slots (cont)
    Sniper: Playtesting (UI)
    Snipers: Adjust Damage Distribution
    UI Messages: Playtesting
    Auto-Get: Separate Commands for Normal and Auto-Get
    Quiver no longer 'likes' unidentified ammo
    Fix double screenshot for killing The Serpent of Chaos
    UI Messages: Playtesting
    Playtesting
    Improve UI for Getting Object Piles
    Home: Fix double get message
    Messages: Combining objects (piles) loses OM_DELAYED_MSG
    Devices: Display Fail Rates inside Inscriptions
    Travel: Improve Route Selection
    Devices: Tighten up random distributions
    Sniper: Apply Ammo Boost Before Vulnerability Check
    oook report: funky activation messages
    Wilderness: Force Viewport Center on Generate
    Devices: Blandify Fail Rate Inscriptions
    Devices: Give Message after Usage
    Snipers: Endurance Ammo Endures Evilness and Holyness
    Snipers: OP vs Serpent
    display_percentages in status bars rather than [****---]
    oook bug: shapeshifting and the quiver
    oook report: un-necessary pack overflow when wielding
    oook request: display object list from do_cmd_look
    Object List in do_cmd_look: Handle case when monster is on a pile of objects
    Egos: Increase pvals ... especially on early CON boosters
    Golems: Change Test Hit Mechanics
    Stats: Show Ammo Usage
    gcc -O2 found something clang missed
    Stats: Show Equipment Usage
    Archers: More Crits. Smooth Critical Multipliers
    Archery: A new bolt, the deadliest of them all!
    Quivers: Don't prompt for quanity if just 1
    Quiver is more discriminating in its affections

    Leave a comment:


  • chris
    replied
    Some responses that I composed off-line (so may be out of date).

    MITZE: Is there a way to force a quest reward to be {average}?
    No. At the moment quest rewards are forced at least good since this is what is wanted in every case I can think of. Having to say OBJ(..., DEPTH+1) in each of the cases I wanted this default was getting tiresome, so I made objects default to {good}. If you can convince me why {average} would be useful , I'll take the time to add syntax for it (e.g. OBJ(..., AVERAGE) or some such). I've been scrambling on other fixes recently though ...

    HugoTheGreat2011: 1) You cannot sell any wielded equipment at the stores or drop any wielded ones at your home!
    Yes, but you can takeoff then sell/drop without leaving the store. I'll get around to this eventually ...
    monsters awake in wilderness ambushes ...
    I'll look at these when I get a chance (not sure why you are complaining, though!). There are 2 types of ambushes: scripted and un-scripted. The former are designed in v_info.txt and usually spawn with the player surrounded by *lots* of monsters. Are these guys asleep? I've never seen that happen. Anyway, you can teleport away from the scripted ambush ... other monsters have a 1 in 3 chance of being asleep and you can escape those.

    For unscripted ambushes, monsters should not be asleep. But, if you induce a "wilderness scroll", then the 1 in 3 chance of sleeping applies to any new monsters that spawn.

    Usually, it is possible to escape ambushes by teleporting until the '<' key works. I don't like this ...

    TheQuest: Add "move to location" to pets menu so to command pets/summons to move to certain location to scout area, for example
    To work properly, pets would need more intelligent pathfinding. Adding this is non-trivial (though not too difficult). It would, however, require some rebalancing. At the moment, your pets can "seek prey", but they are stupid. To get them to fight monsters, you normally need to join the battle, leading your pets to the desired fight. This forces you to expose yourself. Of course, you can currently lead your pets then teleport to safety. Trump casters have Dimension Door and Swap Position which are better still.

    In short, this is a major change to the pet system, so I'm holding off for now.

    HugoTheGreat2011: Bug: Eric the Usurper and Old Man Willow can spawn outside of their respective town quests. If killed prior to their quests, they can still re-spawn in the quests as if nothing happened.
    Not a bug ... true since Zangband days. Putting uniques inside town quests always allows them to resurrect if they are already dead. We could change this, though, if desired, but the change would be to make them not spawn outside of their quest. I'm not sure I like forcing players to do certain town quests ... For the longest time, Eric's Stronghold was horribly, horribly broken.

    clouded: 3) Having multiple pages for your inventory is really clunky, since the second page will only ever have 4 or so items, seems like unnecessary interface burden.
    Just make your map area bigger. The UI supports 80x24 displays if you want, but playing that way (which I assume is by preference rather than necessity) will be less than optimal. The inventory UI is designed to support *any* number of inventory slots, rather than just what might happen to fit on 20+ year old hardware. Somebody might want to experiment with other pack limitations than a simple fixed number of slots, and I'd like this to be easily supported.

    clouded: What do guardians achieve though?.... I think they are actively bad for gameplay
    HugoTheGreat2011: I think Chris wanted to reduce the likelihood of becoming too powerful too early in the game. i.e. game balance in his terms.
    Not entirely.
    [1] Wilderness access to deep dungeons is one of Hengband's major exploits. I (and others) have *vast* amounts of experience with this. It is rather easy to learn to survive at, say, DL60 if you have modest stealth and good detection. Since the top levels regenerate each time you enter, you used to be able to stair-scum -- Up, Down, Up, Down -- until you find a suitably isolated, easily exploited enemy. Drops are boosted and XP is inordinate for the risk involved. Its a very major exploit, and very different from power diving in Angband (where stair climbing is not possible and you forfeit the quests and your fame). The Hengband developers were probably aware of this: d_info.txt has a min_player_level field ... but it is not enforced.

    [2] The guardians are weak for what they are guarding. Seriously, if you can't handle a DL46 monster guarding DL60, then you have no business being on DL60. Still, I'm willing to change the Dragon's Lair guardian to an AMHD which is more easily handled (!Speed, Resistance, Healing). Most of the other dungeons are less formidably guarded. What's wrong with hanging out in The Castle instead? Then you can dive down to DL64 if you like without forfeiting quests. It must not be the DL you are interested in after all, but those dragons.

    [3] Another popular "usage" of the wilderness access is for ?Acquirement. The player has no intention of actually exploring the dungeon, and is probably too scared to even try. But reading that scroll and then fleeing ... Well, sometimes this works out very well. (Yes, I know you can still read these on L50 wilderness tiles, I just haven't closed this loophole yet).

    [4] I agree with Hugo that guardians enrich the game. If you really wish to do the Dragon's Lair early, or read that pile of ?Acquirement, then you can sellout for the guardian, bringing lots of speed, healing and what not. Its more satisfying to accomplish this, and then you feel like you earned your access to the Dragon's Lair! Trying to Bull Rush The Warp Demon guarding R'lyeh produces a similar adrenaline rush.

    Pete Mack: Dungeon guardians do the opposite: they force you to become powerful too early in the game.
    I disagree. Anybody can kill an Anti-paladin and go as deep as they like in The Castle (DL40 to 65). Before that, you can do The Mountain (jubjub bird). Or what about The Graveyard (Master Lich) giving access to DL50 to 70. What guardians prevent are CL10 characters from being some place they have no reason being. After all, if you die that early, what do you lose? But if not, then you can skip large swathes of the game. Also, the deep access points (DL60+) tend to be well guarded to prevent ?Acquirement scumming which most players want to do in the early CL20s.

    OK, enough about guardians. You can easily remove them from your copy of the game by deleting the INITIAL_GUARDIAN_XXX flags in d_info.txt.

    Let's talk about Snipers and Archery:
    clouded: this came with a damage nerf for ranged puts a sour taste in the mouth. Not to mention the other interface losses for all the characters who don't even use ranged caused by the rewrites. Sorry to be so harsh but playing a sniper puts me in a bad mood.
    Sorry about interface issues ... getting the quiver to not be a gigantic hack required a very large re-write. Things will get fixed/improved.

    But the sniper? Their damage (except for Saint Stars Arrow) actually went up with the re-write. By almost 30%! This was not intentional, but your complaints on this class caused me to playtest one a bit. Some minor and not so minor changes are coming in the next release (see the post below). Mostly I just gave the class some UI love so that, for example, browsing the spells shows your damage and accuracy correctly. Also, I added an option for "display_percentages" rather than status bars for things like monster health. With Probing, you can know fairly accurately how much damage you are doing (Hint: average 2000+ even counting accuracy, which is 88% or more, btw).

    This is one class where you need to think a bit. For example, you should only need about 20 bolts to win the game, and let's just say The Serpent is a pushover if you only let him get 20 or so moves against you! I won't spoil it, but its pretty obvious, and something you should have worked out while playing. I mean, you did notice yourself one-shotting monsters with 3000+ hitpoints, right? It made me very sad to hear this class trashed since it is, in my opion, one of the best and most fun classes out there ... I'd rank it as Hengband's #2 contribution behind the Ninja (of course).

    As for the Archery changes: The Sniper doesn't need them! They don't need a quiver, or more interesting ego ammo. The damage nerfs were to shots per round only (or mainly), and The Sniper only ever got one. In short, this is the wrong class to use to assess the archery changes. I've playtested Skillmasters fairly deep and Archers only shallowly. Those, together with Rangers I guess, are what needs testing.

    clouded: To say it again: the solution I think is best is to make ammo infinite.
    I think this is a really bad idea. Rather than addressing game design problems, it puts an unrealistic and game diminishing band-aid solution. Never having played Tome or TomeNET, though, I can only guess at what you mean by the solution. The most charitable interpretation that I can imagine is that infinite ammo still allows for ammo diversity (ego, artifact, etc) but does not come in a pile. When you shoot, you still pick which ammo to use, but firing "infinite" ammo does not remove it from your pack. So you can keep shooting it.

    Other people have proposed "infinite ammo" to mean something different, usually completely removing the concept of ammo altogether so that bows become devices, and just shoot the same hard coded whatever every time. Obviously, I *hate* this idea.

    Here are my thoughts:
    [1] Archers in Hengband were boring, mostly because there was absolutely no re-play diversity to them. Every game was simply get "Longbow of Bard" from Old Castle and procure large piles of Seeker Arrows (+10, +10). Gameplay, while still strategic in other regards, was mostly just pressing the fire key.

    [2] Ammo creation produces dinky piles with highly variable magical enchantments, so it never stacks. If you convert 20 skeletons, you invariably end up with 10 or 15 disparate piles of ammo (only average ammo combines). Getting ego seeker arrows out of Create Ammo was a disappointment, since you could never get enough matches to overcome the pack slot limitations. So you either junked your egos, or read ?Mundanity on them. How awful!!

    [3] Adding a quiver makes Create Ammo useful, both in the dungeon and in town. Previously, you had to use this in town since your pack was always overflowing. Now once you find a quiver with some head room, you can convert skeletons on the fly, junking the cursed and average results. And when you get a pile of 4 ego bolts, you are actually happy since you can use them without penalty. I'm playing an Archer as we speak and am finding the gameplay so enjoyable, using Create Ammo continuously from the get go, and harvesting the best creations for immediate use. For example, I got a pile of 4 mithril bolts with Kill Animal that are delightul against pesky Wyverns (low CL20s). Slay orc ammo has been common, and used against Azog. I've gotten exploding ammo for the orc hordes, elemental ammo for miscellaneous uniques, and a steady stream of steel bolts for clearing the weak stuff. Gameplay has been fabulously interesting. Why would you want to junk this and return to boring play? I'm completely befuddled ...

    [4] The quiver is not fiddly. Use mneumonic inscriptions to manage things. @fo for your orc killers. @fp for your people (human) killers. Etc. I do @fa on multiple piles for my default fire key, and the game automatically spills over from one pile to the next as they are consumed (going from bottom to top which is generally from most powerful to weakest ... which is what I want).

    [5] Now, on to strategy. Archers only have a finite amount of ammo which requires thought to handle well. Do I enter that vault, or lure things out? If I take on that guy, will he breathe Chaos and destroy my precious seeker arrows? Maybe I should shoot a few shots, then duck around the corner and let him chase me a bit, just to be safe? And that big guy over there? He's gonna take alot of my ammo. I better wait before fighting him and clear the level a bit to make sure nobody interrupts us. For monsters like Gothmog and the Destroyer, you can shoot a bit then teleport them away to reclaim your ammo. (I once took down Gothmog with 6 mithril shots of returning. Being a Weaponsmith, I only had enough Kill Demon essences for that many shots, and the returning was just enough to get him on the last shot, the others having failed to return or destroyed. What a delightful experience! How would "infinite ammo" play in this case? Can a weaponsmith get infinite Kill Evil stuff?).

    [6] Infinite ammo removes many of these strategic situations. I hesitate to add it because I think it will make the game worse, not better, and because I think that the recent archery changes have immensely enriched the game. But that is my playstyle preference. I want a game that challenges me to think. I want the joy of finding awesome ammo, knowing that it won't last forever. I want the risk of overextending myself as an archer and facing difficult decisions regarding strategic retreats. If you lay out 70 seeker arrows then get a nasty summons, you may have to lose those arrows. With infinite ammo, there is no such risk. How lame! Just fire, fire, fire ... It doesn't sound like the game for me, and ultimately, I need to build a game that I enjoy. There are plenty of other variants out there, perhaps more to your style. Diversity is a good thing.

    Leave a comment:


  • wobbly
    replied
    Just a note that minor enchant on the poison needle still works

    Leave a comment:


  • Ironshod Al
    replied
    This has been mentioned before, but related to ammo. My problem is related to wands, staves and rods:

    If you apply the same inscription to multiple items, only the last item (of a type) is accessibly. This is a big problem with multiple wands, staves and rods combined with automatic inscription, as you can only use the charges from the last item. When the last item has no charges, the menu will still list the item and not give access to the other items in the menu.

    This character carries two staves of Detect Traps, but only one staff is usable. I have '(staves:detect traps#@ut' in the auto-pickup/squelch file.

    The menu in 6.0.x looks something like this:
    Code:
    Use which staff?
     ) a Staff: Detect Traps (6/6 charges) {@ut}
    t) a Staff of Resistance: Detect Traps (4/7 charges) {@ut}
    c) a Staff: Teleport (8/8 charges) {!u}
    3) a Staff: Identify (9/9 charges) {@u3}
    The first staff is unusable even when the second staff runs out of charges. Admittedly, I haven't tried using 'u ' to see if it fires the first staff, but that would still be a problem if two or more items showed up as ' )' in the menu.

    In 5.0.5 the menu would look like this:
    Code:
    Use which staff?
    n) a Staff: Detect Traps (6/6 charges) {@ut}
    o) a Staff of Resistance: Detect Traps (4/7 charges) {@ut}
    p) a Staff: Teleport (8/8 charges) {!u}
    q) a Staff: Identify (9/9 charges) {@u3}
    'ut' will fire the second staff (even when out of charges), but the first staff is still accessible using 'un'.

    One (simple?) solution could be to keep the original letter for items that end up with ' )'. Like this:

    Code:
    Use which staff?
    a) a Staff: Detect Traps (6/6 charges) {@ut}
    t) a Staff of Resistance: Detect Traps (4/7 charges) {@ut}
    c) a Staff: Teleport (8/8 charges) {!u}
    3) a Staff: Identify (9/9 charges) {@u3}

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎