Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old April 16, 2010, 02:10   #1
miyazaki
Adept
 
miyazaki's Avatar
 
Join Date: Jan 2009
Location: BC, Canada
Age: 44
Posts: 227
miyazaki is on a distinguished road
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.
miyazaki is offline   Reply With Quote
Old April 16, 2010, 03:16   #2
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
Quote:
Originally Posted by miyazaki View Post
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?
PowerDiver is offline   Reply With Quote
Old April 16, 2010, 06:48   #3
miyazaki
Adept
 
miyazaki's Avatar
 
Join Date: Jan 2009
Location: BC, Canada
Age: 44
Posts: 227
miyazaki is on a distinguished road
Quote:
Originally Posted by PowerDiver View Post
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.
miyazaki is offline   Reply With Quote
Old April 16, 2010, 08:49   #4
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
Quote:
Originally Posted by miyazaki View Post
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.
PowerDiver is offline   Reply With Quote
Old April 16, 2010, 19:32   #5
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
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?
PowerDiver is offline   Reply With Quote
Old April 16, 2010, 20:11   #6
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 40
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by PowerDiver View Post
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
d_m is offline   Reply With Quote
Old April 16, 2010, 20:16   #7
miyazaki
Adept
 
miyazaki's Avatar
 
Join Date: Jan 2009
Location: BC, Canada
Age: 44
Posts: 227
miyazaki is on a distinguished road
Quote:
Originally Posted by PowerDiver View Post
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.
miyazaki is offline   Reply With Quote
Old April 16, 2010, 21:28   #8
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,712
PowerDiver is on a distinguished road
Quote:
Originally Posted by d_m View Post
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.
PowerDiver is offline   Reply With Quote
Old April 16, 2010, 22:21   #9
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 40
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by PowerDiver View Post
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
d_m is offline   Reply With Quote
Old April 16, 2010, 22:25   #10
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by miyazaki View Post
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*).
Magnate is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Randart vs. standard dhegler Vanilla 18 February 15, 2010 22:06
3.1.1 Randart Lvl 50 Dunandain Rogue - Help! Hariolor AAR 0 November 29, 2009 05:45
Worst Randart Ever... miyazaki AAR 39 July 14, 2009 18:00
Trying to trace a randart bug (or two, in fact) Magnate Vanilla 3 May 7, 2009 22:10
New randart code in trunk Magnate Vanilla 1 February 8, 2009 15:17


All times are GMT +1. The time now is 14:10.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.