diff options
Diffstat (limited to 'crawl-ref/source/decks.cc')
-rw-r--r-- | crawl-ref/source/decks.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc index 66602c0667..74e2a0c4ef 100644 --- a/crawl-ref/source/decks.cc +++ b/crawl-ref/source/decks.cc @@ -24,6 +24,7 @@ #include "item_use.h" #include "itemprop.h" #include "items.h" +#include "message.h" #include "misc.h" #include "monplace.h" #include "monstuff.h" @@ -38,7 +39,9 @@ #include "spl-cast.h" #include "spl-util.h" #include "stuff.h" +#include "terrain.h" #include "transfor.h" +#include "traps.h" #include "view.h" #define VECFROM(x) (x), (x) + ARRAYSIZE(x) @@ -1365,3 +1368,25 @@ void card_effect(card_type which_card, deck_rarity_type rarity) return; } + +bool is_deck(const item_def &item) +{ + return item.base_type == OBJ_MISCELLANY + && (item.sub_type >= MISC_DECK_OF_ESCAPE && + item.sub_type <= MISC_DECK_OF_DEFENSE); +} + +deck_rarity_type deck_rarity(const item_def &item) +{ + ASSERT( is_deck(item) ); + switch (item.colour) + { + case BLACK: case BLUE: case GREEN: case CYAN: case RED: + default: + return DECK_RARITY_COMMON; + case MAGENTA: case BROWN: + return DECK_RARITY_RARE; + case LIGHTMAGENTA: + return DECK_RARITY_LEGENDARY; + } +} |