inherit "/std/room";

#include __PATH__(1)"defs.h"

private string look();


protected void create() {
  ::create();

  SetProp(P_INT_SHORT, "Eine schummrige Huette");
  Set(P_INT_LONG, #'look, F_QUERY_METHOD);

  SetProp(P_LIGHT, 1);
  SetProp(P_INDOORS, 1);
  SetProp(P_LIGHT_TYPE, LT_GLOWING);

  AddDetail("spieler", function string() {
    return TP->long();
  });

  AddItem(__PATH__(1)"npc/zwerg7", REFRESH_DESTRUCT);
}

private string look() {
  string msg = "Dies scheint eine Kampfarena zu sein. Hier kann jeder "
    "einem Zwerg was auf die Omme hauen, auch ein Spieler. ";
  object o = present_clone(__PATH__(1)"npc/zwerg7");
  if (objectp(o)) {
    string s = o->get_gehauen();
    if (stringp(s) && s!="")
      return BSLF(
        msg + "Der Zwerg, der hier rumsteht, hat von " + s +
        " auch schon was auf die Omme bekommen.");
    return BSLF(
      msg + "Du kannst dem Zwerg, der hier steht, sicher was auf die Omme "
      "geben.");
  } else
    return BSLF(
      msg + "Es ist aber gerade niemand da.");
}
