blob: 33c365b291cf0f39d2c4410b043b0d94bf5c00d8 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001inherit "std/thing";
2#include <properties.h>
3#include <language.h>
4
5string cstr;
6
7init()
8{
9 int colour;
10 ::init();
11 colour = random(8);
12 if (colour==0) cstr = "gruenes";
13 if (colour==1) cstr = "rotes";
14 if (colour==2) cstr = "blaues";
15 if (colour==3) cstr = "gelbes";
16 if (colour==4) cstr = "schwarz-weiss-kariertes";
17 if (colour==5) cstr = "orange-pink-gestreiftes";
18 if (colour==6) cstr = "lila-gruen-getuepfeltes";
19 if (colour==7) cstr = "silbergraues";
20 add_action("throw_it","wirf");
21 add_action("ww", "ww");
22}
23
24short()
25{
26 return "Ein " + cstr + " Kissen\n";
27}
28
29long()
30{
31 return "Dies ist ein wunderschoenes, " + cstr + " Kissen.\n"+
32 "Du kannst versuchen es zu werfen.\n";
33}
34
35create()
36{
37 ::create();
38 cstr = "von Boing handgenaehtes";
39 AddId("kissen");
40 SetProp(P_WEIGHT, 1);
41 SetProp(P_VALUE, 1);
42 SetProp(P_NAME, "Kissen");
43 SetProp(P_GENDER, 0);
44}
45
46ww(str)
47{
48 if (str)
49 return throw_it("kissen nach "+str);
50 else
51 {
52 object *all, *liv;
53 int i;
54
55 all=all_inventory(environment(this_player()));
56 for (i=0; i<sizeof(all); i++)
57 if (query_once_interactive(all[i]))
58 if (!liv)
59 liv = ({all[i]});
60 else
61 liv = liv+({all[i]});
62 i = random(sizeof(liv));
63 return throw_it("kissen nach "+lower_case(liv[i]->query_real_name()));
64 }
65}
66
67throw_it(str)
68{
69 int treffer;
70 string werfer_name;
71 string victim_string,werfer_string;
72 string was,at,wen;
73 int fehler;
74 object victim;
75
76 if (!str) return 0;
77 fehler = 0;
78 if (sscanf(str,"%s %s %s",was,at,wen) != 3)
79 fehler = 1;
80 if (!id(was) || at != "nach")
81 fehler = 1;
82 if (fehler)
83 {
84 notify_fail("Zum Werfen: wirf kissen nach <spielername>\n");
85 return 0;
86 }
87 victim = present(wen,environment(this_player()));
88 if (!victim)
89 {
90 write("Dieser Spieler ist nicht hier!\n");
91 return 1;
92 }
93 werfer_name = this_player()->name();
94 treffer = random(5);
95 write("Du schmeisst ein Kissen nach " + victim->name(WEM) +".\n");
96 say(werfer_name + " wirft ein Kissen nach " + victim->name(WEM) + ".\n");
97 if (treffer==0)
98 {
99 werfer_string = "Du verfehlst " + victim->name(WEN) + " meilenweit.\n";
100 victim_string = werfer_name + " verfehlt Dich meilenweit.\n";
101 this_object()->move(environment(this_player()));
102 }
103 if (treffer==1)
104 {
105 werfer_string = "Das Kissen streift " + victim->name(WEN)+ " am Ohrlaeppchen.\n";
106 victim_string = "Das Kissen streift Dich am Ohrlaeppchen.\n";
107 }
108 if (treffer==2)
109 {
110 werfer_string = "PAFF! Du triffst " + victim->name(WEN) + " mitten ins Gesicht.\n";
111 victim_string = "PAFF! Das Kissen trifft Dich mitten im Gesicht!\n";
112 }
113 if (treffer==3)
114 {
115 werfer_string = "WUSCH! Das Kissen trifft " + victim->name(WESSEN) + " Bauch mit voller Wucht.\n";
116 victim_string = "WUSCH! Das Kissen fliegt mit voller Wucht gegen Deinen Bauch.\n";
117 }
118 if (treffer==4)
119 {
120 werfer_string = victim->name() + " versucht wegzurennen, doch das Kissen trifft den Hinterkopf.\n";
121 victim_string = "Du versuchst wegzurennen, aber das Kissen trifft Dich am Hinterkopf.\n";
122 }
123 write(werfer_string);
124 tell_object(victim,victim_string);
125 if (treffer) this_object()->move(victim);
126 return 1;
127}
128