blob: 570990e048077e4345b811ba784934461813840c [file] [log] [blame]
#pragma strict_types
#pragma combine_strings
#pragma no_shadow
#pragma no_inherit
inherit "std/thing";
#include <properties.h>
#include <language.h>
#include <wizlevels.h>
private int gelesen;
private string unterschrieben;
static string text();
public void create()
{
if ( !geteuid(this_object()) )
call_out( "remove", 0 );
if ( !IS_WIZARD(geteuid(this_object())) )
call_out( "remove", 0 );
if ( !clonep(this_object()) )
return;
thing::create();
SetProp( P_SHORT, "Ein Vertrag" );
SetProp( P_LONG, "@@unterschrieben@@" );
SetProp( P_NAME, "Vertrag" );
Set(P_READ_MSG, #'text, F_QUERY_METHOD);
SetProp( P_GENDER, MALE );
SetProp( P_ARTICLE, 1 );
AddId("vertrag");
SetProp(P_NEVERDROP, 1);
AddCmd(({"unterschreibe","unterschreib","unterzeichne"}),"unterschreibe");
AddCmd(({"zerreisse", "zerreiss"}),"zerreisse");
gelesen = 0;
unterschrieben = "";
}
static string _query_nodrop()
{
if (this_player() && IS_WIZARD(this_player())) return 0;
return "Nein Nein! Dies ist dein Vertrag!\n";
}
static string unterschrieben()
{
string s;
s = "Dies ist Dein Magier-Vertrag. Du solltest ihn vielleicht ";
if ( gelesen )
s += "noch";
s += "mal lesen.\nEr wurde Dir von " + capitalize(geteuid(this_object()))
+" ueberreicht.\nWenn Du ihn unterschreibst, wirst Du von "
+ capitalize(geteuid(this_object())) + " gesponsort.\n";
if (this_player() && (unterschrieben == getuid(this_player())) )
s += "Du hast ihn unterschrieben.\n";
return s;
}
static string text()
{
gelesen = 1;
this_player()->More("/etc/WIZRULES",1);
return "";
}
static int unterschreibe( string str )
{
notify_fail("Was willst Du denn unterschreiben?\n");
if ( !id(str) )
return 0;
if ( !this_player() || this_player() != this_interactive()
|| this_player() != environment() )
return 0;
if ( !gelesen ){
write( "Du hast ihn noch nicht gelesen. ERST lesen, DANN schreiben!\n");
return 1;
}
write( "Du unterschreibst den Vertrag. Wenn das ein Versehen war, "
+ "zerreiss ihn sofort.\n" );
unterschrieben = getuid( this_interactive() );
SetProp( P_NODROP, "Nein, der ist unterschrieben. Du kannst ihn hoechstens"
+ " zerreissen.\n" );
SetProp( P_NEVERDROP, 1 );
return 1;
}
static int zerreisse( string str )
{
notify_fail("Was willst Du denn zerreissen?\n");
if ( !id(str) ) return 0;
write( "Du zerreisst den Vertrag.\n" );
return remove();
}
public int is_unterschrieben()
{
return environment() && query_once_interactive(environment())
&& getuid(environment()) == unterschrieben;
}