Randart bug in V3.1.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • miyazaki
    Adept
    • Jan 2009
    • 227

    Randart bug in V3.1.2

    I found an amulet that branded my melee attacks with *slay demon* but it didn't work properly. In the "I"dentify screen, my weapon of Gondolin had two average damages listed for demons. And when I attacked a hezrou the poison brand was applied. My file dump ishere. I also have the savefile still.
  • PowerDiver
    Prophet
    • Mar 2008
    • 2820

    #2
    Originally posted by miyazaki
    I found an amulet that branded my melee attacks with *slay demon* but it didn't work properly. In the "I"dentify screen, my weapon of Gondolin had two average damages listed for demons. And when I attacked a hezrou the poison brand was applied. My file dump ishere. I also have the savefile still.
    That dump says r1903. I think there was a bug with the wrong message being printed that has been fixed, perhaps since then. The message might get fixed if you upgrade.

    As to both slay demon and *slay demon being in the description, I think that is correct behavior. The understanding is that damage is the maximum among those listed. Also, the *only* place you are informed the weapon has the slay_demon flag is inferentially from the description, so I think it would be an error to remove it. Perhaps we should put "would do" in front of the slay_demon, but do we really want the description to get any longer?

    Comment

    • miyazaki
      Adept
      • Jan 2009
      • 227

      #3
      Originally posted by PowerDiver
      That dump says r1903. I think there was a bug with the wrong message being printed that has been fixed, perhaps since then. The message might get fixed if you upgrade.

      As to both slay demon and *slay demon being in the description, I think that is correct behavior. The understanding is that damage is the maximum among those listed. Also, the *only* place you are informed the weapon has the slay_demon flag is inferentially from the description, so I think it would be an error to remove it. Perhaps we should put "would do" in front of the slay_demon, but do we really want the description to get any longer?
      Downloaded the latest nightly and it is still not working properly. The message when I hit a demon is smite, or poison, or some other brand, except if I use a weapon with no other brands/slays. You think the message is wrong but the damage is right?

      I think it would make more sense to only have one average damage for each monster type. It would actually shorten the description.

      Comment

      • PowerDiver
        Prophet
        • Mar 2008
        • 2820

        #4
        Originally posted by miyazaki
        Downloaded the latest nightly and it is still not working properly. The message when I hit a demon is smite, or poison, or some other brand, except if I use a weapon with no other brands/slays. You think the message is wrong but the damage is right?

        I think it would make more sense to only have one average damage for each monster type. It would actually shorten the description.
        It is possible the message problem was discussed but never fixed, or not fixed properly. I couldn't find the change on trac, but I wasn't really sure what to look for.
        Code:
                                        for (i = INVEN_LEFT; i < INVEN_TOTAL; i++)
                                        {
                                                other_brand_mult[i] = get_brand_mult(
                                                        &inventory[i], m_ptr,
                                                        &hit_verb, FALSE);
        
                                                if (other_brand_mult[i] > use_mult)
                                                        use_mult = other_brand_mult[i];
                                        }
        
                                        weapon_brand_mult = get_brand_mult(o_ptr,
                                                        m_ptr, &hit_verb, FALSE);
        
                                        if (weapon_brand_mult > use_mult)
                                                use_mult = weapon_brand_mult;
        It appears that use_mult is being updated properly, but hit_verb is being overwritten, so you get the wrong message but presumably the right multiplier. Whoever fixes this should also change that inscrutable FALSE to some const, preferably an enum, with a readable name such as IS_NOT_RANGED or IS_MELEE.

        You can't remove the regular slay from the description without being misleading. Perhaps the off-weapon attacks should be in a separate paragraph, or the "would do" I mentioned earlier, or who knows what, but somehow when you inspect the weapon you *must* be able to see that it has slay_demon even when you are wearing the randart with kill_demon.

        Comment

        • PowerDiver
          Prophet
          • Mar 2008
          • 2820

          #5
          I've cleaned up the code so that it should be impossible for the verb to disagree with the multiplier. It may take a while to test and incorporate into head, but hopefully not too long.

          This verb stuff reminds me that I would prefer to have (smite(x2), smite(x3), smite(x5)) for the verbs for (slay evil, slay demon, kill demon) rather than (smite, smite, fiercely smite) as it is now. Anyone with me on this?

          Comment

          • d_m
            Angband Devteam member
            • Aug 2008
            • 1517

            #6
            Originally posted by PowerDiver
            This verb stuff reminds me that I would prefer to have (smite(x2), smite(x3), smite(x5)) for the verbs for (slay evil, slay demon, kill demon) rather than (smite, smite, fiercely smite) as it is now. Anyone with me on this?
            I would meet you halfway, something like:

            slay(x2) evil
            slay(x3) demon
            smite(x5) demon OR *slay*(x5) demon

            In other words, I like making the multiplier visible but I don't like conflating slay and *slay*.
            linux->xterm->screen->pmacs

            Comment

            • miyazaki
              Adept
              • Jan 2009
              • 227

              #7
              Originally posted by PowerDiver
              You can't remove the regular slay from the description without being misleading. Perhaps the off-weapon attacks should be in a separate paragraph, or the "would do" I mentioned earlier, or who knows what, but somehow when you inspect the weapon you *must* be able to see that it has slay_demon even when you are wearing the randart with kill_demon.
              I like the idea of a separate paragraph. Something like this:

              Code:
              a) a Cutlass of Gondolin (1d8) (+10,+9)
                   Slays demons, orcs, trolls, dragons.
                   Provides resistance to dark.
                   Cannot be harmed by acid, fire.
                   Prevents paralysis.  Grants telepathy.  Grants the ability to see
                   invisible things.  
                   
                   Combat info:
                   4 blows/round.
                   Average damage/hit: 41.7 vs. demons, 41.7 vs. orcs, 41.7 vs.
                   trolls, 41.7 vs. dragons, and 31.9 vs. others.
              
                   This weapon benefits from one or more off-weapon brands or slays.
                   Average damage/hit: 51.5 vs. demons
              
                   Radius 1 light.

              Comment

              • PowerDiver
                Prophet
                • Mar 2008
                • 2820

                #8
                Originally posted by d_m
                I would meet you halfway, something like:

                slay(x2) evil
                slay(x3) demon
                smite(x5) demon OR *slay*(x5) demon

                In other words, I like making the multiplier visible but I don't like conflating slay and *slay*.
                Fine by me. But in that case, why not use 3 separate verbs? I don't like putting '*'s in names, so I'd hope for something other than *slay*.

                If there are different levels for fire branding, as in some variants, I think we might agree on burn(x2) vs burn(x3) vs burn(x5) which is why I just suggested the single verb smite in my example. Also, a single verb would allow for adding multipliers, e.g. with 3 separate +(x1) fire brand flags you do x4 damage with message burn(x4). I am not recommending this, but I see no point to precluding it.

                Comment

                • d_m
                  Angband Devteam member
                  • Aug 2008
                  • 1517

                  #9
                  Originally posted by PowerDiver
                  If there are different levels for fire branding, as in some variants, I think we might agree on burn(x2) vs burn(x3) vs burn(x5) which is why I just suggested the single verb smite in my example. Also, a single verb would allow for adding multipliers, e.g. with 3 separate +(x1) fire brand flags you do x4 damage with message burn(x4). I am not recommending this, but I see no point to precluding it.
                  I think if we are going to do additive brands/slays then this makes a ton of sense. If not, I like the idea of a x2 verb, a x3 verb and a x5 verb for slays.
                  linux->xterm->screen->pmacs

                  Comment

                  • Magnate
                    Angband Devteam member
                    • May 2007
                    • 5110

                    #10
                    Originally posted by miyazaki
                    I like the idea of a separate paragraph. Something like this:

                    Code:
                    a) a Cutlass of Gondolin (1d8) (+10,+9)
                         Slays demons, orcs, trolls, dragons.
                         Provides resistance to dark.
                         Cannot be harmed by acid, fire.
                         Prevents paralysis.  Grants telepathy.  Grants the ability to see
                         invisible things.  
                         
                         Combat info:
                         4 blows/round.
                         Average damage/hit: 41.7 vs. demons, 41.7 vs. orcs, 41.7 vs.
                         trolls, 41.7 vs. dragons, and 31.9 vs. others.
                    
                         This weapon benefits from one or more off-weapon brands or slays.
                         Average damage/hit: 51.5 vs. demons
                    
                         Radius 1 light.
                    That works for me. I guess the code needs to be intelligent enough not to print the "This weapon benefits" line if the off-weapon slay is inferior to one on the weapon (e.g. randart with slay demon, weapon has *slay*).
                    "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                    Comment

                    • PowerDiver
                      Prophet
                      • Mar 2008
                      • 2820

                      #11
                      Originally posted by d_m
                      I think if we are going to do additive brands/slays then this makes a ton of sense. If not, I like the idea of a x2 verb, a x3 verb and a x5 verb for slays.
                      If we go with 3 separate verbs, would the redundant (x2) etc be desirable? Also, currently missiles "pierce". Should they use the same 3 verbs?

                      A couple possibilities: smack(x2), slay(x3), smite(x5) or slay(x2), smite(x3), blast(x5)

                      Comment

                      • Sirridan
                        Knight
                        • May 2009
                        • 560

                        #12
                        Originally posted by PowerDiver
                        If we go with 3 separate verbs, would the redundant (x2) etc be desirable? Also, currently missiles "pierce". Should they use the same 3 verbs?

                        A couple possibilities: smack(x2), slay(x3), smite(x5) or slay(x2), smite(x3), blast(x5)
                        Personally, I don't like using 'slay' as a verb, as it implies killing the monster outright.

                        Perhaps smack(x2), strike(x3), smite(x5)?

                        Comment

                        • Derakon
                          Prophet
                          • Dec 2009
                          • 9022

                          #13
                          Strikes powerfully at, blasts, and smites.

                          I don't like "smack" since it sounds a little cartoony.

                          Comment

                          • miyazaki
                            Adept
                            • Jan 2009
                            • 227

                            #14
                            Originally posted by Some Online Thesaurus
                            Main Entry: hit
                            Part of Speech: verb
                            Definition: strike
                            Synonyms:
                            KO, bang, bash, bat, batter, beat, belt, blast, blitz, box*, brain*, buffet, bump,
                            clap, clip, clobber, clout, club, crack, cudgel, cuff, dab, ding, flail, flax, flog,
                            give a black eye, hammer*, hook, jab, kick, knock, knock around, knock out,
                            lace, lambaste, larrup, lather, let fly, let have it, lob, nail, pellet, pelt, percuss,
                            pop, pound, punch, rap, ride roughshod, slap, smack, sock, stone, swat, tap,
                            thrash, thump, thwack, trash, uppercut, wallop, whack, whang, zing
                            I vote for "ding", "thwack" and "whang".

                            Comment

                            • ekolis
                              Knight
                              • Apr 2007
                              • 921

                              #15
                              I want a Long Bow of Twang Frenchman! Or maybe a Pistol of Whack Mobster... Or even a Scalpel of Spay Animal! :P

                              Seriously, how about "strike", "smite", and "slay"? Slay of course being the most powerful... it is kinda disappointing that a "slay" weapon is not a 1-hit kill though

                              edit: whoops, must have not read Sirridan's post fully, I'm being a bit redundant I suppose! :P
                              You read the scroll labeled NOBIMUS UPSCOTI...
                              You are surrounded by a stasis field!
                              The tengu tries to teleport, but fails!

                              Comment

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