From 8a57e9bf3fe8e82365d4cf64394ca215646e5c7c Mon Sep 17 00:00:00 2001 From: Erik Lunna Date: Sat, 18 Nov 2023 09:15:11 +0100 Subject: [PATCH] Fix and tweak the cartomancer rarity for cards. First I fixed the rarity not showing up correctly. The category for common was just under 60 cost, which made for awkward naming for the higher rarities. So, I just simplified it: Under 100 = common, under 200 = uncommon, under 300 = rare, 300+ = legendary. I didn't want to copy MtG and use mythic rare so legendary seemed fine. Also - the mythic rare thing was introduced way after I stopped playing MtG so I wasn't really familiar with it. In any case, this will make the price identify aspect both more intuitive but a little more difficult for the common cares. --- src/objnam.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/objnam.c b/src/objnam.c index 3a2c67b28..24bb9b4aa 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -1105,10 +1105,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ break; case SCROLL_CLASS: if (Role_if(PM_CARTOMANCER)) { - if (!nn) - Strcpy(buf, Cartomancer_rarity(typ)); - else - Strcpy(buf, "card"); + Strcpy(buf, Cartomancer_rarity(typ)); if (obj->quan > 1) { Strcat(buf, "s"); pluralize = FALSE; @@ -5904,18 +5901,21 @@ Cartomancer_rarity(int otyp) int price = objects[otyp].oc_cost; if (otyp == SCR_CREATE_MONSTER) return "summon card"; - else if (otyp == SCR_ZAPPING) + if (otyp == SCR_ZAPPING) return "zap card"; - else if (price < 60) + + /* Don't show the rarity if we have identified the card. + * We could, but it takes up inventory real-estate. */ + if (objects[otyp].oc_name_known) + return "card"; + + if (price < 100) return "common card"; - else if (price < 100) + if (price < 200) return "uncommon card"; - else if (price < 200) + if (price < 300) return "rare card"; - else if (price < 300) - return "legendary card"; - else - return "mythic card"; - + return "legendary card"; } + /*objnam.c*/