/* -*- LPC -*- */
/*
* $Locker: $
* $Id: place_ring.c,v 1.2 1998/01/15 17:08:22 ranma Exp $
* $Log: place_ring.c,v $
* Revision 1.2 1998/01/15 17:08:22 ranma
* a version that works properly with /d/am/broad_way/wedding_store
*
* Revision 1.1 1998/01/06 04:40:23 ceres
* Initial revision
*
*/
#include "path.h"
#include <move_failures.h>
inherit "/std/effect_shadow";
void init() {
add_command("place", "<direct:object> on <indirect:living>");
} /* init() */
void remove_me(object from,object dest){
environment(from)->do_place_ring(from, dest);
remove_this_effect();
} /* remove_me() */
int do_place(object *indir) {
int i;
if (!environment(this_player())->query_property("chapel")) {
return 0;
}
if (environment(player) != this_player()) {
return 0;
}
for (i=0;i<sizeof(indir);i++) {
if (living(indir[i])) {
if ( (int)player->move(indir[i]) == MOVE_OK) {
indir[i]->wear_armour(player);
this_player()->add_succeeded(indir[i]);
call_out("remove_me",2,this_player(),indir[i]);
return 1;
}
write("You can not place the ring on "+
indir[i]->the_short()+". Perhaps "+
indir[i]->query_pronoun()+" is too burdened.\n");
this_player()->add_succeeded_mess(player,"",({ }));
return 1;
}
}
return 0;
} /* do_place() */