#include <lib.h>
mixed direct_boobytrap_obj_with_obj(){
return 1;
}
mixed indirect_boobytrap_obj_with_obj(){
object env = environment();
if(!env || env != this_player()){
return "#You don't have that!";
}
return 1;
}
mixed direct_disarm_obj(){
if(sizeof(this_object()->FoundTraps())) return 1;
return 0;
}
varargs mixed eventDisarm(mixed arg){
int disarm_score = 0;
int failure = 0;
int wisdom_score = this_player()->GetStat("wisdom")["level"];
mapping Traps = this_object()->FoundTraps();
object trap = keys(Traps)[0];
write("You begin the disarming attempt.");
say(this_player()->GetCapName()+" begins the disarming attempt.");
disarm_score += this_player()->GetStat("luck")["level"];
disarm_score += this_player()->GetStat("intelligence")["level"];
disarm_score += this_player()->GetStat("coordination")["level"];
if(disarm_score > Traps[trap]["level"]) return trap->eventDisarm(this_player());
failure = (Traps[trap]["level"] - disarm_score);
if( failure > this_player()->GetStat("luck")["level"]){
return trap->SpringTrap(this_player());
}
if(failure < wisdom_score){
write("You fail to disarm the trap.");
}
if(failure > (wisdom_score + 100)){
write("You successfully disarm the trap!");
}
return 1;
}