ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/minesweeper.ext
(Generate patch)

Comparing deliantra/server/ext/minesweeper.ext (file contents):
Revision 1.1 by root, Fri Dec 15 19:29:18 2006 UTC vs.
Revision 1.6 by root, Sun Sep 30 16:24:30 2007 UTC

1#! perl 1#! perl # mandatory
2 2
3use Scalar::Util; 3use Scalar::Util;
4 4
5# minesweeper extension. dumb. 5# minesweeper extension. dumb.
6 6
7sub result { 7sub result {
8 my ($ob, $status) = @_; 8 my ($ob, $status) = @_;
9 9
10 if (my $teleport = $ob->{options}{"teleport_$status"}) { 10 if (my $teleport = $ob->{options}{"teleport_$status"}) {
11 my ($x, $y, $damned) = split /,/, $teleport; 11 my ($x, $y, $damned) = split /,/, $teleport;
12 my $pl = cf::player::find $ob->{player}; 12 my $pl = cf::player::find_active $ob->{player};
13 13
14 $pl->ob->transfer ($x, $y); 14 my $path = $pl->ob->map->path;
15
16 $pl->ob->goto ($path, $x, $y);
15 $pl->savebed ($pl->ob->map->path, $x, $y) 17 $pl->savebed ($path, $x, $y)
16 if $ob->{options}{"set_savebed_$status"}; 18 if $ob->{options}{"set_savebed_$status"};
17 } 19 }
18} 20}
19 21
20sub apply { 22sub apply {
60 } 62 }
61 63
62 1 64 1
63} 65}
64 66
65cf::register_attachment minesweeper => 67cf::object::attachment minesweeper =>
66 on_tick => sub { 68 on_tick => sub {
67 my ($self) = @_; 69 my ($self) = @_;
68 70
69 if (my $queue = $self->{queue}) { 71 if (my $queue = $self->{queue}) {
70 my $count = 4; 72 my $count = 4;
117 119
118 cf::override; 120 cf::override;
119 }, 121 },
120; 122;
121 123
122cf::register_attachment minesweeper_field => 124cf::object::attachment minesweeper_field =>
123 on_apply => sub { 125 on_apply => sub {
124 my ($ob, $who) = @_; 126 my ($ob, $who) = @_;
125 127
126 $ob->{meta}{player} = $who->name; 128 $ob->{meta}{player} = $who->name;
127 push @{$ob->{meta}{queue}}, $ob; 129 push @{$ob->{meta}{queue}}, $ob;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines