diff options
Diffstat (limited to 'crawl-ref/source/decks.cc')
-rw-r--r-- | crawl-ref/source/decks.cc | 13 |
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; |