View Single Post
Old May 19, 2007, 01:22   #5
andrewdoull
Unangband maintainer
 
andrewdoull's Avatar
 
Join Date: Apr 2007
Location: Sydney, Australia
Age: 45
Posts: 872
andrewdoull is on a distinguished road
Quote:
Originally Posted by pav View Post
I spent last two evenings writing myself an equipment optimizing script. It goes basically like this:

- read up the character dump, parse powers from the item descriptions
- create all possible permutation of items worn, in backpack and in your home
- using user supplied scoring rules, score all permutations
- display the highest scoring permutation

It's written to understand NPP dumps, because that's the variant I happen to play lately, but this thread should be relevant to Vanilla too, as NPP is not that different to V when it comes to item features.

I need your help with scoring rules. Basically, how many points to award to various slays, brands and resists. I ignore weapon dice for now. I also decided to skip artifact activations, as there's many and I generally don't use them anyway.

At the moment I'm at this (there are some resists and slays missing, as I haven't encountered them yet in my current game):

Code:
    $scoring = array(
        "stats" => array("STR" => 10, "INT" => 5, "WIS" => 5, "DEX" => 3, "CON" => 5, "CHR" => 1),
        "slays" => array("orcs" => 10, "trolls" => 10, "evil" => 25, "undead" => 15, "animals" => 5, "giants" => 10, "dragons" => 20, "demons" => 15),
        "brands" => array("acid" => 40, "poison" => 50, "frost" => 35, "fire" => 30),
        "resists" => array("fire" => 25, "cold" => 25, "acid" => 30, "lightning" => 20, "disenchantment" => 20, "free action" => 100, "see invisible" => 50,
            "fear" => 10, "blindness" => 40, "poison" => 80, "confusion" => 42, "light" => 10, "dark" => 10, "nether" => 40, "nexus" => 35, "hold life" => 25,
            "shards" => 25),
        "sustains" => array("STR" => 2, "INT" => 1, "WIS" => 1, "DEX" => 1, "CON" => 2, "CHR" => 0),
        "blessed" => 1,
        "blows" => 10,
        "shooting power" => 15,
        "glowing" => 0,
        "damage" => 2,
        "speed" => 10,
        "telepathy" => 80,
        "tohit" => 1,
        "stealth" => 1,
        "searching" => 1,
        "slow digestion" => 2,
        "feather falling" => 3,
        );
I will need several profiles for different classes to score stats differently.

Now questions:

- which elemental brand is most worthwile?
I can add code to Angband relatively easily to compute the effectiveness of each slay in isolation. In Unangband, it generates the following table (note the actual values will be completely different for Angband or NPPAngband):

Spoiler File -- Relative Slay Power (0.6.2)

Note: 1000 power equals no benefit

Slay Power
------------------------------------- -----
Slay Nature 1922
Brand Holy 2251
Slay Undead 1288
Slay Demon 1107
Slay Orc 1076
Slay Troll 1043
Slay Giant 1108
Slay Dragon 1286
Execute Dragon 1572
Execute Demon 1215
Execute Undead 1576
Brand Poison 1725
Brand Acid 2284
Brand Elec 2170
Brand Fire 2481
Brand Cold 1825
Brand Lite 1327
Brand Dark 2535
Slay Man 1179
Slay Elf 1303
Slay Dwarf 1028

This is going to be used for the new artifact code and will just be a side effect of this code (but a useful one for game balancing purposes). So you'll be able to get a more concrete values when that goes in.

In the meantime you could patch the existing Chris Carr/Robertson randart.c into a version of Angband it was designed for in order to get the same table produced. You'll need to enable logging in the randart.c file.

Quote:
- is speed really everything? I happen to be speed junkie. I'm awarding 10 score points per point of speed right now, which makes +10 speed match rbase.

- essential resists should be scored high (rbase, FA), because kit without them should be disqualified. What about the high resists like shards and nexus? Hard for me to decide on scoring for them.

- should I beef up damage? My +16 damage ring scores 32 now, which equals +6 in stats or +3 speed...

So, what would you change on these scoring rules?
I would also recommend having a look at the Angband borg code, which basically implements the same thing.

Note the borg, not being a human player, undoubtedly uses different weightings, but it'll be a good guide.

Andrew
__________________
The Roflwtfzomgbbq Quylthulg summons L33t Paladins -more-
In UnAngband, the level dives you.
ASCII Dreams: http://roguelikedeveloper.blogspot.com
Unangband: http://unangband.blogspot.com
andrewdoull is offline   Reply With Quote