/* Written by Valodin Jan 16, 1993
Queries the WC of a player and displays it.
*/
#include <std.h>
inherit DAEMON;
int cmd_wc(string str)
{
object *weapons;
string *wielded_by;
string *wielding_limbs;
object wtemp;
object ob;
int i, wlsize, z;
if((!str) || !(ob = to_object(str)))
{
notify_fail("Find WC of what object? See \"help format\"\n");
return 0;
}
if(!living(ob))
{ /* must be a weapon */
write("Querying " + str + " " + ob->query_short() + "\n");
write("WC: " + ob->query_wc() + "\n");
return 1;
}
weapons = ({});
wielded_by = ({});
wielding_limbs = ob->query_wielding_limbs();
wlsize = sizeof(wielding_limbs);
for(i = 0; i < wlsize; i++)
{
if(wtemp = ob->query_weapon(wielding_limbs[i]))
{
if((z = member_array(wtemp, weapons)) == -1)
{
weapons += ({ wtemp });
wielded_by += ({ wielding_limbs[i] });
}
else
wielded_by[z] += (" and " + wielding_limbs[i]);
}
}
write("Querying " + str + " " + ob->query_name() + "\n");
switch(sizeof(weapons))
{
case 0: write("No weapons wielded.\n");
return 1;
case 1: write("1 weapon wielded: \n");
break;
default: write(sizeof(weapons) + " weapons wielded: \n");
}
wlsize = sizeof(weapons);
for(i = 0; i < wlsize; i++)
write(weapons[i]->query_wc() + " " + weapons[i]->query_short() +
" wielded in " + wielded_by[i] + "\n");
return 1;
}
int help()
{
write("Command: wc\nSyntax: wc <object>\n" +
"Shows the weapon class of a weapon, or weapon\n" +
"classes of all the weapons wielded by a living\n" +
"object. See \"help format\" to see how to specify\n" +
"objects.\n" +
"See also: ac, format, I\n");
return 1;
}