Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   AAR (http://angband.oook.cz/forum/forumdisplay.php?f=2)
-   -   memorable randarts (http://angband.oook.cz/forum/showthread.php?t=3486)

Estie February 12, 2014 13:08

Quote:

Originally Posted by Timo Pietilš (Post 89719)
Do you mean before fractional blows? Or even earlier? It used to be that some of the five-blow classes did get only four out of them. IIRC Rogue and priests didn't get five with it (now priests get four anyways, so that's "fixed").

With fractional blows IIRC even warrior gets max blows with MoD. Unless that has been revised somewhat DEX affect to blow calcs doesn't stop in 18/150 like it used to be.

From memory, currently non-warriors get maxblows with MoD at 160 dex; warriors get 5,2 at 220 str/ 220 dex. Possibly 5,2 is reached at lower stats, but not much lower.

If MoD is too heavy for maxblows, imo it should give the same percentage of attacks at the same stat breaks for everyone (modulo rounding deviations of course).

5,2/6 =~ 87% =~ 4,3/5 ~= 3,5/4

If warriors get 5,2 with stats at cap, then paladins should get 4,3 and mages 3,5, and only at maxed str/dex.

klassik March 25, 2014 16:16

j) the Metal Cap of Rainwe [3,+16] <+3, +1>
Found lying on the floor at 900 feet (level 18).

+3 strength, intelligence.
Provides resistance to acid.
Cannot be harmed by acid, electricity, fire, cold.
Sustains wisdom.
Prevents paralysis.
Radius 1 light.

my first randart ever.

i thought that randarts were generated at dlvl30 below. this was found in the same kind of room you would see at dlvl1.:confused:

Derakon March 25, 2014 16:23

Quote:

Originally Posted by klassik (Post 90920)
i thought that randarts were generated at dlvl30 below. this was found in the same kind of room you would see at dlvl1.:confused:

The only hard-and-fast rule of item generation is that you can't get artifacts in the town. Well, okay, and that you can only get Morgoth's Crown and Hammer by killing him. Everything else -- if you get lucky enough, you can find it anywhere. You could theoretically enter the dungeon on level 1 and find the One Ring in the same room you entered on. It's probably a trillions-to-one against odds, but it could happen.

Timo Pietilš March 26, 2014 09:00

Quote:

Originally Posted by Derakon (Post 90921)
The only hard-and-fast rule of item generation is that you can't get artifacts in the town. Well, okay, and that you can only get Morgoth's Crown and Hammer by killing him. Everything else -- if you get lucky enough, you can find it anywhere. You could theoretically enter the dungeon on level 1 and find the One Ring in the same room you entered on. It's probably a trillions-to-one against odds, but it could happen.

Started to calc what that would be for The One and from code I found this:

Code:

/* Artifact "rarity roll" */
        if (randint1(100) > a_ptr->alloc_prob) continue;

The One has rarity of exactly 100. Doesn't that mean that it can't be created at all?

Anyway it looks like for the One at dlvl 1 it would be 1/495 * 1/198 * 1/100 = teeny weeny bit less than 1/million. And that's *after* game has already chosen to create The One if I understand that correctly.

From that code I learned that artifact have strict max depth. That means that several things stop being generated at very deep levels, some of them surprisingly early. Like Forasgil which max depth is 50 (2500').

Derakon March 26, 2014 14:03

Quote:

Originally Posted by Timo Pietilš (Post 90944)
Started to calc what that would be for The One and from code I found this:

Code:

/* Artifact "rarity roll" */
        if (randint1(100) > a_ptr->alloc_prob) continue;

The One has rarity of exactly 100. Doesn't that mean that it can't be created at all?

I'm pretty sure randint1 is an inclusive random number generator from 1 to the specified cap. It's like rolling a 1d(whatever); 1d100 in this case. In other words, the One Ring has exactly a 1% chance of passing that particular check.

Timo Pietilš March 26, 2014 16:33

Quote:

Originally Posted by Derakon (Post 90951)
I'm pretty sure randint1 is an inclusive random number generator from 1 to the specified cap. It's like rolling a 1d(whatever); 1d100 in this case. In other words, the One Ring has exactly a 1% chance of passing that particular check.

My point was that there is ">" not ">=" which would indicate that that roll should be greater than rarity to pass the check. Max from 1d100 roll is equal to The One rarity which would mean that it can't pass the check ever.

If that is something like 1-100 +1 (IE. 2-101)then it's 1/100 chance and anything with rarity 1 are guaranteed to pass (which actually makes sense, Grond has rarity 1). Don't know what that randint1 actually does.

Derakon March 26, 2014 17:55

Oh, good catch. That is strange.

PowerWyrm March 27, 2014 11:07

Seems correct to me: randint1(100) = 1d100, so if 1-100 > 1 (allocation for rarest items), which happens 99 times out of 100, the item is not generated.

Nick March 27, 2014 11:35

Quote:

Originally Posted by Timo Pietilš (Post 90944)
Started to calc what that would be for The One and from code I found this:

Code:

/* Artifact "rarity roll" */
        if (randint1(100) > a_ptr->alloc_prob) continue;

The One has rarity of exactly 100. Doesn't that mean that it can't be created at all?

The thing is (as PowerWyrm was indicating) it is if it doesn't pass this that the One has a chance of being generated. Its alloc_prob is 1, so if the randint1(100) roll is 1 (a 1 in 100 chance), it goes on to the next stage; in the other 99 out of 100, it has already failed.

Timo Pietilš March 27, 2014 14:00

Quote:

Originally Posted by PowerWyrm (Post 90976)
Seems correct to me: randint1(100) = 1d100, so if 1-100 > 1 (allocation for rarest items), which happens 99 times out of 100, the item is not generated.

That's other way around. Rarest items have highest rarity rating, most common have lowest. The One rarity rating is 100.

Or does that "continue" mean that it fails, which means I have understood this wrong way around?

[edit]... can't be like that. It clearly makes comparison to 1d100 > alloc_prob which will never be true. Unless alloc_prob is calculated somewhere else so that it reverses the value of artifact.txt.

[edit edit]

Code:

/* Enforce maximum depth (strictly) */
        if (a_ptr->alloc_max < p_ptr->depth) continue;

That clearly makes same kind of comparison for item level and allows continue only if alloc_max is less than depth.

[edit, edit, edit] This makes less and less sense to me. God, I need coffee.

if item max depth is 50 and depth is 51 continue (meaning stop creation). Makes sense.

if 1d100 is greater than artifact rarity 100 continue (never, so create always). Doesn't make sense.

You are right, it should be small number, not high. But in artifact.txt that's other way around.


All times are GMT +1. The time now is 23:21.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.