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