// Inheritable weapon object. For now.
// Mobydick@TMI-2, 9-11-92
#include <move.h>
#include <mudlib.h>
inherit OBJECT ;
string *vb, *vb2 ;
void unwield(int silent);
int move (mixed dest) {
object fellow ;
fellow = environment(this_object()) ;
if (fellow) {
if (query("wielded")) {
unwield(0);
}
}
return ::move(dest) ;
}
int remove() {
object fellow ;
fellow = environment(this_object()) ;
if (fellow) {
if ((object)fellow->query("weapon1")==this_object() ||
(object)fellow->query("weapon2")==this_object()) {
unwield(0);
}
}
return ::remove() ;
}
void unwield(int silent) {
object firstwep, secondwep, obj ;
string str ;
object fellow, wep ;
string name ;
int Class ;
fellow = environment(this_object()) ;
if (fellow) {
firstwep = fellow->query("weapon1") ;
secondwep = fellow->query("weapon2") ;
obj = this_object() ;
obj->set("wielded",0) ;
if(!silent)
tell_object (fellow,"You stop wielding "+obj->query("short")+".\n") ;
if(fellow && environment(fellow) && !silent)
tell_room (environment(fellow),fellow->query("cap_name")+" stops wielding "+obj->query("short")+".\n",fellow) ;
if (obj==firstwep) {
if (secondwep) {
fellow->set("weapon1",secondwep) ;
fellow->set("weapon2",0) ;
Class = secondwep->query("weapon") ;
fellow->set("attack_strength",Class) ;
} else {
fellow->set("weapon1",0) ;
fellow->set("attack_strength",0) ;
}
} else {
fellow->set("weapon2",0) ;
Class = firstwep->query("weapon") ;
fellow->set("attack_strength",Class) ;
}
}
str = obj->query("unwield_func") ;
if (str) call_other(obj,str) ;
}
void set_verbs(string *verbs) {
int i ;
string w1, w2 ;
vb = verbs ;
vb2 = allocate(sizeof(vb)) ;
for (i=0;i<sizeof(verbs);i++) {
if (sscanf(verbs[i],"%s %s",w1,w2)==2) {
vb2[i]=w1+"s "+w2 ;
} else {
vb2[i]=verbs[i]+"s" ;
}
}
}
void set_verbs2 (string *verbs) {
vb2 = verbs ;
}
string *get_verb() {
int i ;
i = random(sizeof(vb)) ;
return ({ vb[i], vb2[i] }) ;
}