inherit "/std/room";

#include __PATH__(1)"defs.h"


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

  SetProp(P_INT_SHORT, "Eine schummrige Huette");
  SetProp(P_INT_LONG, BSLF(
    "Diesmal kann man hier was anfassen, riechen und lauschen."));

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

  AddTouchDetail("boden", BSLF(
    "Ja, der Boden fuehlt sich sehr bodig an."));

  AddSmells(SENSE_DEFAULT, BSLF(
    "Es riecht leicht nach Eigenlob."));
  AddSmells("eigenlob", BSLF(
    "Man koennte sogar sagen, es riecht unangenehm. Vermutlich, weil sonst "
    "niemand das Tutorial lobt."));
  AddSounds(SENSE_DEFAULT, BSLF(
    "Du kannst nur Dein eigenes erstauntes Schweigen hoeren. Das dafuer "
    "um so deutlicher."));
  AddSounds("schweigen", BSLF(
    "Eigentlich wuerde ich das hier nicht beschreiben, auch wenn es als "
    "Substantiv beim einfachen Riechen vorkam. Denn Schweigen kann man nun "
    "wirklich nicht gut hoeren. Genauer gesagt hoert man halt nichts - "
    "und das wird wirklich prima von der Default-Meldung abgedeckt."));
}
