/* here is where all of the specials are when a mobile dies */
switch (pnum(victim)) {
#ifdef LOCMIN_COTTAGE
case MOB_COTTAGE_RAMSES:
sendf(attacker, "You have destroyed the evil Pharaoh Ramses the IV!\n");
set_quest(attacker, Q_RAMSES);
break;
#endif
#ifdef LOCMIN_RUINS
case MOB_RUINS_MARGOYLE:
sendf(attacker, "As the monster collapses over, his horn falls off.\n");
setoloc (OBJ_RUINS_HORN, ploc (attacker), IN_ROOM);
break;
#endif
#ifdef LOCMIN_NIBELUNG
case MOB_NIBELUNG_FAFFNER:
sendf(attacker,"Faffner is DEAD! R.I.P.!!!\n");
set_quest(attacker, Q_FAFFNER);
break;
#endif
#ifdef LOCMIN_DOOM
case MOB_DOOM_DOOM:
sendf(attacker,"Doom is DEAD! R.I.P.!!!\n");
set_quest(attacker, Q_DOOM);
break;
#endif
#ifdef LOCMIN_ROME
case MOB_ROME_JUPITER:
sendf(attacker, "Jupiter is DEAD! R.I.P.!!!\n");
set_quest(attacker, Q_JUPITER);
break;
#endif
#ifdef LOCMIN_FANTASY
case MOB_FANTASY_SILVERMONSTER:
sendf (attacker, "The wall to the west suddenly collapses as the "
"monster lets out its\nlast breath..\n");
setobjstate (OBJ_FANTASY_CAVEWALLOUT, 0);
break;
case MOB_FANTASY_JULIUS:
sendf (attacker, "You grab Julius and order him to tell you where "
"Lord Glaive is as he\nlets out his last breath.. "
"Julius waves his hands and you start to\nfeel faint.. you "
"awaken finding yourself in a different place..\n");
setploc (attacker, LOC_FANTASY_TREE1);
setup_globals (attacker);
trapch (ploc (attacker));
setup_globals (victim);
break;
#endif
#ifdef LOCMIN_CAVE
case MOB_CAVE_DIAMAR:
if (iswornby(OBJ_CAVE_WHISTLE, max_players+MOB_CAVE_DIAMAR)) {
sendl(ploc(victim), "%s crushes the whistle as he falls to the floor.\n",
pname(victim));
destroy(OBJ_CAVE_WHISTLE); }
break;
case MOB_CAVE_KEEPER:
if (ploc(max_players+MOB_CAVE_KEEPER) == LOC_CAVE_ARMORY) {
sendl(ploc(victim), "The Keeper heaves his last breath as he falls against"
" the north wall,\ncausing it to shift.\n");
setobjstate(OBJ_CAVE_HOLE, 0); }
break;
#endif
#ifdef LOCMIN_VOLCANO
case MOB_VOLCANO_QUEEN: {
sendf(attacker, "\nBy killing the Queen, you have ended her reign of terror "
"and freed the people\nof Yorrin!\n" );
set_quest( attacker, Q_VOLCANO );
break;
}
#endif
#ifdef LOCMIN_PYRAMID
case MOB_PYRAMID_NEFERTERI: {
sendf(attacker, "Through courage and a bravery of spirit, you have overcome the &+Lcurse&N\nof Neferteri.\n" );
broad( "&+BThe people in the desert rejoice as the &+Lcurse &+Bof Neferteri is lifted from\n&+Bthe lands forever.\n" );
set_quest( attacker, Q_MIRAGE );
break;
}
#endif
#ifdef LOCMIN_OAKTREE
case MOB_OAKTREE_SAPLING: {
send_msg(sendloc(attacker), 0, LVL_MIN, LVL_MAX, NOBODY, NOBODY,
"The Sapling bursts into flames and crumbles to ashes.\n"
"A silvery object falls to the ground.\n");
create(OBJ_OAKTREE_SPIKE);
setoloc(OBJ_OAKTREE_SPIKE, ploc(attacker), IN_ROOM);
break;
}
#endif
#ifdef LOCMIN_THYRANNEN
case MOB_THYRANNEN_DRAKNOR:
if (pscore (max_players+MOB_THYRANNEN_BROTHER1) == attacker &&
pscore (max_players+MOB_THYRANNEN_BROTHER2) == attacker) {
sendf(attacker, "With a hateful look on his face \001p%s\003 tells you "
"'Power such as mine is\nincomprehensible to the likes of you. "
"I will return, and make you learn what\nPAIN is!'\n",
pname(victim));
send_msg(sendloc(attacker), 0, LVL_MIN, LVL_MAX, attacker, victim,
"As \001p%s\003 delivers the killing blow to \001p%s\003, "
"\001p%s\003 curses \001p%s\003 with unending pain in "
"\001p%s\003's next life\n",
pname(attacker), pname(victim), pname(victim),
pname(attacker), his_or_her(attacker));
set_quest (attacker, Q_DRAKNOR); }
else {
sendf(attacker, "Draknor laughs, and disappears in a wall of "
"flame.\nIt seems you have unwittingly allowed "
"Draknor a means to escape...for now.\n");
}
break;
#endif
#ifdef LOCMIN_ABYSS
case MOB_ABYSS_GUXX: {
sendf(attacker, "Guxx is DEAD! R.I.P.!!!\n");
set_quest (attacker, Q_GUXX);
break; }
#endif
default: /* These go in default, cause they're handled very differently. */
#ifdef LOCMIN_EFOREST
if ((q = victim - max_players) == MOB_EFOREST_LICH)
x = max_players + MOB_EFOREST_ASMODEUS;
else if (q == MOB_EFOREST_ASMODEUS)
x = max_players + MOB_EFOREST_LICH;
else
x = -1;
if (x >= 0) {
if (alive (x) == -1) {
send_msg(DEST_ALL, MODE_NODEAF, LVL_MIN, LVL_MAX, NOBODY, NOBODY,
"A Great Evil has departed from the land.\n");
if (pscore (x) == attacker) {
sendf(attacker, "You have avenged the Elven Forest!\n");
set_quest (attacker, Q_EFOREST);
}
}
}
#endif
#ifdef LOCMIN_ZODIAC
if ( (q = victim - max_players) == MOB_ZODIAC_INFINITY)
x = max_players +MOB_ZODIAC_ETERNITY;
else if ( (q = MOB_ZODIAC_ETERNITY) )
x = max_players + MOB_ZODIAC_INFINITY;
else x = -1;
if( x>=0 ){
if( alive (x) == -1 && pscore(x) ==attacker){
set_quest(attacker, Q_ZODIAC);
}
}
#endif
break;
} /* end of switch statement */