These are:
Tweaked make_book_theme_randart() to allow for one forced spell and owner's name. Used to occasionally give Roxanne a randart book containing Statue Form. (Was: always book of earth)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8207 c06c8d41-db1a-0410-9941-cceddc491573
2FHNLTLN3DVVD67N4QMAQ2LO7YY4GVZWXJAOIWGCCYYGIX7UHSVQC 6RQ5YXKQ2UQEDYE7C57IVGJH2DFVUZE2IB5UPYEWJL6LSNTYUUJAC NMQJRQVXOKOQADYBO5JJKVMNYOOIKVVHPMZ2ZO4ZC52U34P2EPBAC S5RANRFX6SRLISGDLFVHDWHWXZ4IIEMM23FMY4IHK5PZQBLRTTYAC P6JHIG4GFZEBV3XFKWZMZRUD6PJWQKNPG6CUNIWBYV3WHBY73ONQC DAB4UJ6EPV46LAI7QWYRELMJ4ZCFNNR3KVQFIVMULDV3VHYYFQLAC JWJGOMVBPZRSP2VSHLFFFDIF2CS6UPBA6AHL7DAJWGBCHAV3PJDQC 2OY3EXIBFR22QCCKPZOA37YUI7CX7BEKRRYSDSBDKQN6VTDBD7LAC 2I5XEYRJKLUS7MO42MCR6KT2URGFQ3YDKTNTIBNKVKLX5LMG6CEQC HM6NOS7BN5665KWIFGBXOHZIDMRSVCESN72GMGI6NVBFZGCF3L6QC CCDQMJMMVC6MIZRZ6JSKKCMEDPUGEVVSFPJUOC5WP63J6SX35MXAC Z2GW2JB2K2MS67IU7O566FX7PSJPZIFN52PWECBBSJMB4LS6HXUQC G7ZXJ4RUQB3U5NL2DEWXMTHRRDT7WTONWKTPOOGWFCE46ZWUVLOQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC QO5ZJWQ3JK3PEGBPTQSAYIPEJEHG2M2KTD74227G5VG7DVXUL3BQC FWNNTOEERPUKXPE4OC52UABFZLKIU3O5GRNNLDK4QI4HR2IOU36QC CEZMQA2KOTLG7IO5QBVAM2OALIZJ45CFLNLCG3OQA6IX6URDCCYAC 6F6OFJCUOBUP7QTVWSMSQPW25RLVRYVXO3VO5GLMFRY6K5RMOWFAC CCRQESB4ADT4WA7FGLNZZXAJ6G5QMCTYCZIWORBN45P6ZPILC34AC LUH6GAJODIQXNPBEHMSUTKH3KA3DYVRCKZ6GJJ4HHNHOIMMUEP6QC IXLNOTBJGHKESBCTME6QAR6XVWFNCHYGMS62V62ZJEA7VLQHXO2QC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC BUSA7O6EFBZVAG2RL5T7MD2WTWKOEKKIAAZ2VS4Y3L6ECT4HQR6QC TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC 4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC T4FNOPMWYYJHJBTTY33PB43HTJPKEC46L62YERTWIX73HYZSELXQC MIMW5CBZXQEGL6BFKK2LK322VRSBADFF7AXMC24F3OBCDUYKQTGQC 2DORUQ4B574MDOOMRYWGU5I72AKHMCSTZ6B3VSHQBUQOZYHRC7FAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC IIK2W5J4NQWD3BVXPJDUCTONSF2ENXPSZBWMZCBC25RCTNMKSK6AC IPQ63XIUPHFMCQOZZAVSGCJOZFDRDWZTUUJSAUMARNDUFLBEMYIAC 5DTIUKGTVV66QTZE2DFRBGGBCS57NVM4H6DRQRYEJNWJ2LYFRARQC RKFHYYANUZQHOWOE6YHVFFJNCZU7X67FWUQPQFF6KJKMNIKXFWEAC QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC Q6WLX2VTRJ3LGDPWBH5WKQM7CIIJ5H6AEIKMXPF2PJA5JX5ZLUZQC WQIEW3O4MANA2KKYRUWEZP44KHVJ4RRHEZTDXSF4EDELX66LO26QC KS4WBDOLZ45T5Q742JZQIRN3H7XZTYDPM4TCIAILIRO3OV7ANR2AC EJYK3CKIEMP4NMZUCMUYLHIBE7A3LPZOU7DUON5V7CPHY7QEKLEAC UAJN2CFA2QHYDHW2UFAVPPHDQFCD54RKM6V2UC4AMEDJUBBLNWIQC OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC 3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC 5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC WMHFDQKUDCUGM3R245LLVZ5NNEZSCXFDSTNMVS2O5EFUHHO7HU3AC OSGS3PH2L5CBTDVZCZS6OCFQNA4A7RMEXBYJQB7DDZBYYJW7QSSAC CG4TL4AKSN4J7CMATZFJ5N7PSDCQXLS3QYX7PZ3K67KMMBT675OQC 2QVYB344D5ACPD2ZTKAYJHC54AUETODV4EU5R7RFJ5S426XSBT5AC MHWSAWELF3VEV52PNGAI43GK7OGF5PTYATO4O7ERZ75O7RCRKQRQC C7RRWT4OPLL3MLBTFYI2Z4PJX2DMS2QHKDLTLQBGR3LD6UCO6XEAC YFACWAHJI6DAZDNCI7C4NSSPYFRAKORZTXUFX6PRM6JQ7GCQKHGAC 7Y3S4RV2RP433W4PD2MFJCZTR7OKP62KXYLEEHWUBXJLVX6EOMHQC QAUXI2U6XHSKZTLWIDBACYCHVFEKHFZSS3TMSADAJKH2TJGDYJRQC HQWYYWOSTVGQWEH5ONUYGT3ZZX73CBFZL4BW4USZK34L6KBAYRAQC JFDTUUUT6AKIGPBKGYFC7HZKGQUZOMG7EUWU4QYKSDVXXPQBBFHAC W4NSRSRRGLNYFSAHRXGXXZSQ4XCNFSDCPZOYJPDPIXYOXHUBWWPQC F6LX36GU6BWJFJLV2JNVM6PWTMQ35R33EOMQNGGQNQY67V2LJVIAC VX2D7IVDD7OFX55ZVY5NKPITC3XWNJX4WSEBBTYASMXKJY5E7VBAC FEQ5JZXDHM2SCZGWVJO76HQBYZRKRNR5DYXACUMQYOG3X3TIFO6QC LIGJ4EFGYMNHEEC2K3SMXTXULAB2U5LCRVTGTEYJLU74KKK6OIMAC AOAY6DBJDKJXJ3G4ROBIKYR4UUDKI5Y6TBP6N7DAONV75OEVOGUQC FUEEIUKGHHFPIRZCN3N753GONWAZTWQ2ZWR53IBJAAZ6FZUNGOMAC 56ICTLPN524NZO4F7QRN2G7R55L4XKC73XYYAHCUUU7GK3XIYDXQC DYBB7LISQQKT734KRIQZCO67OGDQWLZ2KSTDZUY4BZFCCOIDTUWAC 4VK7VHWRVRO66BRSGTBPSYJGGXLRF6AG6G74UDTPHTPXR7ZRNINQC UEOAUCQN2CGVHV2EYBZL3M4QKTINCOLY4INQ4Z4NNGMRWSIIPXQAC 4OSUVBYSWHTVNVQXDFLVJELPMVYV2CBWDYRQQSFTTFJZ57BPZM5QC K25HMGF5625EQYQENFEWILNFIBK5FAZYYURPJV6UPIPIRWW5FNXAC Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC TZ2SH2SPO5TFSFL2OCV5A32P2X4CRHEKEK7ENUFCBVF3RKUWAD4AC T7CUIVICB74342RA32BR37T36FOX4RBSQIB5PNOHTGTGUYGDKSTQC UZTLX4J6HKEAPFLUWL4WVUXZKSUONPOEJVLG5Q5MC4HEYBYERRIQC L4PKJZERR7WADKWHY3MR6J6OZFREVPL3CB43I6MLJ2BVKWCUTE7AC BGJ7P65JV2OFVXMGAJDHV5Y36TR7JOFDWJUZJBHUBD7SCQMDRBEAC 6L4EP4ZRWWYLT55PD5KTTJON5J2JB5VV5MWNHF5VPZQZ5BKEYZ4QC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC 45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC JNB3PBPBJHDUHH47ZICB25QENPTMLYK7CXC5BXRVWZ3J3ZZPKCUAC Y56C5OMUQ5XF2G6DKDV4R5MED44UOIUPTBBQVWQBUHYIXYA5MOZAC I7QLYOTE6DLQZM7YWUWYLKHRJRB2A3STQ42ALSRGQICEWKD2QTEQC S3NE6MVA6EPJE4HRAPF57NPASFIE4XUJ5MNF4IIL5R5CCZNFHJAQC Z6343ZVG2VOE7WOLBS7YLIWJ6XGCRCGJRJLP5WUVRTG7VOIXRRLAC BMHUBADDGIOZRVN4P3O5QKIDUYD4RFWBS7MP5X6LZWAYHUBRVD2QC 6TEISZD7HYSSL24EOKIBNURU66KGSQX7B7SNAHBP4DQSAOTGH2MQC G5WLU3B4MR3ZDJLGR6OHNIMLZXGQS2EWBJ5YYY5J2GWM6DTD44BAC YM3U5YZEFIYLRJVDWQCSP75JL56WC36XLQSL5ZBT4IWSXYJRBCBAC // Takes a book of any type, a spell discipline or two, the number of spells// (up to 8), the total spell levels of all spells, a spell that absolutely// has to be included, and the name of whomever the book should be named after.// With all that information the book is turned into a random artefact// containing random spells of the given disciplines (random if none set).// NOTE: This function calls make_item_randart() which recursively calls// make_book_theme_randart() again but without all those parameters,// so they have to be stored in the book attributes so as to not// forget them.
if (god != GOD_NO_GOD){name = '"';name += god_name(god, false) + "'s ";}
if (!owner.empty())name = owner;else if (god != GOD_NO_GOD)name = god_name(god, false);
// Give Roxanne a randart spellbook of the disciplines Transmigration/Earth// that includes Statue Form and is named after her.void make_book_Roxanne_special(item_def *book){int disc = coinflip() ? SPTYP_TRANSMIGRATION : SPTYP_EARTH;make_book_theme_randart(*book, disc, 0, 5, 19,SPELL_STATUE_FORM, "Roxanne");}
}},{ MST_GERYON,{SPELL_SUMMON_BEAST,SPELL_SUMMON_BEAST,SPELL_NO_SPELL,SPELL_SUMMON_BEAST,SPELL_NO_SPELL,SPELL_SUMMON_BEAST}},{ MST_DISPATER,{SPELL_SUMMON_GREATER_DEMON,SPELL_BOLT_OF_IRON,SPELL_SUMMON_DEMON,SPELL_LIGHTNING_BOLT,SPELL_HELLFIRE,SPELL_SUMMON_GREATER_DEMON}},{ MST_ASMODEUS,{SPELL_BOLT_OF_FIRE,SPELL_HELLFIRE,SPELL_SUMMON_DEMON,SPELL_SUMMON_GREATER_DEMON,SPELL_BOLT_OF_DRAINING,SPELL_TELEPORT_SELF}},{ MST_ERESHKIGAL,{SPELL_BOLT_OF_DRAINING,SPELL_BOLT_OF_COLD,SPELL_SUMMON_GREATER_DEMON,SPELL_SYMBOL_OF_TORMENT,SPELL_PARALYSE,SPELL_LESSER_HEALING}},{ MST_ANTAEUS,{SPELL_BOLT_OF_COLD,SPELL_LIGHTNING_BOLT,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_NO_SPELL}},{ MST_MNOLEG,{SPELL_SUMMON_GREATER_DEMON,SPELL_SMITING,SPELL_INVISIBILITY,SPELL_SUMMON_HORRIBLE_THINGS,SPELL_SUMMON_HORRIBLE_THINGS,SPELL_TELEPORT_SELF}},{ MST_LOM_LOBON,{SPELL_ICE_STORM,SPELL_CONJURE_BALL_LIGHTNING,SPELL_GREATER_HEALING,SPELL_BLINK,SPELL_BLINK,SPELL_TELEPORT_SELF}},{ MST_CEREBOV,{SPELL_FIRE_STORM,SPELL_BOLT_OF_IRON,SPELL_HASTE,SPELL_HASTE,SPELL_SUMMON_GREATER_DEMON,SPELL_HASTE
{ MST_GLOORX_VLOQ,{SPELL_POISON_ARROW,SPELL_MIASMA,SPELL_SYMBOL_OF_TORMENT,SPELL_BOLT_OF_DRAINING,SPELL_DISPEL_UNDEAD,SPELL_INVISIBILITY}},
{ MST_ICE_STATUE,
{ MST_ROXANNE,{SPELL_LEHUDIBS_CRYSTAL_SPEAR,SPELL_BOLT_OF_IRON,SPELL_BOLT_OF_MAGMA,SPELL_STONE_ARROW,SPELL_ISKENDERUNS_MYSTIC_BLAST,SPELL_SANDBLAST}},{ MST_SONJA,{SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_BLINK,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_TELEPORT_SELF}},{ MST_EUSTACHIO,{SPELL_SUMMON_SMALL_MAMMALS,SPELL_CALL_IMP,SPELL_BLINK,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_BLINK}},{ MST_ILSUIW,{SPELL_THROW_FROST, // was: SPELL_CONFUSEDSPELL_SLOW,SPELL_INVISIBILITY,SPELL_BLINK,SPELL_WATER_ELEMENTALS,SPELL_WATER_ELEMENTALS}},{ MST_PRINCE_RIBBIT,{SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_NO_SPELL,SPELL_TELEPORT_SELF}},{ MST_GERYON,{SPELL_SUMMON_BEAST,SPELL_SUMMON_BEAST,SPELL_NO_SPELL,SPELL_SUMMON_BEAST,SPELL_NO_SPELL,SPELL_SUMMON_BEAST}},{ MST_DISPATER,{SPELL_SUMMON_GREATER_DEMON,SPELL_BOLT_OF_IRON,SPELL_SUMMON_DEMON,SPELL_LIGHTNING_BOLT,SPELL_HELLFIRE,SPELL_SUMMON_GREATER_DEMON}},{ MST_ASMODEUS,{SPELL_BOLT_OF_FIRE,SPELL_HELLFIRE,SPELL_SUMMON_DEMON,SPELL_SUMMON_GREATER_DEMON,SPELL_BOLT_OF_DRAINING,SPELL_TELEPORT_SELF}},{ MST_ERESHKIGAL,{SPELL_BOLT_OF_DRAINING,SPELL_BOLT_OF_COLD,SPELL_SUMMON_GREATER_DEMON,SPELL_SYMBOL_OF_TORMENT,SPELL_PARALYSE,SPELL_LESSER_HEALING}},{ MST_ANTAEUS,
SPELL_FREEZING_CLOUD,SPELL_SUMMON_ICE_BEAST,SPELL_SUMMON_ICE_BEAST
SPELL_NO_SPELL}},{ MST_MNOLEG,{SPELL_SUMMON_GREATER_DEMON,SPELL_SMITING,SPELL_INVISIBILITY,SPELL_SUMMON_HORRIBLE_THINGS,SPELL_SUMMON_HORRIBLE_THINGS,SPELL_TELEPORT_SELF
{ MST_LOM_LOBON,{SPELL_ICE_STORM,SPELL_CONJURE_BALL_LIGHTNING,SPELL_GREATER_HEALING,SPELL_BLINK,SPELL_BLINK,SPELL_TELEPORT_SELF}},{ MST_CEREBOV,{SPELL_FIRE_STORM,SPELL_BOLT_OF_IRON,SPELL_HASTE,SPELL_HASTE,SPELL_SUMMON_GREATER_DEMON,SPELL_HASTE}},{ MST_GLOORX_VLOQ,{SPELL_POISON_ARROW,SPELL_MIASMA,SPELL_SYMBOL_OF_TORMENT,SPELL_BOLT_OF_DRAINING,SPELL_DISPEL_UNDEAD,SPELL_INVISIBILITY}},
},{MONS_BLORK_THE_ORC, 'o', BROWN, "Blork the orc",M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD | M_UNIQUE,MR_NO_FLAGS,0, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -4,{ {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 3, 0, 0, 32 },0, 9, MST_ORC_WIZARD_III, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 8, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_URUG, 'o', RED, "Urug",M_FIGHTER | M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,MR_NO_FLAGS,0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5,{ {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 6, 0, 0, 66 },0, 11, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_EROLCHA, 'O', LIGHTBLUE, "Erolcha",M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD| M_SPEAKS | M_EVIL | M_UNIQUE,MR_NO_FLAGS,0, 20, MONS_OGRE, MONS_OGRE, MH_NATURAL, -7,{ {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 6, 0, 0, 54 },3, 7, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE},{// Snorg can go berserk.MONS_SNORG, 'T', GREEN, "Snorg",M_WARM_BLOOD | M_SPEAKS | M_UNIQUE,MR_NO_FLAGS,0, 25, MONS_TROLL, MONS_TROLL, MH_NATURAL, -6,{ {AT_BITE, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 15},{AT_CLAW, AF_PLAIN, 15}, AT_NO_ATK },{ 8, 0, 0, 96 },0, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_LARGE
},{MONS_TIAMAT, 'd', MAGENTA, "Tiamat",M_UNIQUE | M_SEE_INVIS | M_FLIES | M_COLD_BLOOD | M_SPEAKS,MR_RES_POISON,0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5,{ {AT_HIT, AF_PLAIN, 65}, {AT_TAIL_SLAP, AF_PLAIN, 45},AT_NO_ATK, AT_NO_ATK },{ 22, 0, 0, 380 },25, 10, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_ROAR, I_HIGH,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM
{MONS_AZRAEL, 'E', LIGHTRED, "Azrael",M_UNIQUE | M_SPELLCASTER | M_LEVITATE | M_EVIL | M_GLOWS | M_SPEAKS,MR_RES_POISON | mrd(MR_RES_FIRE, 3) | MR_VUL_COLD,0, 12, MONS_EFREET, MONS_EFREET, MH_DEMONIC, -3,{ {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 11, 3, 5, 0 },10, 5, MST_DRAC_SCORCHER, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_HIGH,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE},
MONS_TIAMAT, 'd', MAGENTA, "Tiamat",M_SEE_INVIS | M_UNIQUE | M_FLIES | M_COLD_BLOOD | M_SPEAKS,MR_RES_POISON,0, 10, MONS_DRACONIAN, MONS_DRACONIAN, MH_NATURAL, -5,{ {AT_HIT, AF_PLAIN, 65}, {AT_TAIL_SLAP, AF_PLAIN, 45},AT_NO_ATK, AT_NO_ATK },{ 22, 0, 0, 380 },25, 10, MST_NO_SPELLS, CE_NOCORPSE, Z_NOZOMBIE, S_ROAR, I_HIGH,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_MEDIUM
MONS_PRINCE_RIBBIT, 'F', LIGHTCYAN, "Prince Ribbit",M_UNIQUE | M_COLD_BLOOD | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS,MR_NO_FLAGS,800, 12, MONS_BLINK_FROG, MONS_HUMAN, MH_NATURAL, -5,{ {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 6, 3, 5, 0 },3, 12, MST_PRINCE_RIBBIT, CE_CONTAMINATED, Z_SMALL, S_CROAK, I_NORMAL,HT_AMPHIBIOUS_LAND, 14, DEFAULT_ENERGY, MONUSE_NOTHING, SIZE_LITTLE},{MONS_SONJA, 'K', RED, "Sonja",M_UNIQUE | M_WARM_BLOOD | M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS| M_SPEAKS,MR_NO_FLAGS,400, 10, MONS_KOBOLD, MONS_KOBOLD, MH_NATURAL, -1,{ {AT_HIT, AF_PLAIN, 9}, {AT_HIT, AF_PLAIN, 5}, {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK },{ 6, 2, 3, 0 },2, 24, MST_SONJA, CE_POISONOUS, Z_SMALL, S_SHOUT, I_NORMAL,HT_LAND, 14, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_SMALL
MONS_ILSUIW, 'm', GREEN, "Ilsuiw",M_UNIQUE | M_WARM_BLOOD | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS,MR_RES_POISON | MR_RES_COLD,500, 10, MONS_MERFOLK, MONS_MERFOLK, MH_NATURAL, 90,{ {AT_HIT, AF_PLAIN, 10}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 9, 2, 4, 0 },5, 18, MST_ILSUIW, CE_CONTAMINATED, Z_SMALL, S_SHOUT, I_NORMAL,HT_AMPHIBIOUS_WATER, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_BLORK_THE_ORC, 'o', BROWN, "Blork the orc",M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS| M_WARM_BLOOD | M_SPEAKS,MR_NO_FLAGS,0, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -4,{ {AT_HIT, AF_PLAIN, 7}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 3, 0, 0, 32 },0, 9, MST_ORC_WIZARD_III, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 8, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_URUG, 'o', RED, "Urug",M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPEAKS,MR_NO_FLAGS,0, 20, MONS_ORC, MONS_ORC, MH_NATURAL, -5,{ {AT_HIT, AF_PLAIN, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 6, 0, 0, 66 },0, 11, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_NERGALLE, 'o', WHITE, "Nergalle",M_UNIQUE | M_SPELLCASTER | M_SEE_INVIS | M_EVIL | M_ACTUAL_SPELLS| M_WARM_BLOOD | M_SPEAKS,MR_RES_FIRE | MR_RES_COLD,600, 12, MONS_ORC, MONS_ORC, MH_NATURAL, 50,{ {AT_HIT, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 10, 2, 3, 0 },9, 11, MST_ORC_SORCERER, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_HIGH,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_SAINT_ROKA, 'o', LIGHTBLUE, "Saint Roka",M_UNIQUE | M_FIGHTER | M_WARM_BLOOD | M_SPELLCASTER | M_PRIEST | M_EVIL| M_SPEAKS,MR_NO_FLAGS,600, 15, MONS_ORC, MONS_ORC, MH_NATURAL, -3,{ {AT_HIT, AF_PLAIN, 32}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 15, 4, 7, 0 },3, 10, MST_DAEVA, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_EROLCHA, 'O', LIGHTBLUE, "Erolcha",M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SEE_INVIS | M_WARM_BLOOD| M_EVIL | M_SPEAKS,MR_NO_FLAGS,0, 20, MONS_OGRE, MONS_OGRE, MH_NATURAL, -7,{ {AT_HIT, AF_PLAIN, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 6, 0, 0, 54 },3, 7, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_LARGE},{// Snorg can go berserk.MONS_SNORG, 'T', GREEN, "Snorg",M_UNIQUE | M_WARM_BLOOD | M_SPEAKS,MR_NO_FLAGS,0, 25, MONS_TROLL, MONS_TROLL, MH_NATURAL, -6,{ {AT_BITE, AF_PLAIN, 20}, {AT_CLAW, AF_PLAIN, 15},{AT_CLAW, AF_PLAIN, 15}, AT_NO_ATK },{ 8, 0, 0, 96 },0, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_OPEN_DOORS, SIZE_LARGE},{
{// Roxanne obviously can't use items, but we want to equip her with// a spellbook, so MONUSE_STARTING_EQUIPMENT is necessary.MONS_ROXANNE, '8', LIGHTGREEN, "Roxanne",M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_STATIONARY | M_SPEAKS,mrd(MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC, 2),0, 10, MONS_CLAY_GOLEM, MONS_ROXANNE, MH_NONLIVING, MAG_IMMUNE,{ AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 14, 0, 0, 180 },20, 0, MST_ROXANNE, CE_NOCORPSE, Z_NOZOMBIE, S_SILENT, I_HIGH,HT_LAND, 10, DEFAULT_ENERGY, MONUSE_STARTING_EQUIPMENT, SIZE_LARGE},
M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD| M_SEE_INVIS | M_EVIL | M_UNIQUE,
M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS| M_EVIL | M_SPEAKS,
M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD| M_SEE_INVIS | M_EVIL | M_UNIQUE,
M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS| M_EVIL | M_SPEAKS,
M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD| M_SEE_INVIS | M_EVIL | M_UNIQUE,
M_UNIQUE | M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD| M_SEE_INVIS | M_EVIL | M_SPEAKS,
M_SPELLCASTER | M_ACTUAL_SPELLS | M_SPEAKS | M_WARM_BLOOD| M_SEE_INVIS | M_EVIL | M_UNIQUE,
M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS| M_EVIL | M_SPEAKS,
HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM},{MONS_EUSTACHIO, '@', GREEN, "Eustachio",M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS,MR_NO_FLAGS,0, 20, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, 24,{ {AT_HIT, AF_PLAIN, 6}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },{ 4, 0, 0, 40 },0, 13, MST_EUSTACHIO, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
const int thing_created =items(0, OBJ_SCROLLS, OBJ_RANDOM, true, level, 0);if (thing_created == NON_ITEM)return;
// Not a scroll, but this comes closest.int which_book = (one_chance_in(3) ? BOOK_TRANSFIGURATIONS: BOOK_EARTH);thing_created = items(0, OBJ_BOOKS, which_book, true, level, 0);
mitm[thing_created].flags = 0;_give_monster_item(mon, thing_created);
if (thing_created != NON_ITEM && coinflip()){// Give Roxanne a random book containing Statue Form instead.item_def &item(mitm[thing_created]);make_book_Roxanne_special(&item);_give_monster_item(mon, thing_created, true);return;}
case MONS_SONJA:if (!melee_only){item.base_type = OBJ_WEAPONS;item.sub_type = WPN_BLOWGUN;item_race = MAKE_ITEM_NO_RACE;break;}force_item = true;item_race = MAKE_ITEM_NO_RACE;item.base_type = OBJ_WEAPONS;item.sub_type = coinflip()? WPN_DAGGER : WPN_SHORT_SWORD;{const int temp_rand = random2(5);set_item_ego_type( item, OBJ_WEAPONS,((temp_rand == 0) ? SPWPN_VENOM :(temp_rand == 1) ? SPWPN_DRAINING :(temp_rand == 2) ? SPWPN_VAMPIRICISM :(temp_rand == 3) ? SPWPN_DISTORTION: SPWPN_NORMAL) );}break;case MONS_EUSTACHIO:item_race = MAKE_ITEM_NO_RACE;item.base_type = OBJ_WEAPONS;item.sub_type = (one_chance_in(3) ? WPN_FALCHION: WPN_SABRE);break;
MH_HOLY, // 0 - was -1MH_NATURAL, // 1 - was 0MH_UNDEAD, // 2 - was 1MH_DEMONIC, // 3 - was 2MH_NONLIVING, // golems and other constructsMH_PLANT // plants
MH_HOLY, // 0MH_NATURAL, // 1MH_UNDEAD, // 2MH_DEMONIC, // 3MH_NONLIVING, // 4, golems and other constructsMH_PLANT // 5, plants
MST_TEST_SPAWNER,
// unique monsters' "spellbooks"MST_RUPERT = 140,MST_ROXANNE,MST_SONJA,MST_EUSTACHIO,MST_ILSUIW,MST_PRINCE_RIBBIT,MST_GERYON = 150,MST_DISPATER,MST_ASMODEUS,MST_ERESHKIGAL,MST_ANTAEUS,MST_MNOLEG = 160,MST_LOM_LOBON,MST_CEREBOV,MST_GLOORX_VLOQ,MST_TEST_SPAWNER = 170,
if (player_in_branch(BRANCH_VESTIBULE_OF_HELL) && one_chance_in(7))which_unique = MONS_MURRAY;if (player_in_branch(BRANCH_HALL_OF_ZOT) && one_chance_in(3))which_unique = MONS_TIAMAT;if (player_in_branch(BRANCH_SHOALS) && player_branch_depth() > 1&& coinflip())
if (player_in_branch(BRANCH_VESTIBULE_OF_HELL)){if (one_chance_in(7))which_unique = MONS_MURRAY;}else if (player_in_branch(BRANCH_HALL_OF_ZOT)){if (one_chance_in(3))which_unique = MONS_TIAMAT;}else if (player_in_branch(BRANCH_SHOALS))
A fair-haired mage, wandering and seemingly half-madwith grief and guilt.
A fair-haired mage, wandering and seemingly half-mad with grief and guilt.%%%%RoxanneA beautiful sapphire statue of a famous earth mage who disappeared after acatastrophic spell failure.
%%%%# efreetAzrael@_Azrael_common_@w:2@_Azrael_rare_@%%%%adj_flammableflammableinflammable%%%%_Azrael_common_@The_monster@ laughs insanely.@The_monster@ howls in rage.@The_monster@ screams, "No! No! YES! No!"@The_monster@ screams, "Burn! Burn! All of it must BURN!"VISUAL:@The_monster@ blows smoke rings.
%%%%# apprentice summoner, has funny ideas about honourEustachio@_Eustachio_common_@w:5@_Eustachio_rare_@%%%%_Eustachio_common_@The_monster@ screams, "At last I'll have my revenge!"@The_monster@ screams, "Hey, you killed my favorite bat!"@The_monster@ says, "Summoning is fun!"@The_monster@ says, "My allies will avenge me."%%%%_Eustachio_rare_@The_monster@ yells, "Perjured traitor, DIE!"VISUAL:@The_monster@ twirls his moustache.# doesn't really work if there are no summons nearby#VISUAL:@The_monster@ strokes his familiar.SPELL:@The_monster@ calls on the powers of Hell!@The_monster@ brags, "I can call spirits from the vastly deeps."## END Eustachio ##
%%%%# a pretty merfolk witchIlsuiw@_Ilsuiw_common_@w:5@_Ilsuiw_rare_@%%%%_Ilsuiw_common_@The_monster@ asks, "Won't you come swim with me?"@The_monster@ whispers, "Come on in, the water's fine."@The_monster@ sings a @strange_or_haunting@ @chanty@.VISUAL:@The_monster@ runs @possessive@ fingers through @possessive@ long green hair.%%%%_Ilsuiw_rare_VISUAL:@The_monster@ gazes at you @hypnot_or_seductively@.@The_monster@ sings, "To sleep, to sleep ... mayhap to drown."@The_monster@ says, "It's lovely beneath the waves -- you'll see!"@The_monster@ asks, "Do you dare to walk upon the beach?"%%%%hypnot_or_seductivelyhypnoticallyseductively%%%%strange_or_hauntingstrangehaunting
_Prince_Ribbit_common_@The_monster@ croaks regally.@The_monster@ lets out a mournful croak.VISUAL:@The_monster@ hops awkwardly around.VISUAL:@The_monster@ catches a @_frog_food_@ with @possessive@ tongue.%%%%_Prince_Ribbit_rare_@The_monster@ asks, "Just a little smooch?"@The_monster@ sighs, "It's not easy being green!"@The_monster@ says, "You're just another fly to me."%%%%_frog_food_flyw:5bugw:1small bird## END Prince Ribbit ##%%%%
%%%%# a sapphire statue of an earth mageRoxanne@_Roxanne_common_@w:5@_Roxanne_medium_@w:1@_Roxanne_rare_@%%%%_Roxanne_common_@The_monster@ says, "Come a little closer, will you?"@The_monster@ mutters, "When I said I wanted to live forever... this was not what I had in mind."@The_monster@ says, "At least I didn't end up somewhere with nobody to talk to."@The_monster@ wails, "NOOOO!"w:20__NONE%%%%_Roxanne_medium_@The_monster@ asks, "Could you be a darling and pick up those spellbooks for me?"@The_monster@ asks, "Say, could you scratch my back for me?"@The_monster@ sighs and says, "It wouldn't be so bad were it not for the bird droppings."%%%%_Roxanne_rare_@The_monster@ shouts, "I'd kick your ass right now if I could just get over there!"@The_monster@ prays for a Stone to Flesh spell.@The_monster@ wonders, "Maybe oil would work? Probably not."@The_monster@ says, "They said I was crazy for my new spells... Turns out they were right."## END Roxanne ##%%%%# orc warlord# Only used if the player is not a Hill Orc.Saint Rokaw:7@related Saint Roka@@The_monster@ says, "Down here, you're an orc or you're nobody."@The_monster@ says, "In the orcish mines, orcs kill the likes of you."%%%%related Saint Rokaw:2@_generic_orc_speech_@@The_monster@ calls out, "Orcs! Behind me!"@The_monster@ calls out, "Only Beogh rules here!"@The_monster@ says, "I shall smite you and smash you."@The_monster@ lets out a mighty cry!@The_monster@ cries, "Beogh give me strength!"@The_monster@ cries, "In the name of Beogh, DIE!"@The_monster@ calls out, "Join me or die!"
_Sonja_common_@The_monster@ says, "I'm academy-trained, you know."@The_monster@ shouts, "Too slow!"VISUAL:@The_monster@ twirls her cape.VISUAL:@The_monster@ bows elegantly.VISUAL:@The_monster@ plants her feet in a plie.%%%%_Sonja_rare_@The_monster@ shouts, "Hah! Missed me again!"@The_monster@ says, "The Royal Ballet doesn't accept kobolds. That's why I went into killing people."@The_monster@ says, "If only old Madame Brzewit could see me now!"@The_monster@ shouts, "Some dancing partner you are!"@The_monster@ says, "Someone hired me to kill you, but I'm not supposed to say who."## END Sonja ##%%%%
%%%%_hostile_beogh_speech_common_# unbelieversw:1@_hostile_orc_beogh_unbeliever_common_@# orcs doubting youw:6@_hostile_orc_beogh_believer_common_@%%%%_hostile_beogh_speech_rare_# unbelieversw:3@_hostile_orc_beogh_unbeliever_rare_@# orcs doubting youw:7@_hostile_orc_beogh_believer_rare_@