git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2926 c06c8d41-db1a-0410-9941-cceddc491573
6PAG7GHXHIYXJPPTEK4KZQZT4CL2SJDAGTVIUDB4KK66PVSTWUMAC 3NRASCNNNVJPCVJTAEEWAFEQVHDWR7BKQNS3CGMR5J4TFEJIFD6AC GCDBSJXJCPEK4NCX5CVGDBK3432PFCU5OCO2F3DA32332ALI2ZYQC BPUGGHPCAEHMTBKRHBXGMTXC7UF5A6TUWTUUYXBO35EILBTIP6YAC 3IJHKZOTXLU7B6F4UIKXCQCPXEVLKRX2M3VWAAPGRLL24IIP2T2QC RRNEVUYOK5S4M4QH77N34IXSSNUXVQAIZQLXAQKQCRITMPUKGP6AC NC7EZH4YRVHK635D4KT6JAQWPQH4DUSXZTBR7NDLAMFFDIQSU3ZAC PIGVTTBAQGNHOCX6IXJLGVVURBAT77SD6FQUVTTI5SFTV563GMZQC P2YNOE2TUTZFAOBTHJOIVD6TCV7J7D2UKUX67LHZUL6QY44ZMENQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 2H32CFFM2FNS63JJPNM2S6HMO543EX72GMPOU5GI6HTMQYPL6I3AC ENN23K4IMPAAICA5IXCZBOMWAUXGXWR46AIEWUEDVSHSSJNQB63QC E42EFZ3RINKLTGOJJZAH2N5QF3P4S5NCO5T52HLXJRMBPP463HTAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC NLQNXH3SVJ52CWXEV35FSSZP32VHC4QFGN3HINF4KO5GZHZMOBKQC SS6MUIJYTGIVBYU356Z563QJWLJ47QNHSJWS7GJTS7EATZH2ESJQC WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 4HATGRJJE7Q6LXHJ3ZGYTNBLG542KAUEK6ERKARIYRKRWY6VTDKQC YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC CQ24AVAI6SW3AHTIDMLPSTRRBEU6FHRF5I5FD6G5QIYE6PO4BQMQC 6L4EP4ZRWWYLT55PD5KTTJON5J2JB5VV5MWNHF5VPZQZ5BKEYZ4QC LOJYD6QZRNLNDDZJKVBMKQIBPTKSRN2ETCYGNVV47M7L3QLUJUJAC WZNB427K3EUNV3FMVXLQTM4UIHER4FIKQXWLUUXRNQC3OQ33VQYAC XKAJWK6MPHS3ZCZIPPLTIMOPF6AROGLRDDCS6EFE3IGE4AHT7MYQC 4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC VBG2GGMVC66LQM4OSI67VKXGAQK4GVOEHX3OL6V3IFOO52MQL72QC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC 3GSAVTNKEG45AT2U734R5STSRP22WJZL3H6KUFRUWCIA6A4CZE5QC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC YIIILIV4ZPRIPWWT4GL7YWSJCUVH6RJJLXV4XIHY6SF3H7Y3EAYAC case GOD_ZIN:case GOD_SHINING_ONE:case GOD_ELYVILON:case GOD_OKAWARU:case GOD_BEOGH: // added penance to avoid killings for loot// deliberately no extra punishment for killingif (you.religion != GOD_BEOGH ||(victim && mons_species(victim->id()) == MONS_ORC)){piety_change = -level;if (known)penance = level * 3;ret = true;}break;default:break;
piety_change = -level;if (known)penance = level * 3;ret = true;
{const int piety_loss = -piety_change;if (piety_loss){// output guilt message:mprf( "You feel%sguilty.",(piety_loss == 1) ? " a little " :(piety_loss < 5) ? " " :(piety_loss < 10) ? " very ": " extremely " );lose_piety( piety_loss );}
dock_piety(-piety_change, penance);
}static void dock_piety(int piety_loss, int penance){static long last_piety_lecture = -1L;static long last_penance_lecture = -1L;if (piety_loss <= 0 && penance <= 0)return;if (piety_loss){if (last_piety_lecture != you.num_turns){// output guilt message:mprf( "You feel%sguilty.",(piety_loss == 1) ? " a little " :(piety_loss < 5) ? " " :(piety_loss < 10) ? " very ": " extremely " );}last_piety_lecture = you.num_turns;lose_piety( piety_loss );}if (you.piety < 1)excommunication();else if (penance) // only if still in religion{if (last_penance_lecture != you.num_turns)god_speaks( you.religion,"\"You will pay for your transgression, mortal!\"" );last_penance_lecture = you.num_turns;inc_penance( penance );}
bool god_hates_attacking_friend(god_type god, const actor *fr){if (!fr || fr->kill_alignment() != KC_FRIENDLY)return (false);switch (god){case GOD_ZIN:case GOD_SHINING_ONE:case GOD_ELYVILON:case GOD_OKAWARU:return (true);case GOD_BEOGH: // added penance to avoid killings for lootreturn (fr && mons_species(fr->id()) == MONS_ORC);default:return (false);}}
}/////////////////////////////////////////////////////////////////////// god_conduct_triggergod_conduct_trigger::god_conduct_trigger(conduct_type c, int pg, bool kn, const monsters *vict): conduct(c), pgain(pg), known(kn), enabled(true), victim(NULL){if (vict){victim.reset(new monsters);*(victim.get()) = *vict;}
void god_conduct_trigger::set(conduct_type c, int pg, bool kn,const monsters *vict){conduct = c;pgain = pg;known = kn;victim.reset(NULL);if (vict){victim.reset(new monsters);*victim.get() = *vict;}}god_conduct_trigger::~god_conduct_trigger(){if (enabled && conduct != NUM_CONDUCTS)did_god_conduct(conduct, pgain, known, victim.get());}