giant eyeballs, eyes of draining, eyes of devastation, or great orbs of eyes will now be spawned outside player LOS.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7335 c06c8d41-db1a-0410-9941-cceddc491573
N7KLZSYDHJYZ6UYV6YSXCO53NLWOFWJF43IOKZHDLFLR67B2USPAC
JX6YMUFJWDYHL72GVQDQWC26E4EEJAFRTIN5XZIY3B4S2M4V4KHAC
SLLTYX5LKR3TL75K5CTVINM42WQR5XY5HWYROSCXHP4DTFEGTCMAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SWOYPTHJAWFEDBMB3ROT33VQZIXGZD5UOXEV456DDUENW2HGA66QC
G2EYUPAIPISVAEG26BS3SQANL37EEZJ3TZBJKKWHGKQ66LB3RFQAC
ZSW72OXJ3ZHULVRLHEIJTD6HA5LCH6PX46TSSM65A3O45RI7L2SAC
7MIGVW67NPURCPMLLMCUQQPEYPXFXKUQQMG4OTEQWYXZ2WM6CQ4QC
LEGFIEUGVU2LZELGQH4TZTIJGKEVUHFTRGQ4Y2KGLSK7KNDI7BFQC
3XL4DKV7PSWAU3ZBJSKZFJ2VUYABC47I7KKWGIRCJYXULQD453MQC
CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC
YVLLVKCGD7Y3LXWJGZRVLC23O6W5DVJAJ452SBKARSEZFXNPBV7QC
DKRSOHZXL6EPSLKOKHF7GJXSZEJVY7CXGACSHWLM5B5FTRETWWCAC
DVCPTGG5UWM4QMV3TJOLC4BDB77WUGQTJSU5NXQWOSIGSVL7E37AC
SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
7OUAAZXWRGOXSQR5ELUZ25KQ5DMWAZBBPFIIZNSEXTTANSJKONLAC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
NG53L53MSFQZAIVKHG54IEMXNJ33AYVPF2OZM4MMJFDKEJCGPBSAC
T5XERKCC6UL2UI2HKE34BTKNINTOXOSDCBYGC3A3JY7XMKIQW4GQC
UIQABYXDQ4JIVMVEAQCOVR3HOKNNQCAGMGRETLEX3KISPCHCIIOQC
2PZXX7DNNOL5X3TF2ID22AGDHLHUHBPSAXQJR6EWG5YAXRJCAYWAC
simple_god_message(success ? " sends the divine host to punish "
"you for your evil ways!"
: "'s divine host fails to appear.",
god);
if (success)
god_speaks(god, "You feel Zin's eyes turn towards you...");
else
simple_god_message("'s eyes are elsewhere at the moment.",
god);
}
}
// restrict_not_LOS: restrict target to be outside PLAYER line of sight.
bool monster_random_space(const monsters *monster, coord_def& target,
bool restrict_not_LOS)
{
int tries = 0;
while (tries++ < 150)
{
target.x = 10 + random2(GXM - 20);
target.y = 10 + random2(GYM - 20);
// Don't land on top of another monster.
if (mgrd(target) != NON_MONSTER || target == you.pos())
continue;
if (is_sanctuary(target) && !mons_wont_attack(monster))
continue;
if (restrict_not_LOS && see_grid(target))
continue;
if (monster_habitable_grid(monster, grd(target)))
return (true);
while (true)
{
newpos.x = 10 + random2(GXM - 20);
newpos.y = 10 + random2(GYM - 20);
if (monster_random_space(monster, newpos))
monster->moveto(newpos);
// Don't land on top of another monster.
if (mgrd(newpos) != NON_MONSTER || newpos == you.pos())
continue;
if (is_sanctuary(newpos) && !mons_wont_attack(monster))
continue;
if (monster_habitable_grid(monster, grd(newpos)))
break;
}
monster->moveto(newpos);