mud/lib/domains/Praxis/obj/mon/police.c
2020-09-06 05:43:07 -07:00

43 lines
896 B
C

#include <lib.h>
#include ROOMS_H
inherit LIB_SENTIENT;
private object __Target;
void go_home();
void init() {
::init();
add_action("cmd_surrender", "surrender");
}
void heart_beat() {
if(!__Target || __Target->query_ghost()) go_home();
::heart_beat();
if(__Target && environment(__Target) != environment(this_object()))
go_home();
}
void set_target(object ob) {
if(!ob) return;
__Target = ob;
eventMove(environment(ob));
ob->add_follower(this_object());
command("kill "+ob->query_name());
}
void go_home() {
__Target = 0;
eventMove("/domains/Praxis/sheriff");
}
static int cmd_surrender(string unused) {
if(this_player() != __Target) return 0;
this_player()->cease_all_attacks();
this_player()->move("/domains/Praxis/sheriff");
"/domains/Praxis/sheriff"->add_prisoner(this_player());
go_home();
return 1;
}