… | |
… | |
11 | =cut |
11 | =cut |
12 | |
12 | |
13 | package NPC_Dialogue; |
13 | package NPC_Dialogue; |
14 | |
14 | |
15 | use strict; |
15 | use strict; |
16 | |
|
|
17 | sub has_dialogue($) { |
|
|
18 | my ($ob) = @_; |
|
|
19 | |
|
|
20 | $ob->msg =~ /^\@match /; |
|
|
21 | } |
|
|
22 | |
16 | |
23 | sub parse_message($) { |
17 | sub parse_message($) { |
24 | map [split /\n/, $_, 2], |
18 | map [split /\n/, $_, 2], |
25 | grep length, |
19 | grep length, |
26 | split /^\@match /m, |
20 | split /^\@match /m, |
… | |
… | |
125 | |
119 | |
126 | =item B<matching for an item name and removing the matched item> |
120 | =item B<matching for an item name and removing the matched item> |
127 | |
121 | |
128 | @match found earhorn |
122 | @match found earhorn |
129 | @cond grep $_->slaying =~ /Gramp's walking stick/, $who->inv |
123 | @cond grep $_->slaying =~ /Gramp's walking stick/, $who->inv |
130 | @eval my @g = grep { $_->slaying =~ /Gramp's walking stick/ } $who->inv; $g[0]->decrease_ob_nr (1); |
124 | @eval my @g = grep { $_->slaying =~ /Gramp's walking stick/ } $who->inv; $g[0]->decrease; |
131 | Thanks for the earhorn! |
125 | Thanks for the earhorn! |
132 | |
126 | |
133 | This example is a bit more complex. The C<@eval> statement will search |
127 | This example is a bit more complex. The C<@eval> statement will search |
134 | the players inventory for the same term as the C<@cond> and then |
128 | the players inventory for the same term as the C<@cond> and then |
135 | decreases the number of objects used there. |
129 | decreases the number of objects used there. |