blob: 63ea744221cf5137d2430501b92d89124677798a [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001#pragma strong_types,save_types
2
3#include <defines.h>
4#include <properties.h>
5
6#define WEG() destruct(this_object())
7
8object player;
9int gender;
10string desc;
11
12void _tarn_turn_on(object pl,string txt,int gen)
13{
14 if (!objectp(pl)||!interactive(pl)) return WEG();
15 if (!stringp(txt)||txt=="") return WEG();
16 if (gen<0||gen>2) return WEG();
17 player=pl;
18 desc=capitalize(txt);
19 gender=gen;
20 shadow(pl,1);
21}
22
23int special_verb()
24{
25 string verb;
26
27 verb=query_verb();
28 if (!verb||verb=="") return 0;
29 if (verb[0]=='-') return 1;
30 if (verb=="ruf"||verb=="rufe"||verb=="teile"||verb=="teil"||verb=="mruf"||
31 verb=="mrufe"||verb=="erzaehl"||verb=="erzaehle") return 1;
32 return(0); // non-void funktion, Zesstra
33}
34
35int _query_gender()
36{
37 return gender;
38}
39
40string _query_name()
41{
42 if (!special_verb())
43 return capitalize(desc);
44 return player->Query(P_NAME);
45}
46
47string _query_short()
48{
49 return capitalize(player->name());
50}
51
52string _query_long()
53{
54 string str;
55
56 str=player->name();
57 return capitalize(str)+" ist "+str+" ist "+str+".\n";
58}
59
60string* _query_ids()
61{
62 return player->Query("ids")+({lower_case(desc)});
63}
64
65string _query_race()
66{
67 return desc;
68}
69
70void _tarn_turn_off()
71{
72 unshadow();
73 destruct(this_object());
74}
75
76int _query_article()
77{
78 if (!special_verb())
79 return 1;
80 return(0); // non-void funktion, Zesstra
81}
82
83string _query_presay()
84{
85 return "";
86}
87
88string _query_title()
89{
90 return "";
91}
92
93void Defend(int dam,mixed dam_type,mixed spell,object enemy)
94{
95 object o;
96
97 if (!query_once_interactive(previous_object()))
98 player->Defend(dam, dam_type, spell, enemy);
99 else
100 previous_object()->StopHuntFor(player);
101 if ((o=present("\ntarnhelm",player)))
102 o->DoUnwear();
103 if (this_object()) destruct(this_object());
104}
105
106int Kill(object ob)
107{
108 object o;
109
110 if ((o=present("\ntarnhelm",player)))
111 o->DoUnwear();
112 if (this_object()) destruct(this_object());
113 return(0); // non-void funktion, Zesstra
114}
115
116int InsertEnemy(object ob)
117{
118 object o;
119
120 if (!query_once_interactive(ob))
121 player->InsertEnemy(ob);
122 else
123 ob->StopHuntFor(player);
124 if ((o=present("\ntarnhelm",player)))
125 o->DoUnwear();
126 if (this_object()) destruct(this_object());
127 return 0;
128}
129
130string short()
131{
132 if (old_explode(object_name(previous_object()),"#")[0]=="/obj/werliste")
133 return capitalize(geteuid(player)+" verkleidet als "+player->short());
134 return player->short();
135}
136
137string QueryDisguise()
138{
139 return desc;
140}