diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-29 17:40:40 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-11-29 17:40:40 +0000 |
commit | bdc780ed167c098605f620a74238aec4f84e0c58 (patch) | |
tree | 8e02f5a788935794e38511f4e3898039d7583d41 /crawl-ref/source/decks.cc | |
parent | ec6dd2dc554ac988dc8ad23088328ae426ec7e0b (diff) | |
download | crawl-ref-bdc780ed167c098605f620a74238aec4f84e0c58.tar.gz crawl-ref-bdc780ed167c098605f620a74238aec4f84e0c58.zip |
Added the Bones, a skeleton summoning card.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2938 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/decks.cc')
-rw-r--r-- | crawl-ref/source/decks.cc | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc index 0010b70c5d..a90825f5fe 100644 --- a/crawl-ref/source/decks.cc +++ b/crawl-ref/source/decks.cc @@ -99,7 +99,8 @@ static card_type a_deck_of_enchantments[] = { DEFVEC(deck_of_enchantments); static card_type a_deck_of_summoning[] = { - CARD_CRUSADE, CARD_SUMMON_ANIMAL, CARD_SUMMON_DEMON, CARD_SUMMON_WEAPON + CARD_CRUSADE, CARD_SUMMON_ANIMAL, CARD_SUMMON_DEMON, CARD_SUMMON_WEAPON, + CARD_SUMMON_SKELETON }; DEFVEC(deck_of_summoning); @@ -243,6 +244,7 @@ const char* card_name(card_type card) case CARD_SUMMON_ANIMAL: return "the Herd"; case CARD_SUMMON_DEMON: return "the Pentagram"; case CARD_SUMMON_WEAPON: return "the Dance"; + case CARD_SUMMON_SKELETON: return "the Bones"; case CARD_SUMMON_ANY: return "Summoning"; case CARD_XOM: return "Xom"; case CARD_FAMINE: return "Famine"; @@ -2247,6 +2249,21 @@ static void summon_dancing_weapon(int power, deck_rarity_type rarity) menv[mon].flags |= MF_HARD_RESET; } +static void summon_skeleton(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)); + const monster_type skeltypes[] = { + MONS_SKELETON_LARGE, MONS_SKELETAL_WARRIOR, MONS_SKELETAL_DRAGON + }; + + const int mon = create_monster(skeltypes[power_level], std::min(power/50,6), + friendly ? BEH_FRIENDLY : BEH_HOSTILE, + you.x_pos, you.y_pos, MHITYOU, 250 ); + if ( mon != -1 ) + menv[mon].flags |= MF_HARD_RESET; +} + static int card_power(deck_rarity_type rarity) { int result = 0; @@ -2333,8 +2350,9 @@ bool card_effect(card_type which_card, deck_rarity_type rarity, case CARD_SUMMON_DEMON: summon_demon_card(power, rarity); break; 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_SUMMON_SKELETON: summon_skeleton(power, rarity); break; + case CARD_XOM: xom_acts(5 + random2(power/10)); break; case CARD_TROWEL: trowel_card(power, rarity); break; case CARD_SPADE: your_spells(SPELL_DIG, random2(power/4), false); break; case CARD_BANSHEE: mass_enchantment(ENCH_FEAR, power, MHITYOU); break; |