Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001459 [DCSS] Bug Report minor always 2010-05-01 12:49 2010-09-10 16:54
Reporter Nexos View Status public  
Assigned To rob
Priority normal Resolution suspended  
Status closed   Product Branch 0.6 ancient branch
Summary 0001459: Ring of poison resistance never autoIDs
Description Right now, the ring of poison resistance never autoIDs.
An unIDed ring of rPois (call it "foo") should autoID when you wear/wield/put no unIDed armour/weapon/jewellry (except maybe another "foo" ring), and those don't already give rPois,

and one of the following cases happen:
- you quaff an (IDed) potion of (strong) poison
- you eat a poisonous chunk and don't get poisoned
- you get hit by a needle (poison or curare) from a trap/blowgun
- you get bitten by a snake (? not sure about this one, since they don't always poison &)
- you get stung/poison bolted/mephitic clouded
- (maybe others?)

Nexos on ##crawl
Additional Information
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0004523)
Nexos (reporter)
2010-05-01 12:51

Maybe an artefact providing rPois could also be (partially) autoIDed
(0004525)
OG17 (reporter)
2010-05-01 23:33

Same for all resistances - shouldn't they autoID on wearing, like armor?

Relatedly, enhancer staves should autoID when casting aligned or opposed spells, like enhancer rings.
(0004553)
dpeg (administrator)
2010-05-02 21:05

There is so much logic needed to achieve this. I feel it's better to leave this to players.
(0004572)
Nexos (reporter)
2010-05-03 01:54

Better? You probably mean easier not to do in terms of code complexity?

The hardest part would probably to check if a currently used item already provides rPois (the same "check code" could be used for rElec/rCold/rFire [although probably not for artefacts, since they might give multiple levels of resistance]).

Anyway, rPois is probably the "easiest" to implement (aside from rLife which should just be checked when hit by a draining weapon).

Would rPois be that hard to implement? I don't know the code, but a check when you "would be poisoned" must presumably exist, no?

Besides, there are already some autoIDed items, like amulet of gourmand for instance, so implementing this would make sense IMHO.
(0004581)
OG17 (reporter)
2010-05-03 08:02

To clarify, a runed leather armor identifies as an armor of poison resistance on equip ("You feel healthy"). Why should resistances in jewelry form be any different? The only "logic" needed for this would be having consistent identification behavior for effectively identical brands - there's no need to consider these specific cases at all.
(0004586)
jpeg (manager)
2010-05-03 12:24

Sorry, but the armour/jewellery comparison doesn't really hold seeing how armour and jewellery simply work differently. After all, wearing randart armour autoIDs all properties, but equipping randart jewellery doesn't. This difference is a deliberate design decision because we want identification to matter.

The problem is not so much figuring out situations in which you'd be poisoned, but checking that there's really only a single possible source of the resistance. For example, if you're wearing two unidentified rings, would you autoinscribe both with "might be PR"? What about wielding an unknown magic staff? I agree with dpeg that the logic can quickly get rather complex.

For enhancer staves (which had a similar problem), we eventually decided to autoID them at a certain skill threshold. I don't remember if enhancer rings autoID or not. Gourmand autoIDs (or at least is supposed to, I don't remember if we ever got around to coding it) because identifying it is a simple matter of attempting to eat chunks while not hungry, thus only annoying on the interface. Resistances can't really compare with that.

If we get a patch (situationally dependent resistance id), we'll probably include it, but I doubt any developers will take the time to code stuff like this.
(0004588)
KiloByte (manager)
2010-05-03 13:31

All of resistance querying functions take an argument "calc_unid" which controls whether to give the actual info or only what is known by the player.

Thus, the entire logic we would need is: identify if and only if res_pois(true) && !res_pois(false) && only one item granting rPoia.
(0004598)
Nobody (reporter)
2010-05-03 21:44

The code for enhancer auto-ID could probably be reused for this. Automatic identification upon casting an enhanced or opposed spell, unless you're using multiple unknown items that could be enhancers (e.g., an unidentified element-enhancing ring and any other unidentified ring/staff).
(0004605)
dpeg (administrator)
2010-05-03 23:20

The reason that I am so skeptical is that there'll be corner cases left out, leading to silly little bugs (and reports) for years to come... and effort possibly better spent elsewhere.

