mud/lib/domains/town/obj/waterwheel.c
2020-09-06 05:43:07 -07:00

68 lines
1.6 KiB
C

#include <lib.h>
#include <vendor_types.h>
inherit LIB_ITEM;
inherit LIB_TURN;
static int turned = 0;
object Turner;
void create(){
::create();
SetKeyName("waterwheel");
SetId( ({"wheel"}) );
SetAdjectives( ({"water", "large","metal","iron"}) );
SetShort("a large iron wheel embedded in the bedrock");
SetLong("This is an iron wheel embedded in the bedrock.");
SetMass(20);
SetBaseCost("silver",10);
SetVendorType(VT_TREASURE);
SetInvis(0);
SetPreventGet("It's planted firmly in the bedrock.");
SetNoCondition(1);
set_heart_beat(1);
SetUnique(1);
}
void init(){
::init();
}
varargs mixed CanTurn(object who, object what){
if(turned){
return "#The wheel turns no further.";
}
else return 1;
}
int eventTurn(object who){
object pipe, env = environment();
if(env) pipe = present("water pipe", env);
if(!who) who = this_player();
if(!turned){
if(pipe){
write("You turn the wheel.");
say(who->GetName()+" turns the wheel.");
if(!pipe->GetFlowing()){
tell_room(env,"Water starts pouring from the pipe.");
}
pipe->openpipe(1);
turned = 1;
Turner = who;
}
else {
write("The wheel turns loosely to no apparent effect.");
say(who->GetName()+" turns the wheel to no apparent effect.");
}
}
else {
write("Nothing happens.");
say(who->GetName()+" tries to turn the wheel. Nothing happens.");
}
return 1;
}
object GetTurner(){
return Turner;
}