Beispieldateien

Ein Bierfass

----------



/* Ein Bierfass fuer unsere bayerischen Freunde :)
**
** Fiona 8/96
*/

inherit "std/thing";

#include <properties.h>

int inhalt;
string wieviel();

void create() 
{
  if (!clonep()) return;
  ::create();

  Set(P_LONG, #'wieviel, F_QUERY_METHOD);
  SetProp(P_NAME, "Bierfass");
  SetProp(P_PLURAL, "Bierfaesser");
  SetProp(P_GENDER, NEUTER);
  SetProp(P_NOGET, "Das ist viiiel zu schwer!\n");
  inhalt = 10000;
  AddId(({"fass","bierfass"}));
}

string wieviel() 
{
  return "Es enthaelt "+to_string(inhalt)+"ml Bier.";
}


int GiveLiquid(string id, int am, object ob) 
{
  int given;

  if (id != "bier" && id != "bierfass" && id != "fass") return 0;

  if (!inhalt) 
  {
    write("Das Fass ist leider schon alle.\n");
    return -2;
  }

  if (am > inhalt) am = inhalt;
  given = ob->AddLiquid(am, ({"schaum", "bier"}), 
    ({"Schaum", "Bier"}), am/10, am/150, am/37, am/200);

  if (given > 0) 
  {
    write("Du zapfst etwas Bier.\n");
    say(this_player()->name(WER, NAME_DEF|NAME_CAP)+" zapft etwas Bier.\n");
    inhalt -= given;
  }

  return given;
}

void reset() 
{
  if (!environment()) return;
  if (inhalt<10000) 
  {
    tell_room(environment(),"Das Fass fuellt sich aus...\n");
    inhalt = 10000;
  }
  // Immer das ererbte reset() mit aufrufen!
  ::reset();
}