// /bin/user/_divorce.c
// from the Nightmare mudlib
// allows a high mortal to divorce people
// created by Descartes of Borg
#include <std.h>
inherit DAEMON;
int cmd_divorce(string str) {
string a, b;
object alpha, beta;
if((string)this_player()->query_class() != "monk")
return notify_fail("You have not the authority.\n");
if(!str) {
notify_fail("Divorce whom from whom?\n");
return 0;
}
if(sscanf(str, "%s from %s", a, b) != 2) {
notify_fail("Divorce whom from whom?\n");
return 0;
}
alpha = present(lower_case(a), environment(this_player()));
beta = present(lower_case(b), environment(this_player()));
if(!alpha && beta) alpha = find_player(lower_case(a));
else if(!beta && alpha) beta = find_player(lower_case(b));
if(!alpha || !beta) {
notify_fail("Both parties must be online, with at least one present.\n");
return 0;
}
if(a != (string)beta->query_married()) {
notify_fail(capitalize(b)+" is not married to "+capitalize(a)+".\n");
return 0;
}
if(b != (string)alpha->query_married()) {
notify_fail(capitalize(a)+" is not married to "+capitalize(b)+".\n");
return 0;
}
this_player()->add_mp(-200);
write("You legally divorce "+capitalize(a)+" from "+capitalize(b)+".\n");
shout(capitalize(a)+" and "+capitalize(b)+" are no longer joined in marriage.\n");
alpha->divorce_me();
beta->divorce_me();
if(present("band", alpha)) present("band", alpha)->remove();
if(present("band", beta)) present("band", beta)->remove();
return 1;
}
void help() {
write("Syntax: <divorce [player] from [player]>\n\n"
"Performs a legal divorce of the first player from the second.\n"
"This requires that at least one of the parties be present, and\n"
"that both be online.\n"
);
}