git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6098 c06c8d41-db1a-0410-9941-cceddc491573
KVTA7IUBD2O7ZEUU5T5VP7D3XVLFLYICXUPP5WCPAODBXKK4DNNQC
377IO63NX2CXDYLKI2DUH5X6CKU7BJSPWIJYSCJXEAQTKFV53K5QC
3SQT6RBP43XUVMZRPEBC3M5ZEJAAG3LZARSSGDHSDZAAW5VCEY6AC
THKQ74QJVQWY4R3OD2XIBEV2RUTGI667KTA2KU6HBGGX5NOIQ3NQC
USMUKOJDYBFDRKC2LGWX3Q5ZMHBI5VFUM7RGS2A5QVZ7I7SXAK2QC
4LYEUWWWOR7IEPIZZKPE6RGDRNVRRPOSJDUUAUYFJEN4B65MNTZAC
7RDIBNLUIBTAYOJXJ5Q3DOW3MKKYXBAA3Q4G4QE74KJL23NW6C7AC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
NYURIMPCM2RADLMIQSN76OPKXQSK4XBLFNXD2OO53KGZI3MA6AQAC
GN333G64BJJSMYTTXVADZ6IPA3CC3ALVZ6TFGBFYYTED5HYM2MFQC
NIJDQAJEWQIYKPDWIXYCCT4JIWVE6CWJ3J3K4N5PPGHWENGNZZXQC
EXYOAOND4VQ76OFAAGCPVIFGIZIF6BQH6S263QZRQIWAZWEDAYNAC
QEPTJOPJFKTXH27KOHY7DMQSMTXWAM57OPL3Y7WYE4X2OFMZE5IAC
45CWQUPQHKUFUJ4MVL5K3KCVCCKLY2Z7RZWZ53UT723RV5STPSRAC
UWHZCQPPWGEJXWES63STKGH4L65LTS35RQUXUL7CCCROQBLHHNZQC
MDSFNRPBJ2SXDV22NZDCO7B3X2H3IOG6WMBTKDKV7BKBGTEIDTSQC
NMZFCCM6O3KO2GJWKOSULN27B3QIZKWPBOB62PAILXMRQD4JMIMAC
A4A2EM75B3AIPYFLGZGTGKJEM72UBMOJK4STS47YARXIJMEC6G7AC
BSYEZ767GXLUDAHWF3UBPEZNM7VJNPDCJHID57SF5SP53KYAUQTQC
PSJ7QDBYFBE35ANUDUTNE5VMKOTNVD66AXCCYC45WWJZRTGBJYLQC
monster_type *monster = new monster_type[numdemons];
// If we have a mix of demons and non-demons, there's a chance
// that one or both of the factions may be hostile.
int hostile = random2(12);
int hostiletype =
(hostile < 3) ? 0 : // 1/4: both are friendly
(hostile < 11) ? (coinflip() ? 1 : 2) // 2/3: one is hostile
: 3; // 1/12: both are hostile
if (numdifferent == numdemons)
god_speaks(GOD_XOM, _get_xom_speech("multiple holy summons"));
else if (numdifferent > 0)
god_speaks(GOD_XOM, _get_xom_speech("multiple mixed summons"));
else
god_speaks(GOD_XOM, _get_xom_speech("multiple summons"));
summons[i] =
create_monster(
mgen_data(monster, BEH_FRIENDLY, 3,
you.pos(), you.pet_target, MG_FORCE_BEH, GOD_XOM));
// If we have a mix of demons and non-demons, there's a chance
// that one or both of the factions may be hostile.
int hostile = random2(12);
int hostiletype =
(hostile < 3) ? 0 : // 1/4: both are friendly
(hostile < 11) ? (coinflip() ? 1 : 2) // 2/3: one is hostile
: 3; // 1/12: both are hostile
if (summons[i] != -1)
success = true;
}
// If we have only demons, they'll always be friendly.
if (numdifferent == 0)
hostiletype = 0;
// If we have only non-demons, there's a chance that they
// may be hostile.
else if (one_chance_in(4))
hostiletype = 2;
}
if (numdifferent == numdemons)
god_speaks(GOD_XOM, _get_xom_speech("multiple holy summons"));
else if (numdifferent > 0)
god_speaks(GOD_XOM, _get_xom_speech("multiple mixed summons"));
else
god_speaks(GOD_XOM, _get_xom_speech("multiple summons"));
bool success = false;
if (numdifferent == numdemons)
{
// If we have only demons, they'll always be friendly.
if (numdifferent == 0)
hostiletype = 0;
// If we have only non-demons, there's a chance that
// they may be hostile.
else if (one_chance_in(4))
hostiletype = 2;
}
for (int i = 0; i < numdemons; ++i)
{
if (create_monster(
mgen_data(monster[i], BEH_FRIENDLY, 3,
you.pos(), you.pet_target, 0, GOD_XOM)) != -1)
for (int i = 0; i < numdemons; ++i)
delete[] monster;
if (!success)
god_speaks(GOD_XOM, "\"No, forget it.\"");
done = true;
delete[] summons;