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 lossif (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 OdysseusKirkeVISUAL:@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_@%%%%strangestrangeweirdmysterious### END Kirke ###%%%%