57 lines
1.3 KiB
C
57 lines
1.3 KiB
C
/* /lib/comp/seal.c
|
|
* from the Dead Souls Mud Library
|
|
* Composite component of a closeable and lockable thing
|
|
* Created by Descartes of Borg 961221
|
|
* Version: @(#) seal.c 1.2@(#)
|
|
* Last modified: 96/12/23
|
|
*/
|
|
|
|
#include <lib.h>
|
|
|
|
inherit LIB_CLOSE;
|
|
inherit LIB_LOCK;
|
|
|
|
mixed CanLock(object who, string id){
|
|
mixed tmp = lock::CanLock(who);
|
|
|
|
if( tmp != 1 ){
|
|
return tmp;
|
|
}
|
|
if( !GetClosed() ){
|
|
return "You cannot lock it while it is open.";
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
varargs mixed CanOpen(object who, string id){
|
|
if( GetLocked() ){
|
|
id = "It is locked!";
|
|
return id;
|
|
}
|
|
else return close::CanOpen(who);
|
|
}
|
|
|
|
varargs mixed eventOpen(object who, object tool){
|
|
if( tool && GetLocked() ){
|
|
mixed tmp;
|
|
if(tool && objectp(tool)){
|
|
tmp = eventPick(who, tool->GetKeyName(), tool);
|
|
}
|
|
else tmp = eventPick(who);
|
|
|
|
if( tmp != 1 || GetLocked() ){
|
|
return tmp;
|
|
}
|
|
}
|
|
if( GetLocked() ){
|
|
send_messages(({ "attempt", "find" }), "$agent_name $agent_verb to "
|
|
"open $target_name, but $agent_nominative $agent_verb "
|
|
"it locked.", who, this_object(), environment(who));
|
|
return 1;
|
|
}
|
|
return close::eventOpen(who, tool);
|
|
}
|
|
|
|
void create(){
|
|
}
|