High-value sacrifices can reduce the gift countdown. Nemelex is easier to please. Breaks savefiles.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1821 c06c8d41-db1a-0410-9941-cceddc491573
UKN6HTZXDUUOWKNWNKWPHKGUGL474JIAQN5JU3DM3DU26WGMNP4AC I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC 45CWQUPQHKUFUJ4MVL5K3KCVCCKLY2Z7RZWZ53UT723RV5STPSRAC X7TRUBJTRDVUI53BROBYHF4UDC4I5SUYWBUOGQMZNN2WEZAFVGVQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC XKAJWK6MPHS3ZCZIPPLTIMOPF6AROGLRDDCS6EFE3IGE4AHT7MYQC TZTHE3TEKUDMNLAXWKHO66SYIVCVCIOJLKF3MCHSNJTXCKTWK3LAC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC 6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC #endif
template<typename Iterator>int choose_random_weighted(Iterator beg, const Iterator end){int totalweight = 0;int count = 0, result = 0;while ( beg != end ){totalweight += *beg;if ( random2(totalweight) < *beg )result = count;++count;++beg;}return result;}
#endif
gift_type = RANDOM_ELEMENT(pure_decks);
int weights[5];weights[0] = you.sacrifice_value[OBJ_SCROLLS] +you.sacrifice_value[OBJ_ARMOUR] + 1;weights[1] = you.sacrifice_value[OBJ_WEAPONS] +you.sacrifice_value[OBJ_STAVES] +you.sacrifice_value[OBJ_MISSILES] + 1;weights[2] = you.sacrifice_value[OBJ_MISCELLANY];weights[3] = you.sacrifice_value[OBJ_CORPSES] * 100;weights[4] = you.sacrifice_value[OBJ_POTIONS];gift_type = pure_decks[choose_random_weighted(weights,weights+5)];
case GOD_NEMELEX_XOBEH:you.sacrifice_value[mitm[i].base_type] += value;if ( you.attribute[ATTR_CARD_COUNTDOWN] &&random2(800) < value ){you.attribute[ATTR_CARD_COUNTDOWN]--;#ifdef DEBUG_DIAGNOSTICSmprf(MSGCH_DIAGNOSTICS, "Countdown down to %d",you.attribute[ATTR_CARD_COUNTDOWN]);#endif}mprf(MSGCH_GOD, "%s%s", mitm[i].name(DESC_CAP_THE).c_str(),sacrifice_message(you.religion, mitm[i]).c_str());if ((mitm[i].base_type == OBJ_CORPSES && coinflip())// Nemelex piety gain is fairly fast.|| random2(value) >= random2(60)){gain_piety(1);}destroy_item(i);break;