the appropriate number of singleton items were sacced. Modify Okawaru and Makhleb piety gain test slightly.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5775 c06c8d41-db1a-0410-9941-cceddc491573
AV3T4BN5IFAAE4CQURI5BKTUW22AKA7DVCTPXM4ZVCI6P62UULCAC D32GUD7KJLTXTAHUYZZ3IXBAOGWXFP47OD5BPRXOSBOCG2NEMOWAC MDFQRJ6QZNFUBVSFWLXUJ6EBXOU47T3CVDI2XKBGNNRF4DXDKESQC FD2HXXWW7BLKG7G27VXGP67TXDCODDK3CXFEZOJFXNB7IF2GHKFAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 72CQFK27NR37P2WQ32U4PEXXKMRIO7JEMJN2ZCPNVPZMT7UPFJJAC XKAJWK6MPHS3ZCZIPPLTIMOPF6AROGLRDDCS6EFE3IGE4AHT7MYQC DK362IHKSDADMUPD35NOTKM4WESQM37KG2PNOJRV2FGELDWULYPQC L3DRKFURVDCV3EJKGG6GVVQX3D5MZPICTVOKNOD3LGM2PECBA7PQC KYVZGUJXV23ELA4CKPVQZO3NTJCODXMCWYAZJYWVWJVLPETNHLGQC C2VJXKTIPFZ34C6L6FNCDAGEI7NLTKUXTNB7RN4EYAJCALULIBMQC RHRAOBKSM35XB4EELW33PZ6ZJ25Z7R5CVCJVBEEAKCBQR7YK2BBAC E42EFZ3RINKLTGOJJZAH2N5QF3P4S5NCO5T52HLXJRMBPP463HTAC UKN6HTZXDUUOWKNWNKWPHKGUGL474JIAQN5JU3DM3DU26WGMNP4AC 4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC KC4WE63EQMVI6QBPDO3EAEPMFLAOS7H5WUAFL7JPRIE3V7CR333AC VXMRWJ2CPHIB2NAHMZKUV7DAFA7GLVA32WDS53WNT3BIDHK6GOZQC IIUK3DT26O7F4IBKB6QFTPLO4EVKBH55SAEXLNQEQRLDGJ37NDGAC PRQVFUGUGPKI2Q74ODEI3CYUJQB63CKC6ONQTE3BTOHKXG4JCNLQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC }// God effects of sacrificing one item from a stack (e.g., a weapon, one// out of 20 arrows, etc.) Does not modify the actual item in any way.static piety_gain_t _sacrifice_one_item_noncount( const item_def& item){piety_gain_t relative_piety_gain = PIETY_NONE;// item_value() multiplies by quantityconst int value = item_value(item) / item.quantity;switch (you.religion){case GOD_NEMELEX_XOBEH:if (you.attribute[ATTR_CARD_COUNTDOWN] && random2(800) < value){you.attribute[ATTR_CARD_COUNTDOWN]--;#if DEBUG_DIAGNOSTICS || DEBUG_CARDS || DEBUG_SACRIFICEmprf(MSGCH_DIAGNOSTICS, "Countdown down to %d",you.attribute[ATTR_CARD_COUNTDOWN]);#endif}if (item.base_type == OBJ_CORPSES && one_chance_in(2+you.piety/50)// Nemelex piety gain is fairly fast...at least// when you have low piety.|| value/2 >= random2(30 + you.piety/2)){if ( is_artefact(item) ){gain_piety(2);relative_piety_gain = PIETY_LOTS;}else{gain_piety(1);relative_piety_gain = PIETY_SOME;}}if (item.base_type == OBJ_FOOD && item.sub_type == FOOD_CHUNK)// No sacrifice value for chunks of flesh, since food// value goes towards decks of wonder.;else if (item.base_type == OBJ_CORPSES){#if DEBUG_GIFTS || DEBUG_CARDS || DEBUG_SACRIFICEmprf(MSGCH_DIAGNOSTICS, "Corpse mass is %d",item_mass(item));#endifyou.sacrifice_value[item.base_type] += item_mass(item);}elseyou.sacrifice_value[item.base_type] += value;break;case GOD_OKAWARU:case GOD_MAKHLEB:if (item.base_type == OBJ_CORPSES|| value >= random2(200)|| (player_under_penance() && value >= random2(5))){gain_piety(1);relative_piety_gain = PIETY_SOME;}break;case GOD_SIF_MUNA:if (value >= 150) // no point in saccing stacks to Sif{gain_piety(1 + random2(3));relative_piety_gain = PIETY_SOME;}break;case GOD_KIKUBAAQUDGHA:case GOD_TROG:case GOD_SHINING_ONE:gain_piety(1);relative_piety_gain = PIETY_SOME;break;default:break;}return relative_piety_gain;
case GOD_NEMELEX_XOBEH:if (you.attribute[ATTR_CARD_COUNTDOWN] && random2(800) < value){you.attribute[ATTR_CARD_COUNTDOWN]--;#if DEBUG_DIAGNOSTICS || DEBUG_CARDS || DEBUG_SACRIFICEmprf(MSGCH_DIAGNOSTICS, "Countdown down to %d",you.attribute[ATTR_CARD_COUNTDOWN]);#endif}if (item.base_type == OBJ_CORPSES&& one_chance_in(2+you.piety/50)// Nemelex piety gain is fairly fast...at least// when you have low piety.|| value/2 >= random2(30 + you.piety/2)){if ( is_artefact(item) ){gain_piety(2);relative_piety_gain = PIETY_LOTS;}else{gain_piety(1);relative_piety_gain = PIETY_SOME;}}if (item.base_type == OBJ_FOOD && item.sub_type == FOOD_CHUNK)// No sacrifice value for chunks of flesh, since food// value goes towards decks of wonder.;else if (item.base_type == OBJ_CORPSES){#if DEBUG_GIFTS || DEBUG_CARDS || DEBUG_SACRIFICEmprf(MSGCH_DIAGNOSTICS, "Corpse mass is %d",item_mass(item));#endifyou.sacrifice_value[item.base_type] += item_mass(item);}elseyou.sacrifice_value[item.base_type] += value;break;
const piety_gain_t gain = _sacrifice_one_item_noncount(item);
case GOD_OKAWARU:case GOD_MAKHLEB:if (mitm[i].base_type == OBJ_CORPSES|| random2(value) >= 50|| player_under_penance())
// Update piety gain if necessary.if ( gain != PIETY_NONE )
gain_piety(1);relative_piety_gain = PIETY_SOME;}break;case GOD_SIF_MUNA:if (value >= 150){gain_piety(1 + random2(3));relative_piety_gain = PIETY_SOME;
if ( relative_piety_gain == PIETY_NONE )relative_piety_gain = gain;else // some + some = lotsrelative_piety_gain = PIETY_LOTS;
break;case GOD_KIKUBAAQUDGHA:case GOD_TROG:case GOD_SHINING_ONE:gain_piety(1);relative_piety_gain = PIETY_SOME;break;default:break;