monsters within the (circular) halo, and then keeps the duration of that backlight from running out. You currently lose it if you go under penance. Also, there are no visual effects yet, other than the usual backlight effects.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3669 c06c8d41-db1a-0410-9941-cceddc491573
JDZCDMUCQ7VENYVLB62KQWUIRGABID37OKATOKCBUPCDL7W75NPAC JJHOTW7LDUJ6DLUG2DTFWASCAFPGD2WBW7MHBSECJZU7PTJYWQDQC S7KC3IFKCUNBO3XO4TV3KEQEIDZWSRJSKXY65DPONKMG54VHU3UQC KOBNLIHIAHSV6IPA3R4HI2KB5HY5XIIJQPJ2GBETYB5AK73NAKJQC L4DV5O3UTY456Y6YFXELHEWEFLB6ZUCENZ3AKYJZLGRRGUVHT5QAC DK362IHKSDADMUPD35NOTKM4WESQM37KG2PNOJRV2FGELDWULYPQC CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC P52QVYEFQXNK6IXNN2EMZIBLOIHHGQ7LODWIGWPJLANGVIPQK5IAC PEXHYCLRKDG2PVOJ3DDCMUZUK2HTSPU5WKH4MODFL4FTBQRQTY5QC TN2D3PHU7VSGUND2BDIC2F4U6O2HFSV3JXLF7HMYYMY7GZXM6IFAC IR6KD4I2DWCXMZ6ANWMHCHCBN35S4FELVAAC36MLAQ3XL6SY6ILAC KHHAE5ZK7ITEZVMMUKYROKECLE2RU5ZU5OQ4Z4XSRQXE2R65O67AC UFKLHUYL7WAQ3CI3D42T4C6KBGAUR63DSQAUQTTZG7GJMXSCVJWAC L5CVPV5IUBSO4EE3WK4O6SQGIMIEPSMQONFBWEVGJBR2HATLPZIAC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC A3QXTQ5RKIGDWIKA7JHIGIHQE5EVGO6WNNWF6XY2VZNP67JESDHQC NVD2HSEW2ONWNYDDCTOMZZOUP6NG4DCXI4LNYYIY4BQEBDMJQK5AC WTUFDJICW653ERO6FH63XYGOZQRVY3DVLPIPFN4BMA4NJH5UD3LAC V4DWL5WBO2JCODVS5QQNWXDH4DAYZN3D5V3UDCHM2KKOMADOTEDQC KKEPQAZMWQFWPQ4P4KT5PWG2YFPG7H4JHL5K7USVHQ3Y6L4NWURQC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC RCPQNIRPR3NQXEMVLBAQW6657UJFIP43N54UJVEZHJH22OH4UQIQC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC 6GT5JAWOIIL4SQ5MWIID6ZVO3KKQFWDQDZNVFHZ6DNK5QCBXJ4UAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC if (!inside_level_bounds(posx, posy))continue;int dist = distance(posx, posy, you.x_pos, you.y_pos);if (dist > radius*radius)continue;
int dist = mons_inside_circle(posx, posy, radius);
}int halo_radius(){if (you.religion == GOD_SHINING_ONE && you.piety >= piety_breakpoint(0)&& !you.penance[GOD_SHINING_ONE]){return you.piety / 20;}elsereturn 0;}void manage_halo(){int radius = halo_radius();if (radius == 0)return;int monster = -1;if (!you.duration[DUR_BACKLIGHT])you.duration[DUR_BACKLIGHT] = 1;for (int x=-radius; x<=radius; x++)for (int y=-radius; y<=radius; y++){int posx = you.x_pos + x;int posy = you.y_pos + y;// affect all monsters inside the haloif (mons_inside_halo(posx, posy)){monster = mgrd[posx][posy];monsters *mon = &menv[monster];if (!mon->has_ench(ENCH_BACKLIGHT))mon->add_ench(ENCH_BACKLIGHT);}}}bool mons_inside_halo(int posx, int posy){return (mons_inside_circle(posx, posy, halo_radius()) != -1);
// bonuses now once more effectiveif (god == GOD_BEOGH && you.religion == GOD_BEOGH)you.redraw_armour_class = true;
// When you gain piety of more than 160, you get another chance// to make hostile holy beings neutral.if (is_good_god(you.religion))moral_beings_attitude_change();
}// Is there a monster in a circle with the given radius, centered on the// player's position? If so, return the distance to it. Otherwise,// return -1.int mons_inside_circle(int posx, int posy, int radius){if (!inside_level_bounds(posx, posy))return -1;int dist = distance(posx, posy, you.x_pos, you.y_pos);if (dist > radius*radius)return -1;if (mgrd[posx][posy] != NON_MONSTER)return dist;return -1;