[Side note: rm saves/ * is a bad idea.]
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2945 c06c8d41-db1a-0410-9941-cceddc491573
3YBQGKQ22WFXA5RXDSKLFWMABLJ6KHBVWEIA3WIDHWM25OECNTYAC
BKKEH7UMHPFMXL4PUTS7I6KPVECROFP6DX5TVKYLZ3W33IH2KANAC
36SHRKVELEOW7PUDHUS2ONWI6OEHUTP6NBFGOT4GR6ZS3QZRTK5AC
YFAWC4DXLGL3RXD2UTKVHXEXTMZRM7UDRTRHKWV7HAPNYQBD3OYAC
FCZSQBKDNMJZRJS2LWQQWLUFGOXSKXDJZQIHC7L5S7HXCXQPOMMAC
CJWCTWT75S4P3OSCMUZ2W6UTWI6GOQMUSBUN6KEN4TVFEG4HHHGQC
2HNLFROSOZ6ROLX3Q3W5E7I4Y4ELIWSJ7EX5GDGZZOMRPTK6TBSAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
DH3YTI6VVI727SQXO4CXSDCSBG2UN3UAWLFULBGRLBVH22ACRXIAC
DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC
Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC
I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC
XUCCWGMXKPIR34BBCCOI67YHI3RST4STDWSDUZTN4B2CJWXQLQ7AC
HJV7BZBM752K5I47ILBQJJXSPODBBLGKDX5DWJTRDXPJ3V7AEVWAC
EGV2HM7SD7UQSWJGLR65NQJTUBAJ7WHLM67FMH4UFP7JRSFKREPAC
3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC
HW7XKO7HRAUQVDVVKG5GA7PYAEL5J5GKVDPT2CKAD3FLERAY5HLAC
VUP5G3CB6L5I5TPVWMM4KAMF6N4X6UPO4HQZKTSO2ETXZEFBMOMAC
LKLHWERPXMDTRNYPEXVDVB6PE7CT5PZ6WMNJJDTBBE5FBHOCEK5AC
}
static void sage_card(int power, deck_rarity_type rarity)
{
const int power_level = get_power_level(power, rarity);
int c; // how much to weight your skills
if ( power_level == 0 )
c = 0;
else if ( power_level == 1 )
c = random2(10) + 1;
else
c = 10;
// FIXME: yet another reproduction of random_choose_weighted
// Ah for Python:
// skill = random_choice([x*(40-x)*c/10 for x in skill_levels])
int totalweight = 0;
int result = -1;
for (int i = 0; i < NUM_SKILLS; ++i )
{
if ( you.skills[i] < MAX_SKILL_LEVEL )
{
const int curweight = 1 + you.skills[i] * (40-you.skills[i]) * c;
totalweight += curweight;
if ( random2(totalweight) < curweight )
result = i;
}
}
if ( result == -1 )
{
mpr("You feel omnipotent."); // all skills maxed
}
else
{
you.duration[DUR_SAGE] = random2(1800) + 200;
you.sage_bonus_skill = static_cast<skill_type>(result);
you.sage_bonus_degree = power / 25;
mprf(MSGCH_PLAIN, "You feel studious about %s.", skill_name(result));
}