… | |
… | |
116 | }; |
116 | }; |
117 | |
117 | |
118 | cf::register_command mark => sub { |
118 | cf::register_command mark => sub { |
119 | my ($pl, $arg) = @_; |
119 | my ($pl, $arg) = @_; |
120 | |
120 | |
121 | unless (length $arg) { |
121 | if (length $arg) { |
|
|
122 | my $ob = $pl->find_best_object_match ($arg); |
|
|
123 | |
|
|
124 | return $pl->reply (undef, "Could not find an object that matches $arg") |
|
|
125 | unless $ob; |
|
|
126 | |
|
|
127 | $pl->contr->mark ($ob); |
|
|
128 | $pl->reply (undef, (sprintf "Marked item %s", $ob->name, $ob->title)); |
|
|
129 | } else { |
122 | my $ob = $pl->find_marked_object; |
130 | my $ob = $pl->find_marked_object; |
123 | |
131 | |
124 | $pl->reply (undef, $ob |
132 | $pl->reply (undef, $ob |
125 | ? (sprintf "%s %s * is marked.", $ob->name, $ob->title) |
133 | ? (sprintf "%s %s * is marked.", $ob->name, $ob->title) |
126 | : "You have no marked object."); |
134 | : "You have no marked object."); |
127 | } else { |
|
|
128 | my $ob = $pl->find_best_object_match ($arg); |
|
|
129 | |
|
|
130 | return $pl->reply (undef, "Could not find an object that matches $arg") |
|
|
131 | unless $ob; |
|
|
132 | |
|
|
133 | $pl->contr->mark ($ob); |
|
|
134 | $pl->reply (undef, (sprintf "Marked item %s", $ob->name, $ob->title)); |
|
|
135 | } |
135 | } |
136 | |
136 | |
137 | 1 |
137 | 1 |
138 | }; |
138 | }; |
139 | |
139 | |
… | |
… | |
150 | for my $cmd ("run", "fire") { |
150 | for my $cmd ("run", "fire") { |
151 | my $oncmd = "${cmd}_on"; |
151 | my $oncmd = "${cmd}_on"; |
152 | cf::register_command $cmd => sub { |
152 | cf::register_command $cmd => sub { |
153 | my ($ob, $arg) = @_; |
153 | my ($ob, $arg) = @_; |
154 | |
154 | |
|
|
155 | $ob->contr->$oncmd (1); |
|
|
156 | |
155 | return $ob->reply (undef, "Can't $cmd into a non adjacent square.") |
157 | return $ob->reply (undef, "Can't $cmd into a non adjacent square.") |
156 | if $arg < 0 or $arg >= 9; |
158 | if $arg < 0 or $arg >= 9; |
157 | |
159 | |
158 | $ob->contr->$oncmd (1); |
|
|
159 | $ob->move ($arg); |
160 | $ob->move ($arg); |
160 | |
161 | |
161 | 1 |
162 | 1 |
162 | }; |
163 | }; |
163 | |
164 | |