How random panlords are generated

In case you ever wondered how random panlords get their wacky stats and spell lists generated, here is a complete explanation.

First, decide if the panlord is a “spellcaster” (75% chance). This affects a bunch of things later.

Next, set maximum Hp to 100 + 3d50.

Now roll “total defense”: it’s 10 + random2avg(40, 3), so mean of ~30 with a strong bias toward that value. Defense is distributed between AC and EV in a deliberately lopsided way. Crawl calculates a “split” by rolling random2(4) twice and taking the lower value, then adding 1. One of AC or EV is set to total defense * split / 10, randomly rounded, and the other is set to total defense minus that value.

Next, give the panlords some resistances. All panlords see invisible and get standard demon resistances. rF and rC each choose a value between -1 and 3, but it’s not uniform. The chance for each level is 10% (-1), 30% (0), 30% (1), 20% (2), and 10% (3) respectively. For relec the chance is 30% for 0, 60% for 1, and 10% for immunity.

Melee damage is then set to 20 + 2d20.

The panlord gets flight 2/3 of the time.

Hit dice are set to 10 + 2d10.

Now the spellcaster roll finally comes into play. If the panlord is not a spellcaster, multiply HP by 3/2, increase AC, EV, and HD by 5, and increase damage by 10.

1/3rd of the time, or if the panlord is not a spellcaster, they get an attack flavor. With high weight (40), this is antimagic, distortion, chaos, or trample. With medium weight (20), it’s flaming, freezing, elec, vamp, pain, ensnare, drain speed, corrode, or weak. With low weight (10) it’s venom, draining, or drowning. With very low weight (4) it’s drain strength or drain int, and with lowest weight (2) it’s drain dex. Total weight is 380, so 40 weight is about 10.5%.

Hostile non-spellcaster panlords then get a 1/7 chance for a cloud ring. The element is based on the panlord’s melee brand if it has a relevant one (elec, flaming, chaos, freezing, corrode, draining), otherwise it’s chosen randomly. Thunder, flame, and cold are 20 weight, draining is 10 weight, chaos, acid, miasma, and mutation are 5 weight.

If the panlord isn’t a spellcaster its speed is set to 11 + 2d4, otherwise it has a 1/3 chance to be speed 10, otherwise it’s speed 8 + 2d5.

Now we set up spells. For spellcasters, 90% of the time, add a random conjuration from the conjuration list (appended below). Then, 90% of the time, do the following: 50% of the time, add a summon. 50% of the time this will be either summon demon or summon greater demon, otherwise it will be a random summon from the summon list (appended below) along with a 50% chance for blink allies encircle. If a summon wasn’t added, add a random spell from the aoe conjurations list (appended below) and roll a 1/7 chance for a cloud ring. Then, 50% of the time add a random spell from the self enchant spell list (appended below). Then, 50% of the time add a random spell from the miscellaneous list (appended below).
If the monster is a non-spellcaster, they still get a 1/3 chance for exactly one of blinkbolt, blink close, or harpoon shot. Total spell frequency (out of 200) is hd + 50, divided across the total number of spells, for spellcasters. Non-spellcasters have 1/3rd as much total frequency for their single spell.

Conclusion: pandemonium lords are one of the monster of all time.

Conjuration list:

SPELL_CALL_DOWN_DAMNATION,
SPELL_LEHUDIBS_CRYSTAL_SPEAR,
SPELL_CORROSIVE_BOLT,
SPELL_QUICKSILVER_BOLT,
SPELL_IOOD,
SPELL_ENERGY_BOLT,
SPELL_MINDBURST,
SPELL_BOLT_OF_FIRE,
SPELL_BOLT_OF_COLD,
SPELL_IRON_SHOT,
SPELL_POISON_ARROW,
SPELL_BOLT_OF_DRAINING,
SPELL_LIGHTNING_BOLT,

AOE conjuration list:

SPELL_SYMBOL_OF_TORMENT,
SPELL_FIRE_STORM,
SPELL_GLACIATE,
SPELL_CHAIN_LIGHTNING,
SPELL_FREEZING_CLOUD,
SPELL_POISONOUS_CLOUD,
SPELL_METAL_SPLINTERS,
SPELL_ENERGY_BOLT,
SPELL_ORB_OF_ELECTRICITY,
SPELL_CONJURE_BALL_LIGHTNING,

Self enchant list:

SPELL_HASTE,
SPELL_SILENCE,
SPELL_INVISIBILITY,
SPELL_BLINK,
SPELL_BLINK_RANGE,

Summoning list

SPELL_HAUNT,
SPELL_MALIGN_GATEWAY,
SPELL_SUMMON_DRAGON,
SPELL_SUMMON_HORRIBLE_THINGS,
SPELL_SUMMON_EYEBALLS,
SPELL_SUMMON_VERMIN,

Miscellaneous spell list:

SPELL_DISPEL_UNDEAD_RANGE,
SPELL_PARALYSE,
SPELL_SLEEP,
SPELL_MASS_CONFUSION,
SPELL_DRAIN_MAGIC,
SPELL_PETRIFY,
SPELL_POLYMORPH,
SPELL_FORCE_LANCE,
SPELL_SLOW,
SPELL_SENTINEL_MARK,
SPELL_DIMENSION_ANCHOR,

9 Thanks