… | |
… | |
2466 | my $ob = $obs[rand @obs]; |
2466 | my $ob = $obs[rand @obs]; |
2467 | |
2467 | |
2468 | # see if we actually can go there |
2468 | # see if we actually can go there |
2469 | if (@obs = grep !$self->blocked ($_->map, $_->x, $_->y), $ob, $ob->tail) { |
2469 | if (@obs = grep !$self->blocked ($_->map, $_->x, $_->y), $ob, $ob->tail) { |
2470 | $ob = $obs[rand @obs]; |
2470 | $ob = $obs[rand @obs]; |
|
|
2471 | } else { |
|
|
2472 | $self->message ("Wow, it's pretty crowded in there.", cf::NDI_UNIQUE | cf::NDI_RED); |
2471 | } |
2473 | } |
2472 | # else put him there anyways for now #d# |
2474 | # else put us there anyways for now #d# |
2473 | |
2475 | |
2474 | ($path, $x, $y) = ($ob->map, $ob->x, $ob->y); |
2476 | ($path, $x, $y) = ($ob->map, $ob->x, $ob->y); |
|
|
2477 | } else { |
|
|
2478 | ($path, $x, $y) = (undef, undef, undef); |
2475 | } |
2479 | } |
2476 | } |
2480 | } |
2477 | |
2481 | |
2478 | my $map = eval { |
2482 | my $map = eval { |
2479 | my $map = cf::map::find $path; |
2483 | my $map = defined $path ? cf::map::find $path : undef; |
2480 | |
2484 | |
2481 | if ($map) { |
2485 | if ($map) { |
2482 | $map = $map->customise_for ($self); |
2486 | $map = $map->customise_for ($self); |
2483 | $map = $check->($map) if $check && $map; |
2487 | $map = $check->($map) if $check && $map; |
2484 | } else { |
2488 | } else { |
2485 | $self->message ("The exit to '$path' is closed", cf::NDI_UNIQUE | cf::NDI_RED); |
2489 | $self->message ("The exit to '$path' is closed.", cf::NDI_UNIQUE | cf::NDI_RED); |
2486 | } |
2490 | } |
2487 | |
2491 | |
2488 | $map |
2492 | $map |
2489 | }; |
2493 | }; |
2490 | |
2494 | |