/* /verbs/items/bury.c * From the Dead Souls Mud Library * Buries objects where no one can find them * Created by Descartes of Borg 951030 */ #include #include #include inherit LIB_VERB; static void eventBury(object who, object tool, object what, object check) { if( !who || environment(who) != check ) { return; } if( !tool || (environment(tool) != who) ) { who->eventPrint("You have lost your digging equipment."); return; } tool->eventBuryWith(who, what); } varargs static void eventPrepareBury(object who, object tool, object what) { function f = (: eventBury($(who), $(tool), $(what),environment($(who))) :); if( who->GetInCombat() ) { send_messages("start", "$agent_name $agent_verb to bury " + "with " + tool->GetShort() + ".", who, 0, environment(who)); who->SetAttack(0, f, ROUND_OTHER); } else { evaluate(f); } } static void create() { verb::create(); SetVerb("bury"); SetErrorMessage("Bury what with what?"); SetRules("OBJ with OBJ", "STR with OBJ"); SetHelp("Syntax: \n\n" "Allows you to use a digging tool to bury things.\n\n" "See also: dig"); } mixed can_bury_str_with_obj() { if( this_player()->GetParalyzed() ) { return "You cannot do anything!"; } if( this_player()->GetPosition() != POSITION_STANDING ) { return "You can only bury things while standing!"; } return this_player()->CanManipulate(); } mixed can_bury_obj_with_obj() { return can_bury_str_with_obj(); } mixed do_bury_str_with_obj(string str, object tool) { eventPrepareBury(this_player(), tool); return this_player()->CanManipulate(); } mixed do_bury_obj_with_obj(object what, object tool) { eventPrepareBury(this_player(), tool, what); return 1; }