git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5565 c06c8d41-db1a-0410-9941-cceddc491573
NQ2PC2EO6VIBYU5MR4LNSLV3LDOYABKSKZEVEDTML6BAJAQAWWBAC EFS55XWWSC2ARLHL7KI3SZYQB45IUT33RW7JFDGCLUP4A4MBHDYQC N3NXT75G2JYKVON7ZTE3TG34BBWITCL2HHVQ6H7QREYCDTVQFSGAC KLCR26P7MSX4ZWIHQHRK7BZH7M2QGCITN46FCFVHNX7U7WQWYDAQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC WVIVA3M3ABBQTBYTCFE2W53IE4IZ223FBSQ6P7BACWKIJPYA66ZQC HHKRUVC6WMVKQRUQRYB5VAEDXUS6TMAKO7BSTBGVVL2AUOEBFUJAC OQYJHB4D7DUXP6EUXH7F5Z5ODNF52TOSIAXAUOICEVD3UAOTXCZQC S6FRUNPFE3PD2DAMVJGWX7TX262KVATIMQ4ON67BPRNVTOOO2XVQC SZJGHYGJ5AAZDOAQ53LXGP2WKEMIZABCVVGDJMOOMHA7M5ZDT3YQC UHOAWBSBZBPHWMNXZCVB4SBJM4DTZAG3YRNNJNIKJN4CE2DP27JQC 5T56ZXHVBN4LBEOHZPRV65UNS2HJ7RX6AMU7GHNAJRAQ7QKECP5AC PACHJJO52BZM5BCXAWPQGJKLIRFSKAY6SIXZQFTHJ2HQWFQS2MCAC VBQODM6G5B35WWYGNT36EQDJFVTHMZB6CJWAFP3UQVD6NRUSKJAQC U3KGUJJQWQORJIIFH3ADVNIEEX5HOX6KEOXO7DJSL7L3Z6GG3PAQC 3XL4DKV7PSWAU3ZBJSKZFJ2VUYABC47I7KKWGIRCJYXULQD453MQC NFJKJYTT6CBLOKLGT6HIVIDEPWXMGXJV5AAL37SBZTG2HSFMJMKQC GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC SWOYPTHJAWFEDBMB3ROT33VQZIXGZD5UOXEV456DDUENW2HGA66QC G2EYUPAIPISVAEG26BS3SQANL37EEZJ3TZBJKKWHGKQ66LB3RFQAC LEGFIEUGVU2LZELGQH4TZTIJGKEVUHFTRGQ4Y2KGLSK7KNDI7BFQC }return (success);}static bool _summon_holy_being_wrapper(int pow, bool god_gift,holy_being_class_type hbct){bool success = false;monster_type mon = summon_any_holy_being(hbct);const int dur = std::min(2 + (random2(pow) / 4), 6);mprf("You open a gate to %s's realm!",(mon == MONS_DAEVA) ? god_name(GOD_SHINING_ONE).c_str(): god_name(GOD_ZIN).c_str());int monster = create_monster(mgen_data(mon, BEH_FRIENDLY, dur, you.pos(),you.pet_target,god_gift ? MF_GOD_GIFT : 0));if (monster != -1){success = true;monsters *summon = &menv[monster];summon->flags |= MF_ATT_CHANGE_ATTEMPT;mprf("You are momentarily dazzled by a brilliant %s light.",(mon == MONS_DAEVA) ? "golden": "white");
}bool cast_summon_guardian(int pow, bool god_gift){return _summon_holy_being_wrapper(pow, god_gift, HOLY_BEING_ANGEL);
static bool _summon_holy_being_wrapper(int pow, holy_being_class_type hbct,bool force_hostile, bool quiet,bool permanent){bool success = false;monster_type mon = summon_any_holy_being(hbct);const int dur = (permanent) ? 0 : std::min(2 + (random2(pow) / 4), 6);if (!quiet){mprf("You open a gate to %s's realm!",(mon == MONS_DAEVA) ? god_name(GOD_SHINING_ONE).c_str(): god_name(GOD_ZIN).c_str());}int monster = create_monster(mgen_data(mon,!force_hostile ? BEH_FRIENDLY : BEH_HOSTILE,dur, you.pos(),!force_hostile ? you.pet_target : MHITYOU,MF_GOD_GIFT));if (monster != -1){success = true;monsters *summon = &menv[monster];summon->flags |= MF_ATT_CHANGE_ATTEMPT;if (!quiet){mprf("You are momentarily dazzled by a brilliant %s light.",(mon == MONS_DAEVA) ? "golden": "white");}}return (success);}// Zin sends an angel for a follower.bool summon_guardian(int pow, bool force_hostile, bool quiet,bool permanent){return _summon_holy_being_wrapper(pow, HOLY_BEING_ANGEL, force_hostile,quiet, permanent);}// TSO sends a daeva for a follower.bool summon_daeva(int pow, bool force_hostile, bool quiet,bool permanent){return _summon_holy_being_wrapper(pow, HOLY_BEING_DAEVA, force_hostile,quiet, permanent);}