blob: 570990e048077e4345b811ba784934461813840c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001#pragma strict_types
2#pragma combine_strings
3#pragma no_shadow
4#pragma no_inherit
5
6inherit "std/thing";
7
8#include <properties.h>
9#include <language.h>
10#include <wizlevels.h>
11
12private int gelesen;
13private string unterschrieben;
14
15static string text();
16
17public void create()
18{
19 if ( !geteuid(this_object()) )
20 call_out( "remove", 0 );
21
22 if ( !IS_WIZARD(geteuid(this_object())) )
23 call_out( "remove", 0 );
24
25 if ( !clonep(this_object()) )
26 return;
27
28 thing::create();
29 SetProp( P_SHORT, "Ein Vertrag" );
30 SetProp( P_LONG, "@@unterschrieben@@" );
31 SetProp( P_NAME, "Vertrag" );
32 Set(P_READ_MSG, #'text, F_QUERY_METHOD);
33 SetProp( P_GENDER, MALE );
34 SetProp( P_ARTICLE, 1 );
35 AddId("vertrag");
36 SetProp(P_NEVERDROP, 1);
37 AddCmd(({"unterschreibe","unterschreib","unterzeichne"}),"unterschreibe");
38 AddCmd(({"zerreisse", "zerreiss"}),"zerreisse");
39
40 gelesen = 0;
41 unterschrieben = "";
42}
43
44static string _query_nodrop()
45{
46 if (this_player() && IS_WIZARD(this_player())) return 0;
47 return "Nein Nein! Dies ist dein Vertrag!\n";
48}
49
50static string unterschrieben()
51{
52 string s;
53
54 s = "Dies ist Dein Magier-Vertrag. Du solltest ihn vielleicht ";
55 if ( gelesen )
56 s += "noch";
57 s += "mal lesen.\nEr wurde Dir von " + capitalize(geteuid(this_object()))
58 +" ueberreicht.\nWenn Du ihn unterschreibst, wirst Du von "
59 + capitalize(geteuid(this_object())) + " gesponsort.\n";
60
61 if (this_player() && (unterschrieben == getuid(this_player())) )
62 s += "Du hast ihn unterschrieben.\n";
63
64 return s;
65}
66
67
68static string text()
69{
70 gelesen = 1;
71 this_player()->More("/etc/WIZRULES",1);
72 return "";
73}
74
75
76static int unterschreibe( string str )
77{
78 notify_fail("Was willst Du denn unterschreiben?\n");
79 if ( !id(str) )
80 return 0;
81
82 if ( !this_player() || this_player() != this_interactive()
83 || this_player() != environment() )
84 return 0;
85
86 if ( !gelesen ){
87 write( "Du hast ihn noch nicht gelesen. ERST lesen, DANN schreiben!\n");
88 return 1;
89 }
90
91 write( "Du unterschreibst den Vertrag. Wenn das ein Versehen war, "
92 + "zerreiss ihn sofort.\n" );
93 unterschrieben = getuid( this_interactive() );
94 SetProp( P_NODROP, "Nein, der ist unterschrieben. Du kannst ihn hoechstens"
95 + " zerreissen.\n" );
96 SetProp( P_NEVERDROP, 1 );
97 return 1;
98}
99
100
101static int zerreisse( string str )
102{
103 notify_fail("Was willst Du denn zerreissen?\n");
104 if ( !id(str) ) return 0;
105 write( "Du zerreisst den Vertrag.\n" );
106 return remove();
107}
108
109
110public int is_unterschrieben()
111{
112 return environment() && query_once_interactive(environment())
113 && getuid(environment()) == unterschrieben;
114}
115