Throw vs Fire

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • eastwind
    Apprentice
    • Dec 2019
    • 79

    Throw vs Fire

    I'm using the original command set.

    I found a throwable weapon and was practicing with it. I noticed that when I do 'f' command it prompts "Fire which ammunition?" and puts up my quiver contents as the list to choose from. All well and good.

    But the 'v' command isn't working as I expected. The Rephial.org doc says:

    Throw an item ('v')
    You may throw any object carried by your character. Depending on the weight, it may travel across the room or drop down beside you. Only one object from a pile will be thrown at a time. Note that throwing an object will often cause it to break, so be careful! If you throw something at a creature, your chances of hitting it are determined by your plusses to hit, your ability at throwing, and the object's plusses to hit. Once the creature is hit, the object may or may not do any damage to it. Note that flasks of oil will do some fire damage to a monster on impact. If you are wielding a missile launcher compatible with the object you are throwing, then you automatically use the launcher to fire the missile with much higher range, accuracy, and damage, than you would get by just throwing the missile. Throw, like fire, requires a direction. Targeting mode (see the next command) can be invoked with '*' at the 'Direction?' prompt. This command takes some energy.
    So from that I'd expect 'v' to put up a list of my inventory, not my quiver. Ideally the items it makes sense to throw, but perhaps just the whole inventory, since you can throw anything whether it makes senses or not (throw an orc a slice of meat?) But rather than show inventory, the 'v' command also puts up the quiver, albeit with a different prompt "Throw which item?" and the prompt has an option, '/', to list the inventory - an option missing with the 'f' command.

    So these commands aren't just aliases, but the 'v' doesn't seem to be particularly well tailored to what it seems to exist for, throwing weapons or flasks of oil and such.

    I tried inscribing my throwing weapon with @v0, but when I type v0 it throws or fires my ammunition which is inscribed with @f0. That was also unexpected. Since the implementation of these commands isn't treating them as aliases, it seems the macro processor should be able to distinguish also.
  • Nick
    Vanilla maintainer
    • Apr 2007
    • 9351

    #2
    You would get an inventory prompt for the fire command if there was any ammo in the inventory; that only happens when the quiver fills up, though.

    The inscription thing is certainly a bug, and throw should probably start on the inventory - unless we bring in the feature that some variants have where throwing weapons can go in the quiver.
    One for the Dark Lord on his dark throne
    In the Land of Mordor where the Shadows lie.

    Comment

    • Werbaer
      Adept
      • Aug 2014
      • 182

      #3
      Originally posted by eastwind
      So these commands aren't just aliases, but the 'v' doesn't seem to be particularly well tailored to what it seems to exist for, throwing weapons or flasks of oil and such.
      Early in the game, it's can also be effective to throw ammunition by hand. Example: You have an unenchanted sling and pebbles (or no lauchner), but find some excellent arrow or bolts.

      (i also use throwing sometimes to throw some staffs into a save corner when large fire breathers approach)

      Comment

      • luneya
        Swordsman
        • Aug 2015
        • 279

        #4
        Originally posted by Werbaer
        Early in the game, it's can also be effective to throw ammunition by hand. Example: You have an unenchanted sling and pebbles (or no lauchner), but find some excellent arrow or bolts.

        (i also use throwing sometimes to throw some staffs into a save corner when large fire breathers approach)
        Yes, but it's far more common to throw weapons or flasks of oil rather than ammo. The throw prompt should default to throwing from inventory and allow you to page over to throw from quiver if needed, rather than working the other way around as it does now.

        Comment

        • Ingwe Ingweron
          Veteran
          • Jan 2009
          • 2110

          #5
          Originally posted by luneya
          Yes, but it's far more common to throw weapons or flasks of oil rather than ammo. The throw prompt should default to throwing from inventory and allow you to page over to throw from quiver if needed, rather than working the other way around as it does now.
          I disagree with your assertion about the relative regularity of throwing weapons or oil versus ammo. In the early game, I almost always throw ammo until a suitable launcher has been found, and after that I often will throw unid ammo if not compatible with my launcher, in order to hopefully identify the unknown rune. I also throw inventory to get it out of the way of likely destruction when meeting certain monsters. It is oil and weapons that I very uncommonly throw.
          “We're more of the love, blood, and rhetoric school. Well, we can do you blood and love without the rhetoric, and we can do you blood and rhetoric without the love, and we can do you all three concurrent or consecutive. But we can't give you love and rhetoric without the blood. Blood is compulsory. They're all blood, you see.”
          ― Tom Stoppard, Rosencrantz and Guildenstern are Dead

          Comment

          • Pete Mack
            Prophet
            • Apr 2007
            • 6697

            #6
            I usually throw flasks of oil--save a stack of 12 for a good target like Bullroarer. They do more damage than thrown ammo. (Really the only ammo you should be able to throw is sling. No way can you throw bolts or arrows.)

            Comment

            • Derakon
              Prophet
              • Dec 2009
              • 8820

              #7
              Originally posted by Pete Mack
              (Really the only ammo you should be able to throw is sling. No way can you throw bolts or arrows.)
              Ehh, it's a fantasy game. If we let people throw swords, we should let them throw arrows. Nobody says it has to be effective, but given that there's no multiplier on the throw, that's already taken care of.

              Comment

              • eastwind
                Apprentice
                • Dec 2019
                • 79

                #8
                Well, what use really is it to have the 'f' command refuse to do anything if you don't have a launcher?

                Why not just eliminate that check and have 'v' default to inventory and 'f' default to quiver, whether you have a launcher or not. If you have a launcher, 'f' or 'v' should use it if you pick something from the quiver, and if you don't have a launcher, or don't pick something from the quiver, they should both throw what you select. Even if it's a spell book.

                I think both 'f' and 'v' should have options to switch lists. I.e. 'v' and 'f' are completely the same, except for which list they offer up first.

                Now if you want to argue that there should be only one command in the first place, then I'll hear you out, but if we're going to have two commands, why not make them work symmetrically as above?

                Comment

                • eastwind
                  Apprentice
                  • Dec 2019
                  • 79

                  #9
                  I debugged into this to see what was going on with the inscription part of it.

                  do_cmd_throw() in player-attack.c is not setting player->upkeep->command_wrk, so it is zero when textui_get_item() in ui-object.c is called, and is still zero at line 1310 of ui-object.c where the choice is made of which list to display. The code is slightly weird at that point (because each of those cases is setting something that it has just determined is already set and thus doing nothing).

                  Code:
                  	if (allow_inven || allow_equip || allow_quiver || allow_floor) {
                  		/* Start where requested if possible */
                  		if ((player->upkeep->command_wrk == USE_EQUIP) && allow_equip)
                  			player->upkeep->command_wrk = USE_EQUIP;
                  		else if ((player->upkeep->command_wrk == USE_INVEN) && allow_inven)
                  			player->upkeep->command_wrk = USE_INVEN;
                  		else if ((player->upkeep->command_wrk == USE_QUIVER) && allow_quiver)
                  			player->upkeep->command_wrk = USE_QUIVER;
                  		else if ((player->upkeep->command_wrk == USE_FLOOR) && allow_floor)
                  			player->upkeep->command_wrk = USE_FLOOR;
                  
                  		/* If we are obviously using the quiver then start on quiver */
                  		else if (quiver_tags && allow_quiver)
                  			player->upkeep->command_wrk = USE_QUIVER;
                  The code falls into the final case and sets USE_QUIVER.

                  The quiver is special, in that it picks items with numbers rather than letters. The numbers 0-9 are menu choices, so v0 causes the first item in the quiver to be used, without consideration of inscriptions. This is forced by passing in QUIVER_TAGS in the mode bitfield.

                  I think the @f0 inscription only works because of a hack: when you inscribe something with @f0 it rearranges the quiver at that time to put that item in slot 0 - rather than the inscription causing the item to be picked at picking time.

                  I am testing changing two lines in do_cmd_throw(). One line sets player->upkeep->command_wrk to USE_INVEN so that 'v' defaults to presenting the inventory first, and the other is to remove the QUIVER_TAGS flag from the call to cmd_get_item() so that v0 is interpreted as an inscription reference.

                  Comment

                  • eastwind
                    Apprentice
                    • Dec 2019
                    • 79

                    #10
                    I pushed a fix for this a few days ago. I don't think there's a good way to make the @v inscriptions work while also continuing to have 'v' default to the quiver, because the quiver requires 0-n be used for the quiver slots, so the 0-n binds to quiver slots rather than anything inscribed.

                    So the fix makes the inventory the default for 'v', and you can use @v0 inscriptions and type 'v0' to throw that object out of the inventory. Of course you can still throw object 0 out of the quiver, you just have to type v|0 to switch v from the inventory to the quiver before selecting item 0.

                    Comment

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