Some examples:
* there are some poison effects stronger than rPois
* Vampires have fuzzy innate rPois
* if you wear unidentified randart jewellery, any of them could give rPois (this one shows that kilobyte's approach is a bit too simplistic)
* being hit/bitten by something poisonous is an unreliable test
* if a player is willing to do a reliable test (e.g. eat a kobold), she'll also be able to inscribe that ring

All of this could be solved, no doubt. I just don't think it's worth the (coding) effort.
(0004610)
OG17 (reporter)
2010-05-03 23:51
edited on: 2010-05-13 01:46

I think it's tremendously undesirable to have the player manually inscribe items that are 100% certain to be a given effect - the game should always ID in that case, especially since inscriptions don't extend to other copies of that item type.

(0004721)
Cryptic (developer)
2010-05-12 17:35
edited on: 2010-05-12 17:39

It definitely used to identify, but I don't know how long ago that was.

Sorry for the status change, I didn't realize this had a discussion going on for it.

(0005106)
rob (developer)
2010-05-28 11:05

How about going the other way?

Don't give jewellery fixed appearance. Once you've identified (with scroll) a ring of poison resistance, you'll be able to recognize all others, but having determined that one ring is poison resistance without scroll doesn't help with others.

As a side note, I'd like armour and weapon artefacts to not reveal their properties on use.
(0005107)
rob (developer)
2010-05-28 11:06

Re Cryptic: "It definitely used to identify" -- do you have some proof for this?
(0005108)
Nexos (reporter)
2010-05-28 11:14

@rob: "Don't give jewelry fixed appearance"

So, in that case, non-artefact jewelry would never be identified and you'd have to waste all your scrolls to ID, say, the 5th ring of hunger you found on the floor.

Furthermore, acquiring jewelry would hardly ever give good rings...
(0005109)
rob (developer)
2010-05-28 11:57

Nexos: please read again.
(0005115)
Nexos (reporter)
2010-05-28 13:10

OK. Misread. My bad.
(0005116)
dpeg (administrator)
2010-05-28 14:00

rob: I don't like it either that weapons and armours give away their properties.

But I am not sure about one-off identification: you'd come across many, many rings which you've already seen but wouldn't know.
(0005117)
rob (developer)
2010-05-28 14:09

dpeg: No: As soon as you know a ring type, you'd recognize all of them. The identify scroll would do more for you than identifying the function of one ring: It would also give you the required knowledge to identify all other rings of that type.
(0005120)
dpeg (administrator)
2010-05-28 14:35

rob: I see, sorry for being dense. That makes sense.
(0008318)
rob (developer)
2010-09-09 19:14

I've moved some of these ideas to the wiki: https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:item:identification [^]

- Issue History
Date Modified Username Field Change
2010-05-01 12:49 Nexos New Issue
2010-05-01 12:49 Nexos Issue Monitored: Nexos
2010-05-01 12:51 Nexos Note Added: 0004523
2010-05-01 23:33 OG17 Note Added: 0004525
2010-05-02 00:53 simon Note Added: 0004527
2010-05-02 00:58 simon Note Edited: 0004527
2010-05-02 00:58 simon Note Deleted: 0004527
2010-05-02 21:05 dpeg Note Added: 0004553
2010-05-03 01:54 Nexos Note Added: 0004572
2010-05-03 08:02 OG17 Note Added: 0004581
2010-05-03 12:24 jpeg Note Added: 0004586
2010-05-03 13:31 KiloByte Note Added: 0004588
2010-05-03 21:44 Nobody Note Added: 0004598
2010-05-03 23:20 dpeg Note Added: 0004605
2010-05-03 23:51 OG17 Note Added: 0004610
2010-05-12 17:35 Cryptic Note Added: 0004721
2010-05-12 17:35 Cryptic Status new => confirmed
2010-05-12 17:39 Cryptic Note Edited: 0004721
2010-05-13 01:46 OG17 Note Edited: 0004610
2010-05-28 11:05 rob Note Added: 0005106
2010-05-28 11:06 rob Note Added: 0005107
2010-05-28 11:14 Nexos Note Added: 0005108
2010-05-28 11:57 rob Note Added: 0005109
2010-05-28 13:10 Nexos Note Added: 0005115
2010-05-28 14:00 dpeg Note Added: 0005116
2010-05-28 14:09 rob Note Added: 0005117
2010-05-28 14:35 dpeg Note Added: 0005120
2010-09-09 19:14 rob Note Added: 0008318
2010-09-09 19:14 rob Status confirmed => resolved
2010-09-09 19:14 rob Fixed in Branch => 0.8 development branch
2010-09-09 19:14 rob Resolution open => suspended
2010-09-09 19:14 rob Assigned To => rob
2010-09-10 16:54 Nexos Status resolved => closed


Mantis 1.1.8[^]
Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker