This includes a new transformation TRAN_PIG that the player can not end at will but rather will have to time out. Pigs (or rather hogs) are fast but cannot use any equipment except amulets, or cast spells. If the transformation would cause death by stat loss (due to equipment loss) the player is paralysed instead.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10061 c06c8d41-db1a-0410-9941-cceddc491573
NHCEH7ZFP3IFRMZMC25ZA2X5ZSS3MOCHCYLVCSVY7RTY62WX7UAQC
MDIB4YIAXNS2DL5S5LVFOSFT47HXHBKLZ7GHBQSCRYAEQMPGBAHQC
WTJQ7OJBFAEJKZBY7MY52JGOYCLHVAO7Z4WS23RWONI27N73X4UAC
X26ED6BN3FPOBSGWRMLPUSKZTZTVUOWMWVWIBKFIPTBC526644FQC
4S7GTHOCXO5MLS3DKSZWUYYZFBVNHDG6RFJONUALXVA7CCPFKXKAC
DO6W27HYFNVFMX7FSGG4RCX5UW32ORCVYZBQYPCUD4VCHMA4LFFQC
3T2TK4NPTNTB7E4DDFCBOQUIE6MHQTHG3YXGM7I6FIRMR5K7DCUQC
SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
H5BVKRORNXTCJKFXQPTFWDURKSUFW24CGSJXBGZCJUP4DHMSVDBQC
NDP5ANTLTYSDYLBHZPEJLO6IDU6OKA6UQHYWSBUXEEPYHZLRTYNQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
QK7YLIH7SWBSL3OEBQJYVFNTW4XT5FF6U3GPKW7PEGHBLPV3TVQAC
DTOROKIMAOTTZ42ZYBWV6BBABEFW64G33UXGW334TXIG3W3MBTEAC
PIBNVCEVSIEQ25EYX7IZ3YEXDSOCTLUWRVFT3AUDESGZC7N3XIXQC
EXWYMMTGSYZNPI5W33IWJ3W6YVHW3CZMJAMSFRVKGBX43DG7X3IQC
JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC
4EZVKDQA5GM3QDTNTCKEKGH4F6LGAYNLBT756PXODKZ2B7C4ZVHAC
3SQQ4MM6YO4I37CQ6GIBIX6BXAEVHNVNHPVMR3PPBBNO454D6XWQC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
2FHNLTLN3DVVD67N4QMAQ2LO7YY4GVZWXJAOIWGCCYYGIX7UHSVQC
ADIVVYTV2MJ3XVRYDNBLPTAEACCNF27XZDCRVZFQEHRHPMZGNITQC
6GSGCC5JQJ5NOKX36UHRNOCXNHDBS2A2TDMAR34UBOGWE2DORXIQC
BZMLXBTB63CXPZZPFXM4VLE7IBXPBEZ6YLM4MSNQGJR4L5IBM3OAC
KNVRLSP7X3PHYDUGATMDZJ6NTL5INFTWDEYN535U3FAO7FUN2HOAC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
BI5CXFKCZHWNZQ4VXWN24FD322V55H7GYJHXF4GJ26PPKXIEOLSQC
ZCRK2DJ5VKECRQXZTWT4NUDL2VT5ZHUK7NT6NQPLRJ56TDX5PJSAC
Z63Q4DA5J5TZAC5LN55UD4CLADUMU5Z73TGEVE2YUXCHIST2Y4QAC
JWJGOMVBPZRSP2VSHLFFFDIF2CS6UPBA6AHL7DAJWGBCHAV3PJDQC
QLIDDODO7Q7S2UTKVR2SMRMEAXHRPA5C7SU267EQGV6VJ7UXW5JQC
C4IC7ARZE6R3NY2URQGPES7U2IS35Z6ZGH7DY32L6ULD7JV5IXFQC
3DQXSE4YGFBBDUWK4YEOFWW4UPWILWELFSLP37SL6BERGAZJC5YAC
BBAFAQFU3JBSUQT7XYPKOVKGUKCOVLBLBU2YGAEMEBL52CE4MDNQC
TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC
BZEWV25XPRJVYXP2XOE2HTY45POFP6BWHPDSYFKWYHIPKE6TJVVAC
MHWSAWELF3VEV52PNGAI43GK7OGF5PTYATO4O7ERZ75O7RCRKQRQC
WMHFDQKUDCUGM3R245LLVZ5NNEZSCXFDSTNMVS2O5EFUHHO7HU3AC
S5IPZ6TIY6ICVYGJ25DHWDVAHWTNTTFJUDYE3MV5FVEDXY7J4APQC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
42KM67VFQI4MGYFU52L6SHF7FPXOJLAO6T6MBVFVXEUXCFGWK5TAC
5FHWTG7M6FW4B3I33YI7QSM3OZIB6ZGC6TI6JISSLY5Y43HI56VAC
NQXYTPHC5ZBLJDIC5OVAUIDYYOXLPSGWUVD464ODH4KBHYGRDPPAC
6DNNPEMZGBQDMA7YG4LCTQUVZ7LYPC3R4A2XBYT5SDQ65GYOLJVAC
NQ5X2L66MPWZTR3ANZDBQ5ISPDTJ3AGEYTFQIS437S7MOTXN7A2AC
CCDQMJMMVC6MIZRZ6JSKKCMEDPUGEVVSFPJUOC5WP63J6SX35MXAC
LFJAIJGMBJHZQIYSLDJ57N56WFUY67LVM3GRWOPIDIVNELEQU5EAC
BGJ7P65JV2OFVXMGAJDHV5Y36TR7JOFDWJUZJBHUBD7SCQMDRBEAC
G7ZXJ4RUQB3U5NL2DEWXMTHRRDT7WTONWKTPOOGWFCE46ZWUVLOQC
XE5ZTOA5LPA5CHMWPMOGV3OZCUTFMAS4D2I6MS4XEMJKZWXJHQ2AC
CB7U6IEEN2Z74672EYQQHWTB4GXVNNMAYDRQYAGY6K3QSDYYEHYAC
Y56C5OMUQ5XF2G6DKDV4R5MED44UOIUPTBBQVWQBUHYIXYA5MOZAC
BMHUBADDGIOZRVN4P3O5QKIDUYD4RFWBS7MP5X6LZWAYHUBRVD2QC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
UADYVV3UD5ERJTZZJGY4EUQ4NJ2JSBG7YYUJ75ZRBIXRQXQKOJPAC
HH3HFWVXABJ4IRMN22PPJCREMULZSN6DA7VYKOGECGMNUQTZ5QNQC
HVSBRVFZODK4R7P6EJ7Y7AHZDVRSNSFDHIH3M3DDGG5E26Z4KD5AC
4QYXUNAH54YJPAHB42Z3PPG7MGWGZ3G6Q5V2GTVOAB4MWECG52IAC
76XAPPSY2BXXT7AC45TNI7DL7AP6242DXC45CDIZ6T3RN4ZI3R4AC
A43NYENITQ3BRLUMCFT3T5CM2NFXCIDRX7OCMEAXXGNTJIDDS6YQC
JZCODQCOUBBBPPR4TLOAPIB4BQLDY3ORTJXTWEQSUJVJ7DMK7FVAC
YBWBS2W5H36C46SVIDCHYCUDONUUSBBZLJHCQY2ESO3ZBFNBWWEQC
if (check_transformation_stat_loss(rem_stuff, force,
std::max(-str, 0), std::max(-dex, 0)))
{
if (check_transformation_stat_loss(rem_stuff, force || which_trans == TRAN_PIG,
std::max(-str, 0), std::max(-dex,0)))
{ // would have died to stat loss
if (which_trans == TRAN_PIG)
{ // no easy way around this!
mpr("A dreadful feeling locks you in place!");
if (you.duration[DUR_PARALYSIS]<10)
you.duration[DUR_PARALYSIS]=10;
}
}
}
static void _hogs_to_humans()
{
// Simplification: if, in a rare event, another hog which was not created
// as a part of Kirke's band happens to be on the level, the player can't
// tell them apart anyway.
// On the other hand, hogs which left the level are too far away to be
// affected by the magic of Kirke's death.
int any = 0;
for (int i = 0; i < MAX_MONSTERS; ++i)
{
monsters *monster = &menv[i];
if (monster->type == MONS_HOG)
{
monster->type = MONS_HUMAN;
monster->attitude = ATT_GOOD_NEUTRAL;
monster->flags |= MF_WAS_NEUTRAL;
behaviour_event(monster, ME_EVAL);
any++;
}
HT_LAND, 10, DEFAULT_ENERGY, MONUSE_WEAPONS_ARMOUR, SIZE_MEDIUM
},
{
MONS_KIRKE, '@', YELLOW, "Kirke",
M_UNIQUE | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SEE_INVIS
| M_SPEAKS,
MR_NO_FLAGS,
550, 15, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -5,
{ {AT_HIT, AF_PLAIN, 18}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 16, 0, 0, 110 },
0, 10, MST_KIRKE, CE_CONTAMINATED, Z_NOZOMBIE, S_SHOUT, I_NORMAL,
# an enchantress, lover of Odysseus
Kirke
VISUAL:@The_monster@ splashes a potion @at_foe@.
VISUAL:@The_monster@ throws some @strange@ powder @at_foe@.
@The_monster@ says @to_foe@, "Odis was a nice man, you're awful."
@The_monster@ holds her sides and says @to_foe@, "You'll eat dirt beneath my feet."
# "moly" is a magic herb, mentioned only in Kirke's myth (as an antidote to
# Kirke's potions) and in the English interjection.
@The_monster@ whispers @to_foe@, "Not even holy moly will save you."
@The_monster@ says, "Can we stop fighting? I have some good wine for you..." @player_only@
@The_monster@ shouts @at_foe@, "You pig! I'll make you look the way you deserve."
@_wizard_common_spell_@
@_fake_spell_effect_@
%%%%
strange
strange
weird
mysterious
### END Kirke ###
%%%%