1 | #! perl |
1 | #! perl |
2 | |
2 | |
3 | use List::Util; |
3 | use List::Util; |
4 | |
4 | |
5 | sub on_move { |
5 | sub on_move { |
6 | my ($data) = @_; |
6 | my ($event, $who) = @_; |
7 | |
|
|
8 | my $who = $data->{who}; |
|
|
9 | |
7 | |
10 | my ($x1, $y1) = ($who->x, $who->y); |
8 | my ($x1, $y1) = ($who->x, $who->y); |
11 | |
9 | |
12 | # on first call (there is no initialiser callback), initialise |
10 | # on first call (there is no initialiser callback), initialise |
13 | my $self = $who->{map_grid_move} ||= do { |
11 | my $self = $who->{map_grid_move} ||= do { |
14 | my %opt = split /(?:\s+|=)/, $data->{options}; |
12 | my %opt = split /(?:\s+|=)/, $event->options; |
15 | |
13 | |
16 | for my $ob ($who->inv) { |
14 | for my $ob ($who->inv) { |
17 | my $num = $opt{"num_" . $ob->name} || 1; |
15 | my $num = $opt{"num_" . $ob->name} || 1; |
18 | |
16 | |
19 | for (1 .. $num) { |
17 | for (1 .. $num) { |