Still needs a tile.
Also, actually use the M_BATTY flag instead of hardcoding batty monsters.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7734 c06c8d41-db1a-0410-9941-cceddc491573
T4FNOPMWYYJHJBTTY33PB43HTJPKEC46L62YERTWIX73HYZSELXQC
7X5YDPAU34LOFKEGJYE6GC7EOEDKGT3O6CUGZBYJI45L3FQOAKHQC
JYEEOUYQ7ZPKOGWUV7VCORBVSOLF2UCBFBH3TR75RGOSS6PNKYUAC
ZJMTMMZBCXHCPFHBTI2PL3Q4XTJQUWMMHCCG6JDIEDMJYCC33TFQC
5FZYO6GQ5DWJFMRHCFSLAI4NVGK2HJ6RE7BLHBVTNQJHN75K5LUQC
QWZR7TCGSJAKK755AVEKFIMF5CX5GQLQC46TLI6URKZO2NJ3O26AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
HAM54HXIO2245W6REO4RZDY2QMIH476AWWJSMYAMSYYNEBBJSHWAC
YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
K6S3LX4GPSVHOVIZVVGJDOMT6GXENOTXD6FM3ZHBN5GO4JA5E6YAC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
KABMEHHPUS7RLDZ2A5ADC6GMYSBJ5OHD3WPUBDWBM22XWHB7X6WQC
X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC
GPEJOT73KMACP33IPAKFR5ROGHCOIP22VXZMQNYTGLEA2OSZUM2AC
7AMQN7MITMXBNVDAK5VOXTQ4TZIAOD6ZLOFJG7GQMBTY23Y2BKSAC
IIK2W5J4NQWD3BVXPJDUCTONSF2ENXPSZBWMZCBC25RCTNMKSK6AC
47NSOFQMBZCDIBHEAZSENFUGDSQCX3GJHFBUZ65ARDKCYIZ435LAC
RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC
HHW3CT6TLHVUGKIBE2KNYJTWGZMSFA6OVIUFOTZTIH6SGRA7DLDQC
QDWDUURSNLMT6AXNNJ3DEQCWAKCAIHV6MP5F7QGIBGXOG2BI2NPQC
3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC
ISSEUTHG7EH3QTFLS23GXFIOQXCI5HJPJMK6GWNFMC6NDRD2H34QC
S6SJSGXKHMDFIDXI2DSFX4W5W4HV36XO5KRXCXGKJUGWCKGHUHKQC
AY3CBJCAR4XMZODH5N4DVJXXJF3B5HUKICRGO7KCTCFACAYVGN4QC
WMHFDQKUDCUGM3R245LLVZ5NNEZSCXFDSTNMVS2O5EFUHHO7HU3AC
3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC
4VK7VHWRVRO66BRSGTBPSYJGGXLRF6AG6G74UDTPHTPXR7ZRNINQC
HH3HFWVXABJ4IRMN22PPJCREMULZSN6DA7VYKOGECGMNUQTZ5QNQC
LHYTGOCNDWX3CVD2HSQ6LAYC6NLKKI6ZKKNWZ5IQWP6YP5PQEVWQC
JFDTUUUT6AKIGPBKGYFC7HZKGQUZOMG7EUWU4QYKSDVXXPQBBFHAC
JLAGD2FAV3CWVO7PLXTHLT7MBI23TUSYLSNHFAWP5IB5UO77VKJAC
BNRY5YIXLFE2TDNU2JQHWWXJQVWNSEWQ52DU7XUWIT5DZWKGBDDAC
4SWAT5KCKQV527NKELAXFQ5XA4Q5HONQXD4VBXMUZNPVPQKPCPNAC
J6APXOT4QOGQFONWB7G546VTVF6QG42HVOROMHF7YBDJPR4K26OAC
HOPP345EQLSF24XJYE3625VKU23PBKM5ZZKNCXBXUWYYORYPMDAAC
PI5BATR2SER3RFE76IUGHM2AGXVFOUM3PLU7WC2K2Q2BA5K2E73QC
if (is_valid_item(you.inv[i])
&& (you.inv[i].base_type == target_class
|| target_class == OBJ_FOOD
&& you.inv[i].base_type == OBJ_CORPSES))
if (you.inv[i].base_type == target_class
|| target_class == OBJ_FOOD
&& you.inv[i].base_type == OBJ_CORPSES)
switch (target_class)
{
case OBJ_SCROLLS:
mprf("%s you are carrying %s fire!",
(num_dest > 1) ? "Some of the scrolls" : "A scroll",
(num_dest > 1) ? "catch" : "catches" );
break;
case OBJ_SCROLLS:
mprf("%s you are carrying %s fire!",
(num_dest > 1) ? "Some of the scrolls" : "A scroll",
(num_dest > 1) ? "catch" : "catches" );
break;
case OBJ_POTIONS:
mprf("%s you are carrying %s and %s!",
(num_dest > 1) ? "Some of the potions" : "A potion",
(num_dest > 1) ? "freeze" : "freezes",
(num_dest > 1) ? "shatter" : "shatters" );
break;
case OBJ_POTIONS:
mprf("%s you are carrying %s and %s!",
(num_dest > 1) ? "Some of the potions" : "A potion",
(num_dest > 1) ? "freeze" : "freezes",
(num_dest > 1) ? "shatter" : "shatters" );
break;
default:
mprf("%s you are carrying %s destroyed!",
(num_dest > 1) ? "Some items" : "An item",
(num_dest > 1) ? "were" : "was" );
break;
}
default:
mprf("%s you are carrying %s destroyed!",
(num_dest > 1) ? "Some items" : "An item",
(num_dest > 1) ? "were" : "was" );
break;
}
if (mg.cls == MONS_GIANT_BAT || mg.cls == MONS_UNSEEN_HORROR
|| mg.cls == MONS_GIANT_BLOWFLY)
{
menv[id].flags |= MF_BATTY;
}
// do not remove, or seekmonster will crash on unknown mc request
// it is also a good prototype for new monsters
// NOTE: Do not remove, or seekmonster will crash on unknown mc request!
// It is also a good prototype for new monsters.
{
MONS_HARPY, 'H', GREEN, "harpy",
M_FLIES | M_WARM_BLOOD | M_BATTY,
MR_NO_FLAGS,
1000, 10, MONS_HARPY, MONS_HARPY, MH_NATURAL, -3,
{ {AT_BITE, AF_PLAIN, 10}, {AT_CLAW, AF_PLAIN, 8},
{AT_CLAW, AF_STEAL_FOOD, 5}, AT_NO_ATK },
{ 7, 3, 5, 0 },
2, 10, MST_NO_SPELLS, CE_CONTAMINATED, Z_BIG, S_SCREECH, I_ANIMAL,
HT_LAND, 30, DEFAULT_ENERGY, MONUSE_NOTHING, SIZE_MEDIUM
},
break;
case AF_STEAL_FOOD:
// Monsters don't carry food.
if (defender->atype() != ACT_PLAYER)
break;
// Only use this attack sometimes.
if (!one_chance_in(3))
break;
if (expose_player_to_element(BEAM_STEAL_FOOD, 10) && needs_message)
{
mprf("%s steals some of your food!",
atk_name(DESC_CAP_THE).c_str());
}
MF_BATTY = 0x02, // flutters like a bat
MF_JUST_SUMMONED = 0x04, // monster skips next available action
MF_TAKING_STAIRS = 0x08, // is following player through stairs
MF_INTERESTING = 0x10, // Player finds monster interesting
MF_SEEN = 0x20, // Player has already seen monster
MF_DIVINE_PROTECTION = 0x40, // Monster has divine protection.
MF_JUST_SUMMONED = 0x02, // monster skips next available action
MF_TAKING_STAIRS = 0x04, // is following player through stairs
MF_INTERESTING = 0x08, // Player finds monster interesting
MF_BANISHED = 0x100, // Monster that has been banished.
MF_HARD_RESET = 0x200, // Summoned, should not drop gear on reset
MF_WAS_NEUTRAL = 0x400, // mirror to CREATED_FRIENDLY for neutrals
MF_ATT_CHANGE_ATTEMPT = 0x800, // Saw player and attitude changed (or
MF_BANISHED = 0x80, // Monster that has been banished.
MF_HARD_RESET = 0x100, // Summoned, should not drop gear on reset
MF_WAS_NEUTRAL = 0x200, // mirror to CREATED_FRIENDLY for neutrals
MF_ATT_CHANGE_ATTEMPT = 0x400, // Saw player and attitude changed (or
MF_WAS_IN_VIEW = 0x1000, // Was in view during previous turn
MF_BAND_MEMBER = 0x2000, // Created as a member of a band
MF_GOT_HALF_XP = 0x4000, // Player already got half xp value earlier
MF_HONORARY_UNDEAD = 0x8000, // Consider this monster to have MH_UNDEAD
MF_WAS_IN_VIEW = 0x800, // Was in view during previous turn.
MF_BAND_MEMBER = 0x1000, // Created as a member of a band
MF_GOT_HALF_XP = 0x2000, // Player already got half xp value earlier
MF_HONORARY_UNDEAD = 0x4000, // Consider this monster to have MH_UNDEAD