diff -pruN slashem-0.0.7E7F1-official-release/src/artifact.c slashem-0.0.7E7F1-YAFM/src/artifact.c --- slashem-0.0.7E7F1-official-release/src/artifact.c 2005-07-02 09:24:44.000000000 +0200 +++ slashem-0.0.7E7F1-YAFM/src/artifact.c 2005-10-26 00:54:49.000000000 +0200 @@ -1333,6 +1333,13 @@ int dieroll; /* needed for Magicbane and *dmgptr = 0; return ((boolean)(youattack || vis)); } + if (mdef->data==&mons[PM_CHROMATIC_DRAGON]) + { + pline("%s cuts only a shallow wound in the thick skin of %s neck.", + wepdesc, s_suffix(mon_nam(mdef))); + /* The normal damage is still done. */ + return TRUE; + } if (noncorporeal(mdef->data) || amorphous(mdef->data)) { pline("%s slices through %s %s.", wepdesc, s_suffix(mon_nam(mdef)), @@ -1340,8 +1347,13 @@ int dieroll; /* needed for Magicbane and return TRUE; } *dmgptr = 2 * mdef->mhp + FATAL_DAMAGE_MODIFIER; - pline(behead_msg[rn2(SIZE(behead_msg))], - wepdesc, mon_nam(mdef)); + if(mdef->data==&mons[PM_ETTIN] + ||mdef->data==&mons[PM_ETTIN_ZOMBIE]) + pline("%s goes through both necks of %s at once like butter!", + wepdesc, mon_nam(mdef)); + else + pline(behead_msg[rn2(SIZE(behead_msg))], + wepdesc, mon_nam(mdef)); otmp->dknown = TRUE; return TRUE; } else { @@ -1363,8 +1375,13 @@ int dieroll; /* needed for Magicbane and wepdesc, body_part(NECK)); return TRUE; } - pline(behead_msg[rn2(SIZE(behead_msg))], - wepdesc, "you"); + if(mdef->data==&mons[PM_ETTIN] + ||mdef->data==&mons[PM_ETTIN_ZOMBIE]) + pline("%s goes through both your necks at once like butter!", + wepdesc); + else + pline(behead_msg[rn2(SIZE(behead_msg))], + wepdesc, "you"); otmp->dknown = TRUE; /* Should amulets fall off? */ return TRUE; diff -pruN slashem-0.0.7E7F1-official-release/src/do_name.c slashem-0.0.7E7F1-YAFM/src/do_name.c --- slashem-0.0.7E7F1-official-release/src/do_name.c 2005-07-02 09:24:44.000000000 +0200 +++ slashem-0.0.7E7F1-YAFM/src/do_name.c 2005-10-26 00:54:49.000000000 +0200 @@ -892,6 +892,7 @@ static const char * const bogusmons[] = "hologram", "jester", "attorney", "sleazoid", "killer tomato", "amazon", "robot", "battlemech", "rhinovirus", "harpy", "lion-dog", "rat-ant", "Y2K bug", + "catoblepas", "phoenix", "amphisbaena", "pink oliphaunt", /* misc. */ "grue", "Christmas-tree monster", "luck sucker", "paskald", "brogmoid", "dornbeast", /* Quendor (Zork, &c.) */ @@ -901,7 +902,8 @@ static const char * const bogusmons[] = /* Rogue */ "creeping coins", /* Wizardry */ "siren", /* Greek legend */ - "killer bunny", /* Monty Python */ + "killer bunny", "black knight" /* Monty Python */ + "Trogdor the Burninator", /* Homestar runner */ "rodent of unusual size", /* The Princess Bride */ "Smokey the bear", /* "Only you can prevent forest fires!" */ "Luggage", /* Discworld */ diff -pruN slashem-0.0.7E7F1-official-release/src/eat.c slashem-0.0.7E7F1-YAFM/src/eat.c --- slashem-0.0.7E7F1-official-release/src/eat.c 2005-07-02 09:24:44.000000000 +0200 +++ slashem-0.0.7E7F1-YAFM/src/eat.c 2005-10-26 00:54:49.000000000 +0200 @@ -1615,6 +1615,11 @@ eatcorpse(otmp) /* called when a corpse if (otmp->odrained && otmp->oeaten < drainlevel(otmp)) otmp->oeaten = drainlevel(otmp); } else if (!is_vampire(youmonst.data)) { + if (mnum==PM_COCKATRICE || mnum==PM_CHICKATRICE) + pline("Hmm... tastes like chicken."); + else if (mnum==PM_FLOATING_EYE && u.umonnum==PM_RAVEN) + You("peck the eyeball with delight."); + else { pline("%s%s %s!", !uniq ? "This " : !type_is_pname(&mons[mnum]) ? "The " : "", food_xname(otmp, FALSE), @@ -1622,6 +1627,7 @@ eatcorpse(otmp) /* called when a corpse (!carnivorous(youmonst.data) && herbivorous(youmonst.data)) : (carnivorous(youmonst.data) && !herbivorous(youmonst.data))) ? "is delicious" : "tastes terrible"); + } } #ifdef EATEN_MEMORY diff -pruN slashem-0.0.7E7F1-official-release/src/end.c slashem-0.0.7E7F1-YAFM/src/end.c --- slashem-0.0.7E7F1-official-release/src/end.c 2005-07-02 09:24:44.000000000 +0200 +++ slashem-0.0.7E7F1-YAFM/src/end.c 2005-10-26 00:54:49.000000000 +0200 @@ -1087,10 +1087,8 @@ boolean ask; } putstr(klwin, 0, buf); } - /* - * if (Hallucination) - * putstr(klwin, 0, "and a partridge in a pear tree"); - */ + if (Hallucination && (ntypes>10)) + putstr(klwin, 0, "and a partridge in a pear tree"); if (ntypes > 1) { putstr(klwin, 0, ""); Sprintf(buf, "%ld creatures vanquished.", total_killed); diff -pruN slashem-0.0.7E7F1-official-release/src/pray.c slashem-0.0.7E7F1-YAFM/src/pray.c --- slashem-0.0.7E7F1-official-release/src/pray.c 2005-07-02 09:24:44.000000000 +0200 +++ slashem-0.0.7E7F1-YAFM/src/pray.c 2005-10-26 00:54:49.000000000 +0200 @@ -1481,7 +1481,8 @@ dosacrifice() done(ESCAPED); } else { /* super big win */ adjalign(10); -pline("An invisible choir sings, and you are bathed in radiance..."); + pline("%s sings, and you are bathed in radiance...", + Hallucination?"The fat lady":"An invisible choir"); godvoice(altaralign, "Congratulations, mortal!"); display_nhwindow(WIN_MESSAGE, FALSE); verbalize("In return for thy service, I grant thee the gift of Immortality!");