Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Affixes #94

wants to merge 89 commits into from


None yet
4 participants
Copy link

commented Oct 13, 2011

A complete replacement for magical and ego-item generation, which also closes a number of other tickets. Please see for details.

magnate added some commits Oct 3, 2011

Convert ego_item.txt to new affix format. Note that this commit begins a
series of commits which result in an unplayable game until the series ends.
Parse new ego format and adjust refs to old ego struct. Note that thi…
…s breaks

global ego allocation - it will need to be replaced by on-the-fly allocation.
Unify artifact creation to a single function. Note that this tests each
artifact in numerical order, and needs an alloc table for proper randomness.
Use an allocation table for artifact generation. TODO: initialise it …
…once at

the start of the game, and then restrict it on use.
Recalibrate artifact rarities to adjust for not choosing the base ite…
…m first.

Also lengthen the scale to 500 rather than 50.
Ensure that artifacts with alloc_prob 0 aren't put in the alloc table…
… (i.e.

Grond & Morgoth). Also ensure that base items without max depths are not
ruled out (i.e. INSTA_ARTs).
Create ego allocation table on the fly in ego_find_random(). Remove g…

alloc_ego_size and alloc_ego_table. At this point the game is playable again,
with the same egos as before, but needs rebalancing via stats.
Extract table_pick() from ego_find_random() and make_artifact(). Coul…
…d be

adjusted for use also by get_obj_num(), if init_obj_alloc were to use the
alloc_entry struct.
Initial introduction of EyAngband item prefixes (#587). Removed modified
base items (lead-filled mace, mithril chain/plate, adamantite plate). Added
x2 slays for demons (iron) and undead (silver). Needs balancing when affix
implementation is complete.
Set all affix minima to NO_MINIMUM in the absence of an M: line. N.B.…
… This

really needs to use a pointer to a variably-sized array.
Remove multi-faceted affixes from ego_item.txt. This is the first commit
in a series which will change the "ego" concept into affixes which
affect only one or two attributes of an object. The traditional high-end
ego items will be re-created using ego_themes.txt. This series will also
make changes to o_ptr and result in a new version of {rd|wr}_item() for
savefiles. It will also require significant changes to ID-by-use.
Use create_pval_mask() function to check all pval-related flags, in c…
…ase we

can't rely on the OFT_ types in future.
Change kind->charges to kind->extent. Add ART_ALLOC_MAX for multiple A:
lines in artifact.txt. Add prefix, suffix and affix[MAX_AFFIXES] to
object_type. Savefiles will be broken until o_ptr->ego is removed.
Replace most uses of DEFAULT_PVAL with o_ptr->extent: food, oil, char…
…ges, gold

and chests. Remaining uses are in load.c (can go for 3.4), randart.c (will go
in the rewrite) and one in wizard.c (see #1290). Fixes #1540: all uses of pval
are now flag-related.

magnate and others added some commits Oct 14, 2011

Change player class bonuses to sum to 0 (ignoring CHA) for hybrid cla…
…sses. Slightly less than zero for full casters, and slightly more than zero for warriors.
Improve the generation algorithm to deal with 20 points better. Namel…
…y by making casters favor spell stat/Dex, warriors Dex/Con and hybrids Dex/(spell_stat,con)
Fix supercharging for blows and shots, and allow RES_STUN on randarts.
(Cherry-picked from 76c2b55 - thanks PowerWyrm.)


Fix object knowledge menu with randarts enabled.
Remove unused INSTA_ART kinds from the kind array after randart generation
  is complete.

Signed-off-by: Peter Denison <>
Get rid of special kinds for jewelry in object.txt, and dynamically c…
…reate them

as necessary

Signed-off-by: Peter Denison <>
Move artifact kind fixup to main initialisation from randart code so …
…it can

eventually do more than just removing unused kinds

Signed-off-by: Peter Denison <>

This comment has been minimized.

Copy link
Member Author

commented Oct 17, 2011

Closing as per email to the devteam. This branch isn't suitable for merging into what people think of as "Vanilla Angband", and never will be. It may see the light of day as a different product, or it may not.

@magnate magnate closed this Oct 17, 2011

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.