Opened 11 years ago

Closed 11 years ago

#984 closed change (fixed (in master))

Make artifacts (and egos?) use the alloc_prob system like base objects

Reported by: magnate Owned by: magnate
Milestone: 3.1.2 beta Keywords: items patch


This allows us to, for example, specify a max depth beyond which they don't appear. See

Attachments (1)

aptr-alloc.patch (7.2 KB) - added by magnate 11 years ago.
patch to move artifact generation to a_ptr->alloc_*

Download all attachments as: .zip

Change History (8)

comment:1 Changed 11 years ago by magnate

  • Owner set to magnate
  • Status changed from new to assigned

comment:2 Changed 11 years ago by The Wanderer

I don't like this idea. Part of my definition of a win, for Angband as for pretty much any other game, is a "full completion"; for Angband, that involves finding every single artifact as well as killing every single unique.

With the current setup, that can be done - post-Morgoth, if necessary - at any depth I find comfortable, and the earlier artifacts become more readily findable by virtue of the larger number (and, theoretically, higher quality) of drops associated with the later depths. With a "max depth" in place, doing it would require ascending back above that maximum depth, and the job itself would become both more tedious and less rewarding.

comment:3 Changed 11 years ago by magnate

Well, I think there is a consensus that the alloc_prob system is an improvement over the old depth/rarity system. If certain artifacts end up being limited to certain depths, you can always override that manually by editing artifact.txt to prevent your preferred win method becoming tedious.

comment:4 Changed 11 years ago by The Wanderer

From what discussion of it I remember seeing, I believe that I agree that alloc_prob is an improvement in general, yes. I even see how it could be an improvement in some respects for artifacts. I just don't like having a maximum depth for something unique (though thematically it would probably make more sense, in some ways, for something to not turn up any deeper than someone would be likely to carry it).

Changed 11 years ago by magnate

patch to move artifact generation to a_ptr->alloc_*

comment:5 Changed 11 years ago by magnate

  • Keywords patch added

Ok, here is a patch to implement this. It will break save files, and require rebasing of artifact rarities and editing of artifact.txt, so I won't commit until Takkaria has seen. It applies cleanly against [d1d956e] (SVN r1805) and compiles cleanly. I haven't touched randart.c - if Takkaria likes this patch I'll do randart.c as part of #1001 instead - but every other occurrence of a_ptr->rarity and a_ptr->depth is dealt with.

comment:6 Changed 11 years ago by magnate

Ok, there are only 9 artifacts that suffer a signifant change to their rarity in moving to this framework:

Angrist (80 to 50)
Aule (75 to 100)
Vilya (80 to 100)
Durin and Ulmo (90 to 100)
Feanor, Eonwe and Ringil (120 to 100)
Zarcuthra (180 to 100)

I don't think that's anything tragic, so I'm going to commit this without fanfare and see if anybody howls with rage. Artifacts are so rare that I don't think anyone will notice that Aule appears 3/4 as often, or Zarcuthra nearly twice as often.

comment:7 Changed 11 years ago by magnate

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

[487398b] (SVN r1807)

Note: See TracTickets for help on using tickets.