distinct potion types to make stacking easier. Coagulated blood is not created randomly, and aging potions of blood turn into potions of coagulated blood, so none of that changed. Well, except the name: congealed -> coagulated. This also means that they now have distinct descriptions, though seeing potions in your inventory coagulate will identify both of them.
And I checked: potions in shops will coagulate as well and disappear. Coagulated blood is cheaper, but if you need it you won't want to wait around, right?
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3884 c06c8d41-db1a-0410-9941-cceddc491573
M2HMYLYYXSP5XGX6MCI77IT6UW5K4YSEUJWHPQPYXVSW5L36BJ2AC
BZC4SQHQJSDAJKSVQCW6ZUUT7FVAPWID5GF3E4RGWZY25OTG7AFAC
GS6EEHMVCI6B7D6CEBELLIPNZVGLUTLEE7LX7LHI6W6SCMMBWMUAC
APCC5AQ77EHT57NWJA4SRRQOFNTIZDDUJRAFAXJS75Q235TTPDDQC
OEISFRW2B7E4YRJSWXNXBH2IAJO4O3LHNYFPFD3MBY57LYVRHMZQC
Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
MNYDF64QY6NHYKOAFOGBQJFYU7TZDILXRV23EXJPN4IZOCLSJ2AQC
JK3HFJG76OOQHJMXJUSZRTR5CX5ZMS52LRVBLOR7E2NBI6PRSHHAC
CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC
BWAQ3FHBBM6G3K3KYP75CRTR343RDQZJRYX5ZGYUEXYBAC3APDLAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC
2H32CFFM2FNS63JJPNM2S6HMO543EX72GMPOU5GI6HTMQYPL6I3AC
TFNFP2YQA4EOVE4VIXBEQSGACZSXHWIQ2T4TIPQ46R2MJW2C4B5AC
CWTKS62IFZYYR3HGPDP5LW5C53CRWVAD6AAEOV4BSWNW52BCQH3QC
UCJ7DCJX4EJMHNTJUITNDG7K7KFFLGHIFOLSKDY7LFBNWGT3AAKAC
HIRKGUMNJPWKSVTR6TVBPD3MWNA63CEHCLCIPWEMGDFHVB3NPLDQC
2W34FMSGJ2BZY7QQM6X6RTVRXXI2H72Z2MH75SU3SDL4FN4G74KAC
LT4XSC3B5CREP5LGIG3ER3SZFZFQAHX3UAHTGCMNR2EXVOYFTTMAC
YMC3RKF4Z7DOHZNGG7INC343SXCTWOPK7ISD42I3WA3AZZNVBGIAC
Z42PAEBKCSMEQ5ALBM25HERM3QDIUWMQTQODJOPRVOJAEGIWU3UAC
KX23OEQBBLMQHTFCA4TYYEGLHCETXVZCXALYR5U5RELKJMMB66SAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
QUFPPRIIRXHUFEDH3EFES7CSHTA7GG2DAXTRHUAUQBYMSWK4BP6AC
static int _get_random_coagulated_blood_desc()
{
potion_description_qualifier_type qualifier = PDQ_NONE;
switch (random2(4))
{
case 0:
qualifier = PDQ_GLUGGY;
break;
case 1:
qualifier = PDQ_LUMPY;
break;
case 2:
qualifier = PDQ_SEDIMENTED;
break;
case 3:
qualifier = PDQ_VISCOUS;
break;
}
potion_description_colour_type colour = (coinflip() ? PDC_RED : PDC_BROWN);
return PDESCQ(qualifier, colour);
}
buff << "potion of ";
// rotting corpses don't get special dbnames, so neither do !blood
if (this->sub_type == POT_BLOOD
&& this->special < 200
&& !dbname)
{
buff << "congealed ";
}
buff << potion_type_name(item_typ);
buff << "potion of " << potion_type_name(item_typ);
const char *clr =
(pcolour < 0 || pcolour >= PDC_NCOLOURS)? "bogus"
: potion_colours[pcolour];
const char *clr = (pcolour < 0 || pcolour >= PDC_NCOLOURS)?
"bogus" : potion_colours[pcolour];
const char* names[] = { "human", "rat", "goblin",
"elf", "goat", "sheep",
"sheep", "gnoll", "yak" };
mprf("Yummy - fresh %s blood!", RANDOM_ELEMENT(names));
if (pot_eff == POT_BLOOD)
mpr("Yummy - fresh blood!");
else // coagulated
mpr("This tastes delicious!");
if (what_isit == OBJ_CORPSES && kindof_thing == CORPSE_BODY
|| what_isit == OBJ_POTIONS && kindof_thing == POT_BLOOD)
if (what_isit == OBJ_CORPSES && kindof_thing == CORPSE_BODY)
return true;
if (what_isit == OBJ_POTIONS && (kindof_thing == POT_BLOOD
|| kindof_thing == POT_BLOOD_COAGULATED))
if (thing.base_type == OBJ_POTIONS && thing.sub_type == POT_BLOOD)
thing.special = 1200;
if (thing.base_type == OBJ_POTIONS)
{
if (thing.sub_type == POT_BLOOD)
thing.special = 1200;
else if (thing.sub_type == POT_BLOOD_COAGULATED)
thing.special = 200;
}
const bool known_blood = item_type_known(you.inv[affected_potion]);
you.inv[affected_potion].sub_type = POT_BLOOD_COAGULATED;
you.inv[affected_potion].plus
= you.item_description[IDESC_POTIONS][POT_BLOOD_COAGULATED];
const bool known_coag_blood = item_type_known(you.inv[affected_potion]);
// identify both blood and coagulated blood, if necessary
if (!known_blood)
set_ident_type( OBJ_POTIONS, POT_BLOOD, ID_KNOWN_TYPE );
if (!known_coag_blood)
{
set_ident_flags( you.inv[affected_potion], ISFLAG_IDENT_MASK );
set_ident_type( OBJ_POTIONS, POT_BLOOD_COAGULATED, ID_KNOWN_TYPE );
mpr(you.inv[affected_potion].name(DESC_INVENTORY, false).c_str());
}