Add a new mutation, MUT_SLOW_HEALING, which at level 3 blocks all healing; it can't be acquired randomly, but deep dwarves start with it at level 3. This overrides regeneration, including the god-given kind (Trog's Hand.) Fix mutation listings (hopefully I got this right.) There are still some cases where DD HP shaving is not applied: ability HP costs, Staff of Dispater effect, vampiric draining backlash, Sublimation of Blood spell. Fix dancing weapons leaving mgrd incorrect if their weapon can't be generated. Breaks saves.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9173 c06c8d41-db1a-0410-9941-cceddc491573
S6ADNAPM545WP3FRHCU6UWKX5VEMY5TPSIZYSZ3XE76VCBTVIN5QC KPWRUHZWXG5TEDDAUCRTLGQGTAS27WYWODM3LXQ4E7XLHZEEY27AC RPI3C7RPSAS4E76BMEDHEPOFX2UU2LUEIQNSRDO65HJ7CRPKNDSQC LY2CUJ262FHANYCRHMGFEUBVPBHMA5FJHAUALAU6WVZGJSJ6YELQC BTQJCKM6CDJZE3PMVCHTL7ZEAI4LTT37EYCUEBV7WKCT43I4W2XAC NCPEO4I5DFISIAOOERCB5BN3VQMBGKTYUSASWRFZAH6N3TVRWI4AC CPUDHKEC3NYEKINBNTRDSKH4NLRQHDLGX432SIYLK5YASCE4O3RQC 2FWCWK23M4RXDNZ2WOCHAGSLXNOHLLCMLOZTVJMCOGLC54HMEUXAC 5G724WYHCSV474ZLORSLGN35R6OHTTLUPT3XLB4CXA5AXTBS6MUQC 2BKZYWSXQV43NJVTUHGC3ZPFU5KT3C6YKTXEDW3DR7MKQ4F4UOXQC NQMXQ6OQVUSC7Y7F7IL252QW4A5JED224EECNHWAM4ZZYVNY745AC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC JCWJWGMQIKQGSSFJUQRKNIWW3HBOJSHYDTOPPE5BWOJTIJTDYUTAC ZGUJWUFJ4NFFJ6PGXLFGQWCWBCZHPWGWI44NJHJEVPRG5L36PADQC KATZLWENEIQMKKWIV4ZLXJ5HFUW6SU5K4ZU6NENBOL4XAAVTDUKAC KOSAQXB3KF6VAYTG2TOTHGJBB3F7AL6O32EMCXPVZJ5WHQX6XR5AC S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC QO5ZJWQ3JK3PEGBPTQSAYIPEJEHG2M2KTD74227G5VG7DVXUL3BQC P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC XHFG7QUF4UF7OYU7KWT2EB6XITI2BZDHH2D2FD7YP33C3M4GRBKQC 4D6TLZQDNV5XUZ3YHC4KOUGXJNS5KVZN3X5QRFFLM6X5YHOCPJ5AC ADIVVYTV2MJ3XVRYDNBLPTAEACCNF27XZDCRVZFQEHRHPMZGNITQC HQ5FYPDFIQNNDMKDSGWAAXYIVIRK42B4OBA2LESP2OA5SPKSTLVQC BPZF2HJ53ACONE2EUFZO7QT3OLOOCCIHOBS47CGAHZA3XRC47MIQC 6PNVX6Q45HH733TZDXYBA6BYPJKDMND5BA4N2MP6HA3QVNCEPN2QC F7Q7QRZACTDPP6KH3AB5J6B6B5PRVV4FURTOIGXHRHWNVSQT3TVAC QHAYBZTRPVJMK55WXT3F63CNRSAEVN3CQAAG42GCJTONLXQLNNNQC BI5CXFKCZHWNZQ4VXWN24FD322V55H7GYJHXF4GJ26PPKXIEOLSQC TRCCLE5RJ4VJULBOWOI2WC3RJU7WTEGS7RRQTDQL6W5UU246LKTQC VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC SUIDQIK6BZDJSYSFG6AK5A6K76EKGPKBKGGRCIU2AN6XOTCUHOBAC RWCCZ64BG3HSOTM54ANIGENC3F3AIR42LJFRYSAKMCPCIUSOZY5QC QG7MKYZECIRDJJZKVRFI6XTCH42GTKA55BFIWPJBQZ27CZVLUJDQC UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC JDM5R3HYGXKQKZWY35QZ2KOB24TFZ3FW2PCNXCRCMWG72AZC5ZXQC C2PRXJYHDRF2642VDAUY76HJKCPQFGWDI6AM3SMCMYCHGWYDQXQQC 33MBISZXMRGZMQ37PVINHKNWAXHYPHURMRG6ST7O2SKIRGGBHI2AC WAO43LWOVQKOXAKIML5ZA6UKSORMPXAMGYFPRVK2DNMQSPLC5JGQC S4BRP4VHB23F2FCC6BXNAN2MZRVUGW7QMXUEOAVZVGFXKXJPVLLQC YPL32ZYVNBA2OSLEUGSAGSDJ5U2NKYMUHOL7GYSE2F4FCFZI2PTAC ORZ37JMK7WY6FLTYZGC75D3POVCAZMZ7RCZIY4ZL2EGPXBMBCKJQC PO3IATZV4JX3I3522UAGF53ZLZ4FW7C2J32Z23PEWQVHGGEUO7SAC HCQBAKIE4MXJ3XID6CECTZGNWYC33C3642KOKNKO37VVRDMJ2T4QC JPGW2YFZDRPAWPG4VAKOOB5SCJA2QSSLR5JJP7ULRBX3LLGI7PUAC RB3ZDZXUZ3KVU5C4MFWTQB4J3PCQ5IQS4UVUBRS3TLSPFKBWNFDAC M2HMYLYYXSP5XGX6MCI77IT6UW5K4YSEUJWHPQPYXVSW5L36BJ2AC LJSES3YZH4RECLXVBRJXS54NJOLWXVBKV5GXBPVQBLRCYXX23X4AC 3U54KX4JPCEBGC3USUQJVX35HBEWV6DX6ZZ4RV7GT3HBX7LMLKPAC LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC MCQZ4HEOF65FEVWUEAMO2765JYMJPKXQ454HCCWWK3JUYEUSUXTAC PGTE3JC4J5U536IJTCJFXTUOSRE73JXZJINWAGCANOQOCGC7J6AAC WF3F2I73VYD5BGLTUC3YWXZQ3CN2H2ZPBH2R7WJ5WQLHJSUYGU5QC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC 6HB4TWKSEWOXTXUJINB4KKVKPHYPKDOAC56H7OAAXASIBAGARX3AC JE5K2LGM25NQQ3VIBZ25WJEQ4AJJVFLZWOH5RLNX66NVGQWI3YMQC 3UDBQWJX7TIIV3WJWCOIETL7NYQ4GPEU5SUXA247SUZXNEAQQMBQC MLZSEZWNNZMSIDQNAAIOJJR4K7VSVJICL5SAGHD3ROM7SYDVZABAC 7CMQLE4XIFMWDEUZAOKIKDW7BHAJCK5S26APMEZ6TEFEH63TEZ6AC FBK5ECMQ6HJSQSN7C3DICKJIRJ3CSO3CHCQ3ONPBKLLSHDGPBQ7QC 4BSWRAIA7TLRFRZ4RMLOVDHWDWBGJCAQZUOPXPJYW6OJY6B3HPLQC POKKD4OOQZD4PMEITE5SNPXBNRJNNEJ5DJLRHF5PSF4G4MCYFM3AC EWFP6RFDHTEGD6SX36LYRLQB3APIKGAHNBKWPD56RGYBUE4FWJUQC AQ36MO7VNGSGQ5KK7JCQA2WEHUELAFLSU2QBUWROVJFOTPMGFGMQC 3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC 63FVHSCMJNAYTX3O2MIWNOOSRBTCZCVQE5DWJQFF5P4GX6QRUXDAC 4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC GA7RSKRL2B7OYL4NWCCMULF2QXJ27NALF7KWTSVXY272NS5KFGJQC KFWZ6CK4MZRLZN7YCZV32OAJBB5XVEJQR6SR474UQX2MJGXI4F7AC HIRKGUMNJPWKSVTR6TVBPD3MWNA63CEHCLCIPWEMGDFHVB3NPLDQC PYS7ZCTOPYGLE6YQ6BJKHV7UI43U7GFVVFVSXBQAYMG5AIJL5VDQC H6ZPCZ7HN5UZTOS6QFAE4WUJR6BCDU4OB7ONQ7ELXIK65ASPJOTAC UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC Q3XHNSHW6FI4JCXSEABATRFBJPMCF7PXNG2K6ZQTRRPVMIZFHUBQC 3PBG6FJ6WGSR4UM3I7UQUYYCSYU3UBCKCIKYKUEEANIK72TUL4XAC SXUKGEXMGRRN6UO2GJW4HSVU5TSUNUHIHBMMF7CAG7QMLKZYWTKQC 3FBKOX4Y5QYPMBOCSAMHNZXCY7Z75YDQDL4EJZHZIGDXL7RMZ7TAC HQSI2RK5QGNSOR5Y67GZDK4ZWFZ5DSRPASXAV4VHYVB5TUXFZWJQC FUYLCFDAEAC2HFZF2SXTM4ZWVGT5LVSNHNDSZSUXNHS26XXPRRVAC OEHJJ5X5CBOHTXISZLJHVLCAPH77RYSVKKBGW3US2GGXZMZJ5CEQC WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC // Recoded to answer whether an UNDEAD_STATE is// barred from a particular spell passed to the// function. Note that the function can be expanded// to prevent memorisation of certain spells by// the living by setting up an US_ALIVE case returning// a value of false for a set of spells ... might be// an idea worth further consideration. - 12mar2000 {dlb}bool undead_cannot_memorise(spell_type spell, char being)
bool you_cannot_memorise(spell_type spell)
{ // SP_DEEP_DWARF (39)110, // SK_FIGHTING120, // SK_SHORT_BLADES100, // SK_LONG_BLADES130, // SK_UNUSED_190, // SK_AXES110, // SK_MACES_FLAILS120, // SK_POLEARMS110, // SK_STAVES90, // SK_SLINGS180, // SK_BOWS90, // SK_CROSSBOWS120, // SK_DARTS120, // SK_THROWING90, // SK_ARMOUR90, // SK_DODGING70, // SK_STEALTH110, // SK_STABBING90, // SK_SHIELDS80, // SK_TRAPS_DOORS120, // SK_UNARMED_COMBAT100, // undefined100, // undefined100, // undefined100, // undefined100, // undefined(120 * 130) / 100, // SK_SPELLCASTING120, // SK_CONJURATIONS120, // SK_ENCHANTMENTS110, // SK_SUMMONINGS80, // SK_NECROMANCY85, // SK_TRANSLOCATIONS120, // SK_TRANSMUTATION120, // SK_DIVINATIONS110, // SK_FIRE_MAGIC110, // SK_ICE_MAGIC170, // SK_AIR_MAGIC60, // SK_EARTH_MAGIC130, // SK_POISON_MAGIC(80 * 75) / 100, // SK_INVOCATIONS(60 * 75) / 100, // SK_EVOCATIONS},
case SP_DEEP_DWARF:hp_adjust++;if (you.experience_level == 14){mpr("You feel somewhat more resistant.",MSGCH_INTRINSIC_GAIN);perma_mutate(MUT_NEGATIVE_ENERGY_RESISTANCE, 1);}if (!(you.experience_level % 4)){modify_stat(coinflip() ? STAT_STRENGTH: STAT_INTELLIGENCE, 1, false,"level gain");}break;
if (you.duration[DUR_REGENERATION]&& (you.species != SP_VAMPIRE || you.hunger_state != HS_STARVING)){_output_expiring_message(DUR_REGENERATION,you.disease ? "recuperating from your illness": "regenerating");
if (!no_heal)_output_expiring_message(DUR_REGENERATION, "regenerating");
if (dam != INSTANT_DEATH && you.species == SP_DEEP_DWARF){// Deep Dwarves get to shave _any_ hp loss.int shave = 1 + random2(2 + random2(1 + you.experience_level / 3));#ifdef DEBUG_DIAGNOSTICSmprf(MSGCH_DIAGNOSTICS, "HP shaved: %d.", shave);#endifdam -= shave;if (dam <= 0)return;}
}// Deep Dwarves get healing potions and wand of healing (3).if (you.species == SP_DEEP_DWARF){_newgame_make_item(-1, EQ_NONE, OBJ_POTIONS, POT_HEALING, -1, 2);_newgame_make_item(-1, EQ_NONE, OBJ_POTIONS, POT_HEAL_WOUNDS, -1, 2);_newgame_make_item(-1, EQ_NONE, OBJ_WANDS, WAND_HEALING, -1, 1, 3);
if (you.strength < you.max_strength && one_chance_in(100))restore_stat(STAT_STRENGTH, 0, false, true);
// With slow healing 3, you have no stat recovery.if (x_chance_in_y(3 - you.mutation[MUT_SLOW_HEALING], 3)){if (you.strength < you.max_strength && one_chance_in(100))restore_stat(STAT_STRENGTH, 0, false, true);