Nightmare pubs may only work in the presence of a living barkeep.
The file /std/barkeep.c has been created for you to inherit a monster
that has all of the pub functions built inside it.
To build a pub, you need only build a room that has a menu of the drinks
you want to serve. An example of how to do that is /d/standard/pub.c
It is almost exactly like a regular room except that it clones a
barkeep and has a function for reading the menu.
The barkeep is in /obj/mon/lars.c
This is what you have to do for your pub:
inherit "std/barkeep"; // this inherits /std/monster
You set the regular functions you need to set for building a monster, plus
set_menu( ({ "firebreather" }), ({ "alcoholic" }), ({ 25 }) );
This function sets the minimum information a pub needs to get
itself working properly. The first argument is an array of
names of pub/restaurant items, the second is an array of what type
of items they are (food, soft drink, alcohlic). The third is
their strength, or healing power. An example of a function that
gives a pub more than one drink is:
set_menu(
({ "firebreather", "special", "ale" }),
({ "alcoholic", "alcoholic", "alcoholic" }),
({ 25, 15, 3 })
);
This makes the pub sell a drink called a firebreather with a strength
of 25, a special, also an alco drink, with a strength of 15, and
an ale, an alco drink with a strength of 3
set_currency("gold"); // This sets the currency for your pub
No other functions are NECESSARY, but they should be
used.
********************************************************************
set_my_mess(
({
"You drink a firebreather.\n",
"You drink a special of the house.\n",
"You drink some ale.\n"
})
);
This function gives a message to the drinker different than the
standard message. If you give a message for one drink or food,
you have to give a message for all of them. They must match up with
the order you put them in set_menu()
set_your_mess(
({
"drinks a firebreather.\n",
"drinks a special of the house.\n",
"drinks some ale.\n",
})
);
This function sets the messages given to observers of the player
who drinks or eats the item in question
set_menu_short( ({ "A firebreather", "A special of the house", "An ale" }) );
This function sets a more interesting short description for the
item in question that the capitalized version of its name.
set_menu_long(
({
"A firebreather from Lars Pub.\n",
"A special of the house from Lars Pub.\n",
"A nice pitcher of ale.\n"
})
);
This function sets the long description for the drinks.
set_empty_container(
({
"shot glass",
"shot glass",
"pitcher"
})
);
This function gives a name for the empty containers of drinks.
If you have food and drink, make sure you put a 0 where the food
objects are.