… | |
… | |
3 | # this module implements slag ex(tm): |
3 | # this module implements slag ex(tm): |
4 | # when it is applied by a player the cauldron below it will |
4 | # when it is applied by a player the cauldron below it will |
5 | # be cleaned (all items in it will be removed) |
5 | # be cleaned (all items in it will be removed) |
6 | |
6 | |
7 | cf::object->attach ( |
7 | cf::object->attach ( |
8 | type => 5, # POTION |
8 | type => cf::POTION, |
9 | subtype => 11, # just a random number |
9 | subtype => 11, # just a random number |
10 | on_apply => sub { |
10 | on_apply => sub { |
11 | my ($self, $who) = @_; |
11 | my ($self, $who) = @_; |
12 | |
12 | |
13 | my ($caul) = |
13 | my ($caul) = |
14 | grep { $_->flag (cf::FLAG_IS_CAULDRON) } |
14 | grep { $_->flag (cf::FLAG_IS_CAULDRON) } |
15 | $who->map->at ($who->x, $who->y); |
15 | $who->map->at ($who->x, $who->y); |
16 | |
16 | |
17 | if ($caul) { |
17 | if ($caul) { |
18 | for ($caul->inv) { |
|
|
19 | $_->remove; |
|
|
20 | $_->destroy (1); |
18 | $_->destroy (1) for @$caul; |
21 | } |
|
|
22 | $self->handle_apply_yield; |
19 | $self->handle_apply_yield; |
23 | $self->decrease_ob_nr (1); |
20 | $self->decrease_ob_nr (1); |
24 | $who->message ("You cleaned the " . $caul->name, cf::NDI_UNIQUE); |
21 | $who->message ("You cleaned the " . $caul->name, cf::NDI_UNIQUE); |
25 | |
22 | |
26 | } else { |
23 | } else { |
27 | $who->message ("Couldn't find cauldron to clean.", cf::NDI_UNIQUE); |
24 | $who->message ("Couldn't find cauldron to clean on the ground.", cf::NDI_UNIQUE); |
28 | } |
25 | } |
29 | |
26 | |
30 | cf::override 1; |
27 | cf::override 1; |
31 | }, |
28 | }, |
32 | ); |
29 | ); |