/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
#include "money.h"
#define TEACH_LEVEL 10
#define LEARN_LEVEL 2
#define SKILL "other"

int consider(string str)
{
  object *obs;
  int level, i, ok, dif;

  if (!str)
  {
    notify_fail("Syntax: consider <name(s)>.\n");
    return 0;
  }
 obs = find_match(str, environment(this_player()) );
  if (!sizeof(obs))
  {
    notify_fail("Cannot find "+str+" to consider!\n");
    return 0;
  }
 level = (int)this_player()->query_level();
  for (i=0;i<sizeof(obs);i++)
  {
    if (!living(obs[i])) continue;
    ok = 1;
    dif = (int)obs[i]->query_level() - level;
    if (dif > 100)
    {
      write(obs[i]->query_cap_name()+" is way too tough for you.\n");
      continue;
    }
    if (level > 5)
    {
      dif /= 10;
      if (dif > 2 || dif < -2) dif /= 2;
      if (dif > 5) dif = 5;
      if (dif < -5) dif = -5;
      dif += 5;
      write(obs[i]->query_cap_name()+({ " is too weak to bother attacking.\n",
                               " is some one you look down on.\n",
                               " is a lot weaker than you are.\n",
                               " is weaker than you are.\n",
                               " is slightly weaker than you are.\n",
                               " is about equal with you.\n",
                               " is marginally tougher than you.\n",
                               " is a bit tougher than you.\n",
                               " is slightly tougher than you are.\n",
                               " is tougher than you are.\n",
                               " is a lot tougher than you are.\n",
                               " looks pretty nasty.\n",
                               " is way tougher than you.\n"
                              })[dif]);
    }
    else
      if (dif < 0)
         write(obs[i]->query_cap_name()+" would be an easy target.\n");
      else
      {
        dif /= 2;
        if (dif > 5) dif = 5;
        write(obs[i]->query_cap_name()+({ " is about equal with you.\n",
                                 " is slightly tougher than you are.\n",
                                 " is tougher than you are.\n",
                                 " is a lot tougher than you are.\n",
                                 " looks pretty nasty.\n",
                                 " is into don't think about it region.\n"
                               })[dif]);
      }
  }
  if (!ok)
  {
    notify_fail("Failed to consider "+str+".\n");
    return 0;
  }
  return 1;
}

string help()
{
  return 
"Syntax: consider <monster(s)>\n\n"
+"Consider is the command used to see if the monster you are thinking"
+"about attacking is too high or too low a level for you.  Of course I"
+"know all of you are insane.  But don't complain if the dragon kills you"
+"ok?\n"
+"Examples\n"
+"> consider dragon\n"
+"You would have to insane to attack the dragon!\n"
+"> consider rat"
+"The rat is an easy target.\n";
}

int teach(object ob)
{
  if (this_player()->query_skill(SKILL) < TEACH_LEVEL)
    return -2;
  if (ob->query_skill(SKILL) < LEARN_LEVEL)
    return -1;
  ob->add_known_command("consider");
  return 1;
}