memorable randarts

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Estie
    replied
    Nooooo dont you lock my favourite thread. I love what Magnate has done to the randarts and all, but regardless, swinging the thread-close hammer when the topic is unpleasant isnt fair! Dont go there!

    Of course I mostly hope to see awesome randarts posted here.

    Leave a comment:


  • krazyhades
    replied
    "Night of the living thread"

    Leave a comment:


  • Magnate
    replied
    Originally posted by Timo Pietilä
    Which btw reminds me conversation with Magnate. I think this should go other way around, most common item should have lowest number and rarest arbitrary high number.

    Maybe something like

    Code:
        /* Artifact "rarity roll" */
            if (randint1(a_ptr->alloc_prob) != 1) continue;
    Would be better. Then you could make insanely rare "game breaking" artifacts. Now the whole range is 1-100 and that's it.
    It's 1-1000 in v4, which is a lot better, but you can't really have arbitrary rarity while you're limited by integers. Pyrel has infinite rarity gradations because alloc_prob can go down to .0000001 etc.

    I don't think I understand the need to have rare items have a high number though; alloc_proc seems equally if not more intuitive to me (number of occurrences on the number line).

    I also don't understand why people won't let this bloody thread die. Ho hum. Perhaps pav could lock it :-)

    Leave a comment:


  • Timo Pietilä
    replied
    Originally posted by Derakon
    I just checked, and here's the One Ring's entry in artifact.txt:
    ....
    Specifically, note the A: line. Rarity of 1. Meanwhile, Grond has a rarity of zero because it's never supposed to be generated "naturally", only by being forced into Morgoth's drop.
    Ah, too old, I used old info.

    Code:
    # 'W' is for extra information. Depth and rarity are not currently used,
    # weight is in tenth-pounds and cost is the item's value.
    Phew. I started to think that I don't understand angband code at all. Good to know that this is just having wrong initial assumption.

    Which btw reminds me conversation with Magnate. I think this should go other way around, most common item should have lowest number and rarest arbitrary high number.

    Maybe something like

    Code:
        /* Artifact "rarity roll" */
            if (randint1(a_ptr->alloc_prob) != 1) continue;
    Would be better. Then you could make insanely rare "game breaking" artifacts. Now the whole range is 1-100 and that's it.

    Leave a comment:


  • Derakon
    replied
    Originally posted by Timo Pietilä
    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?
    I just checked, and here's the One Ring's entry in artifact.txt:

    Code:
    N:13:'The One Ring'
    I:ring:55
    W:100:100:2:5000000
    A:1:100 to 127
    P:0:0d0:15:15:0
    # F: DRAIN_MANA | DRAIN_HP | 
    F:LIGHT_CURSE | HEAVY_CURSE | PERMA_CURSE
    F:AGGRAVATE | DRAIN_EXP | SEE_INVIS | REGEN | TELEPATHY
    F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID
    F:RES_FIRE | RES_COLD | RES_ELEC | RES_ACID | RES_DARK
    F:RES_DISEN | RES_POIS | RES_NETHR
    F:SUST_STR | SUST_DEX | SUST_CON |
    F:SUST_INT | SUST_WIS |
    F:INSTA_ART
    E:BIZARRE:200+9d50
    M:{name} glows intensely black...
    L:5:STR | INT | WIS | DEX | CON | SPEED
    Specifically, note the A: line. Rarity of 1. Meanwhile, Grond has a rarity of zero because it's never supposed to be generated "naturally", only by being forced into Morgoth's drop.

    Leave a comment:


  • Timo Pietilä
    replied
    Originally posted by PowerWyrm
    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.
    Last edited by Timo Pietilä; March 27, 2014, 16:28.

    Leave a comment:


  • Nick
    replied
    Originally posted by Timo Pietilä
    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.

    Leave a comment:


  • PowerWyrm
    replied
    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.

    Leave a comment:


  • Derakon
    replied
    Oh, good catch. That is strange.

    Leave a comment:


  • Timo Pietilä
    replied
    Originally posted by Derakon
    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.

    Leave a comment:


  • Derakon
    replied
    Originally posted by Timo Pietilä
    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.

    Leave a comment:


  • Timo Pietilä
    replied
    Originally posted by Derakon
    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').

    Leave a comment:


  • Derakon
    replied
    Originally posted by klassik
    i thought that randarts were generated at dlvl30 below. this was found in the same kind of room you would see at dlvl1.
    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.

    Leave a comment:


  • klassik
    replied
    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.

    Leave a comment:


  • Estie
    replied
    Originally posted by Timo Pietilä
    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.

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