Opened 10 years ago

Closed 10 years ago

#1366 closed bug (fixed (in master))

wand of dragon breath not learned with use

Reported by: eddiegrove Owned by: myshkin
Milestone: 3.3.0 Keywords: id


I aimed an unaware wand of dragon breath down a corridor toward a bend, in a level lit with !enlightenment. The wand remained unaware, even though its effect should have been obvious to the char. Awareness was learned later when aimed at a monster.

Change History (9)

comment:1 Changed 10 years ago by magnate

  • Milestone changed from Triage to 3.3.0
  • Status changed from new to confirmed

Confirmed not consistent with other attack wands in current staging.

comment:2 Changed 10 years ago by myshkin

  • Owner set to myshkin
  • Status changed from confirmed to assigned

comment:3 Changed 10 years ago by myshkin

  • Status changed from assigned to pending

Fixed in myshkin/staging.

comment:4 Changed 10 years ago by magnate

  • Keywords id added; projection removed

Now in official/staging as 2de13ac

comment:5 Changed 10 years ago by eddiegrove

The fix works, of course, but there's still an underlying bug. The real problem was that the projection routines returned false for whether the wand's "breath" down the lit corridor was visible. I couldn't track it down easily. Maybe it's not worth the effort.

comment:6 Changed 10 years ago by myshkin

There isn't actually any code for deriving ID from explosions in project(), only from effects on terrain, monsters, objects, or the player. Furthermore, the wand of dragon breath doesn't do anything that affects terrain, and so there was no learning with use. Should we be noticing that something creates a fire ball even if it doesn't hit anything? I would say yes, but am open to other interpretations.

comment:7 Changed 10 years ago by eddiegrove

My opinion is also yes, which is why I reported this with keyword "projection". An alternative is simply to change the definition of the return value in the comments to describe what the code actually calculates.

comment:8 Changed 10 years ago by magnate

I agree that obvious effects should be learned even if they have no effect on terrain, objects, monsters or the player. I suggest that obviousness should be a property of the GF_ type, since while some are obvious in the absence of any effects (base elements, shards, sound) others aren't (disenchantment, inertia, probably chaos).

Then there's also the fact that some effects are not GF_ types (fear, sleep et al.), so the obviousness of these would need to be stored elsewhere. In effects.c I guess.

comment:9 Changed 10 years ago by magnate

  • Resolution set to fixed
  • Status changed from pending to closed

In master as of [r7dda40c].

Note: See TracTickets for help on using tickets.