chance of showing up in each Abyss area. Many things still need to be done: better naming, better descriptive text, differentiation from Makhleb in preferences, etc. Playtesting and debugging required. Breaks savefiles.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@698 c06c8d41-db1a-0410-9941-cceddc491573
WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC
}
break;
case GOD_LUCY:
// abyssal servant theme
if (random2(you.experience_level) > 7 && !one_chance_in(5))
{
if (create_monster(MONS_GREEN_DEATH + random2(3), 0,
BEH_HOSTILE, you.x_pos, you.y_pos,
MHITYOU, 250) != -1)
{
simple_god_message(" sends a demon after you!", god);
}
else
{
simple_god_message("'s demon is unavoidably detained.", god);
}
else
{
success = false;
how_many = 1 + (you.experience_level / 7);
for (loopy = 0; loopy < how_many; loopy++)
{
if (create_monster(MONS_NEQOXEC + random2(5), 0, BEH_HOSTILE,
you.x_pos, you.y_pos, MHITYOU, 250) != -1)
{
success = true;
}
}
if (success)
simple_god_message(" sends minions to punish you.", god);
else
simple_god_message("'s minions fail to arrive.", god);
}
// Lucy blesses weapons with distortion
if (you.religion == GOD_LUCY
&& !you.num_gifts[GOD_LUCY]
&& !player_under_penance()
&& you.piety > 160)
{
const int wpn = get_player_wielded_weapon();
if (wpn != -1 && get_weapon_brand(you.inv[wpn]) != SPWPN_DISTORTION)
bless_weapon(GOD_LUCY, SPWPN_DISTORTION, RED);
}
case ABIL_LUCY_ABYSS_EXIT:
if ( you.level_type != LEVEL_ABYSS )
{
mpr("You aren't in the Abyss!");
return false; // don't incur costs
}
banished(DNGN_EXIT_ABYSS);
exercise(SK_INVOCATIONS, 8 + random2(10));
// Lose 1d2 permanent HP
you.hp_max -= (coinflip() ? 2 : 1);
// Deflate HP
set_hp( 1 + random2(you.hp), false );
// Lose 1d2 permanent MP
rot_mp(coinflip() ? 2 : 1);
// Deflate MP
if (you.magic_points)
set_mp(random2(you.magic_points), false);
break;
case ABIL_LUCY_SUMMON_DEMONS:
for ( int i = 0; i < you.skills[SK_INVOCATIONS] / 4; ++i )
summon_ice_beast_etc( 20 + you.skills[SK_INVOCATIONS] * 3,
summon_any_demon(DEMON_COMMON), true);
exercise(SK_INVOCATIONS, 6 + random2(6));
break;
case ABIL_LUCY_ABYSS_ENTER:
if (you.level_type == LEVEL_ABYSS)
{
mpr("You're already here.");
return false;
}
else if (you.level_type == LEVEL_PANDEMONIUM)
{
mpr("That doesn't work from Pandemonium.");
return false;
}
banished(DNGN_ENTER_ABYSS);
break;