summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/decks.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-20 03:20:37 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-04-20 03:20:37 +0000
commitbb750cc25bf83299d867e1c251fa911987971929 (patch)
treea8321f8daebc2c62e625db1420adc7ad51ca2e12 /crawl-ref/source/decks.cc
parent1630849515ed452092588a148a48c35d08e4c7b8 (diff)
downloadcrawl-ref-bb750cc25bf83299d867e1c251fa911987971929.tar.gz
crawl-ref-bb750cc25bf83299d867e1c251fa911987971929.zip
Make ugly thing summoning available as a card effect (Repulsiveness).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4403 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/decks.cc')
-rw-r--r--crawl-ref/source/decks.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc
index 3d7740277e..05129c6cf5 100644
--- a/crawl-ref/source/decks.cc
+++ b/crawl-ref/source/decks.cc
@@ -132,6 +132,7 @@ const deck_archetype deck_of_summoning[] = {
{ CARD_SUMMON_WEAPON, {5, 5, 5} },
{ CARD_SUMMON_FLYING, {5, 5, 5} },
{ CARD_SUMMON_SKELETON, {5, 5, 5} },
+ { CARD_SUMMON_UGLY, {5, 5, 5} },
END_OF_DECK
};
@@ -291,6 +292,7 @@ const char* card_name(card_type card)
case CARD_SUMMON_WEAPON: return "the Dance";
case CARD_SUMMON_FLYING: return "Foxfire";
case CARD_SUMMON_SKELETON: return "the Bones";
+ case CARD_SUMMON_UGLY: return "Repulsiveness";
case CARD_SUMMON_ANY: return "Summoning";
case CARD_XOM: return "Xom";
case CARD_FAMINE: return "Famine";
@@ -2661,6 +2663,25 @@ static void _summon_skeleton(int power, deck_rarity_type rarity)
MONS_PROGRAM_BUG);
}
+static void _summon_ugly(int power, deck_rarity_type rarity)
+{
+ const int power_level = get_power_level(power, rarity);
+ const bool friendly = (power_level > 0 || !one_chance_in(4));
+ monster_type ugly;
+ if (power_level >= 2)
+ ugly = MONS_VERY_UGLY_THING;
+ else if (power_level == 1)
+ ugly = coinflip() ? MONS_VERY_UGLY_THING : MONS_UGLY_THING;
+ else
+ ugly = MONS_UGLY_THING;
+
+ create_monster(ugly, std::min(power/50,6),
+ friendly ? BEH_FRIENDLY : BEH_HOSTILE,
+ you.x_pos, you.y_pos,
+ friendly ? you.pet_target : MHITYOU,
+ MONS_PROGRAM_BUG);
+}
+
static int _card_power(deck_rarity_type rarity)
{
int result = 0;
@@ -2754,6 +2775,7 @@ bool card_effect(card_type which_card, deck_rarity_type rarity,
case CARD_SUMMON_WEAPON: _summon_dancing_weapon(power, rarity); break;
case CARD_SUMMON_FLYING: _summon_flying(power, rarity); break;
case CARD_SUMMON_SKELETON: _summon_skeleton(power, rarity); break;
+ case CARD_SUMMON_UGLY: _summon_ugly(power, rarity); break;
case CARD_XOM: xom_acts(5 + random2(power/10)); break;
case CARD_TROWEL: rc = _trowel_card(power, rarity); break;
case CARD_SPADE: your_spells(SPELL_DIG, random2(power/4), false); break;