summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/decks.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/decks.cc')
-rw-r--r--crawl-ref/source/decks.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc
index c035744aa8..048f1711be 100644
--- a/crawl-ref/source/decks.cc
+++ b/crawl-ref/source/decks.cc
@@ -1025,6 +1025,17 @@ static void summon_any_monster(int power, deck_rarity_type rarity)
chosen_x, chosen_y, you.pet_target, 250 );
}
+static void summon_dancing_weapon(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));
+ create_monster( MONS_DANCING_WEAPON, power_level + 3,
+ friendly ? BEH_FRIENDLY : BEH_HOSTILE,
+ you.x_pos, you.y_pos,
+ friendly ? you.pet_target : MHITYOU,
+ 250 );
+}
+
static int card_power(deck_rarity_type rarity)
{
int result = 0;
@@ -1094,9 +1105,9 @@ void card_effect(card_type which_card, deck_rarity_type rarity)
case CARD_SUMMON_ANIMAL: summon_animals(random2(power/3)); break;
case CARD_SUMMON_ANY: summon_any_monster(power, rarity); break;
case CARD_XOM: xom_acts(5 + random2(power/10)); break;
+ case CARD_SUMMON_WEAPON: summon_dancing_weapon(power, rarity); break;
case CARD_SPADE:
- case CARD_SUMMON_WEAPON:
// XXX not yet implemented
mpr("Sorry, this card is not yet available.");
break;