git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1730 c06c8d41-db1a-0410-9941-cceddc491573
U6HLBU2OIMKVNWWZ55SERG56WKAW3GSFFEGUJBP4SQVYSESGXC2QC
const char* spell_power_string( spell_type spell )
formatted_string spell_power_string(spell_type spell)
{
formatted_string result;
result.textcolor(spell_power_colour(spell));
const int numbars = spell_power_bars(spell);
if ( numbars < 0 )
result.cprintf("N/A");
else
result.cprintf(std::string(numbars, '#'));
return result;
}
int spell_power_colour(spell_type spell)
return "Maximum";
return
(power > 100) ? "Enormous" :
(power > 90) ? "Huge" :
(power > 80) ? "Massive" :
(power > 70) ? "Major" :
(power > 60) ? "Impressive" :
(power > 50) ? "Reasonable" :
(power > 40) ? "Moderate" :
(power > 30) ? "Adequate" :
(power > 20) ? "Mediocre" :
(power > 10) ? "Minor"
: "Negligible";
return WHITE;
if ( power * 3 < powercap )
return RED;
if ( power * 3 < powercap * 2 )
return YELLOW;
return GREEN;
}
int spell_power_bars( spell_type spell )
{
const int powercap = spell_power_cap(spell);
if ( powercap == 0 )
return -1;
const int power = std::min(calc_spell_power(spell, true), powercap);
const int breakpoints[] = { 5, 10, 15, 25, 35, 50, 75, 100, 150 };
int result = 0;
for ( unsigned int i = 0; i < ARRAYSIZE(breakpoints); ++i )
{
if ( power > breakpoints[i] )
++result;
}
return result + 1;